/*
	A basic extension of the java.applet.Applet class
 */

import java.awt.*;
import java.applet.*;

public class Algorithm7 extends Applet
{
	private AllenPeriodRelation rel1 = new AllenPeriodRelation();
	private PointPeriodRelation rel2 = new PointPeriodRelation();

	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("7. Translation of an Allen period relation to point notation");
		header.setAlignment(java.awt.Label.CENTER);
		add(header);
		header.setFont(new Font("Dialog", Font.PLAIN, 14));
		header.setBounds(0,48,480,24);
		activePanel.setLayout(null);
		add(activePanel);
		activePanel.setBounds(60,108,360,24);
		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(264,0,96,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,168,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.toPointPeriodRelation();
				result.setText(rel2.toString());
			}
			catch (FormatException e)
			{
				result.setText("");
				message.setText(relation1.getText()
					+ " is not a valid Allen period relation");
			}
			catch (TranslationException e)
			{
				result.setText("");
				message.setText(relation1.getText()
					+ " cannot be translated to point notation");
			}
		}
	}
}
