/*
	A basic extension of the java.applet.Applet class
 */

import java.awt.*;
import java.applet.*;

public class Algorithm8 extends Applet
{
	private AllenPeriodRelation rel1 = new AllenPeriodRelation();
	private PointPeriodRelation[] rel2;

	public void init()
	{
		// Take out this line if you don't use symantec.itools.net.RelativeURL or symantec.itools.awt.util.StatusScroller
		symantec.itools.lang.Context.setApplet(this);
	
		// This code is automatically generated by Visual Cafe when you add
		// components to the visual environment. It instantiates and initializes
		// the components. To modify the code, only use code syntax that matches
		// what Visual Cafe can generate, or Visual Cafe may be unable to back
		// parse your Java file into its visual environment.
		//{{INIT_CONTROLS
		setLayout(null);
		setSize(480,240);
		header.setText("8. Translation of an Allen period relation to a set of point notations");
		header.setAlignment(java.awt.Label.CENTER);
		add(header);
		header.setFont(new Font("Dialog", Font.PLAIN, 14));
		header.setBounds(0,24,480,24);
		activePanel.setLayout(null);
		add(activePanel);
		activePanel.setBounds(48,84,384,60);
		activePanel.add(relation1);
		relation1.setBounds(0,0,216,24);
		label3.setText("is");
		label3.setAlignment(java.awt.Label.CENTER);
		activePanel.add(label3);
		label3.setFont(new Font("Dialog", Font.BOLD, 12));
		label3.setBounds(216,0,48,24);
		activePanel.add(result);
		result.setBounds(0,36,384,24);
		message.setText("Enter an Allen period relation in the text box.");
		message.setAlignment(java.awt.Label.CENTER);
		add(message);
		message.setFont(new Font("Dialog", Font.PLAIN, 12));
		message.setBounds(0,180,480,24);
		//}}
	
		//{{REGISTER_LISTENERS
		SymText lSymText = new SymText();
		relation1.addTextListener(lSymText);
		//}}
	}
	
	//{{DECLARE_CONTROLS
	java.awt.Label header = new java.awt.Label();
	java.awt.Panel activePanel = new java.awt.Panel();
	java.awt.TextField relation1 = new java.awt.TextField();
	java.awt.Label label3 = new java.awt.Label();
	java.awt.Label result = new java.awt.Label();
	java.awt.Label message = new java.awt.Label();
	//}}

	class SymText implements java.awt.event.TextListener
	{
		public void textValueChanged(java.awt.event.TextEvent event)
		{
			Object object = event.getSource();
			if (object == relation1)
				relation1_TextValueChanged(event);
			
		}
	}

	void relation1_TextValueChanged(java.awt.event.TextEvent event)
	{
		message.setText("");
		if (relation1.getText().equals(""))
		{
			result.setText("");
		}
		else
		{
			try
			{
				rel1.set(relation1.getText());
				rel2 = rel1.toPointPeriodRelations();
				if (rel2 == null)
					result.setText("null");
				else
				{
					StringBuffer sb = new StringBuffer("");
					for (int i = 0; i < rel2.length; i++)
					{
						sb.append(rel2[i].toString());
						if (i < rel2.length-1)
							sb.append(" | ");
					}
					result.setText(sb.toString());
				}
			}
			catch (FormatException e)
			{
				result.setText("");
				message.setText(relation1.getText()
					+ " is not a valid Allen period relation");
			}
		}
	}
}
