view src/samer/core_/viewers/swing/BooleanViewer.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
/*
 *	BooleanViewer.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.types.*;
import  samer.core.util.*;
import  samer.core.*;

import  java.io.*;
import  java.util.*;
import  java.awt.*;
import  java.awt.event.*;
import  javax.swing.*;

public class BooleanViewer extends VariableViewer implements ItemListener
{
	VBoolean	vbool;
	JCheckBox	cb;

	public BooleanViewer(Viewable v) { this((VBoolean)v); }
	public BooleanViewer(VBoolean vbool) 
	{ 
		super(vbool);
		this.vbool = vbool;

		setLayout( new BoxLayout(panel(),BoxLayout.X_AXIS));
		setText(null);

		cb = new JCheckBox(vbool.getLabel());
		cb.setFocusPainted(false);
		cb.setMargin(new Insets(0,0,0,0));
		cb.addItemListener(this);
		setImageIcons(
			Shell.getString("boolean.iconDirectory",
			System.getProperty("user.home",".")+"/buttons"));
		add(cb);
		add(Box.createHorizontalGlue());
		update(null,null);
	}

	private void setImageIcons(String dirname) {
		File dir=new File(dirname);
		if (dir.isDirectory()) {
			Shell.trace("loading icons from "+dir); 
			cb.setIcon(new ImageIcon(new File(dir,"rb.gif").getPath()));
			cb.setPressedIcon(new ImageIcon(new File(dir,"rbr.gif").getPath()));
			cb.setRolloverIcon(new ImageIcon(new File(dir,"rbp.gif").getPath()));
			cb.setRolloverSelectedIcon(new ImageIcon(new File(dir,"rbrs.gif").getPath()));
			cb.setSelectedIcon(new ImageIcon(new File(dir,"rbs.gif").getPath()));
		}
	}

	public void update(Observable o, Object source) // &&&
	{
		if (source!=this) cb.setSelected(vbool.value);
		super.update(o,source);
	}

	public void itemStateChanged(ItemEvent e)	
	{
		vbool.value = (e.getStateChange()==ItemEvent.SELECTED);
		vbool.changed(this);
	}
}