view src/samer/core_/viewers/swing/StringViewer.java @ 5:b67a33c44de7

Remove some crap, etc
author samer
date Fri, 05 Apr 2019 21:34:25 +0100
parents bf79fb79ee13
children
line wrap: on
line source
/*
 *	StringViewer.java	
 *
 *	Copyright (c) 2000, Samer Abdallah, King's College London.
 *	All rights reserved.
 *
 *	This software is provided AS iS and WITHOUT ANY WARRANTY; 
 *	without even the implied warranty of MERCHANTABILITY or 
 *	FITNESS FOR A PARTICULAR PURPOSE.
 */

package	samer.core.viewers.swing;
import	samer.core.util.*;
import	samer.core.types.*;
import	samer.core.*;
import	javax.swing.*;
import	java.awt.event.*;
import	java.util.*;

public class StringViewer extends VariableViewer implements ActionListener, FocusListener
{
	JTextField	t;

	public StringViewer(VString v) { this((Variable)v); }
	public StringViewer(Variable v) 
	{ 
		super(v); 

		// setLayout(new BoxLayout(panel(),BoxLayout.X_AXIS));
		setLayout(layout);
		t = new JTextField(4); 
		t.addFocusListener(this);
		t.addActionListener(this);

		// add(Box.createHorizontalStrut(12));
		add(t);
		update(null,null);

		JComponent jc=(JComponent)panel();
		java.awt.Dimension  pr=jc.getPreferredSize();
		java.awt.Dimension  mx=jc.getMaximumSize();
		mx.height=pr.height;
		jc.setMaximumSize(mx);
	}

	// ....... Viewer bits ...................................

	public void update(Observable o, Object source)
	{ 
		if (source!=this) { // &&&
			t.setText(variable.getModel().string());
		}
		super.update(o,source);
	}

	// ........ Functionality ................................
	private void parseTextField()
	{
		variable.getModel().decode(t.getText()); 
		variable.changed(this); 
	}

	public void actionPerformed( ActionEvent e)
	{
		// set value and slider
		if (e.getSource()==t) parseTextField();
	}

	public void focusGained( FocusEvent e) {}
	public void focusLost( FocusEvent e) { parseTextField(); }
}