changeset 6:f0fa855432af

Remove stuff
author samer
date Fri, 05 Apr 2019 21:49:42 +0100
parents b67a33c44de7
children 243687520bcc
files examples/gui/awt/Light.java examples/gui/awt/LightS.java examples/gui/awt/Lightweight.java examples/gui/awt/light.html examples/gui/awt/light2.html examples/gui/awt/tester.java examples/gui/swing/BLDComponent.java examples/gui/swing/BoxLayoutDemo.java examples/gui/swing/ConversionPanel.java examples/gui/swing/Converter.java examples/gui/swing/MenuDemo.java examples/gui/swing/MenuLookDemo.java examples/gui/swing/PopupMenuDemo.java examples/misc/args
diffstat 14 files changed, 70 insertions(+), 1193 deletions(-) [+]
line wrap: on
line diff
--- a/examples/gui/awt/Light.java	Fri Apr 05 21:34:25 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-// program to test lightweight  components
-package test.awt;
-
-import java.awt.*;
-import java.awt.event.*;
-import java.applet.*;
-
-
-public class Light extends Applet 
-{
-	public static void run(Container c) 
-	{
-		c.setLayout(new FlowLayout());
-		c.add( new Button("Hello!"));
-		c.add( new Lightweight(Color.green,"harpo"));
-		c.add( new Lightweight(Color.blue,"groucho"));
-		c.add( new Lightweight(Color.red,"zeppo"));
-		c.validate();
-	}
-
-	public static void main(String[] args) 
-	{
-		Frame fr=new Frame("Lightweight test");
-		fr.addWindowListener(new WindowAdapter() {
-			public void windowClosing(WindowEvent e) {
-				System.exit(0);
-			}
-		} );
-		fr.setSize(400,100);
-		fr.show();
-		run(fr);
-	}
-
-	public void init()
-	{
-		setBackground( Color.black);
-		setForeground( Color.yellow);
-		getParent().setBackground( Color.red);
-		run(this);
-	}
-
-}
\ No newline at end of file
--- a/examples/gui/awt/LightS.java	Fri Apr 05 21:34:25 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-// program to test lightweight  components (Swing version)
-package test.awt;
-
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-
-// this is a lightweight component
-
-
-public class LightS extends JApplet 
-{
-	public static void run(Container c) 
-	{
-		JButton b = new JButton("Hello!");
-
-		c.setLayout(new FlowLayout());
-		c.add( b);
-		c.add( new Lightweight(Color.green,"harpo"));
-		c.add( new Lightweight(Color.blue,"groucho"));
-		c.add( new Lightweight(Color.red,"zeppo"));
-		c.validate();
-	}
-
-	public static void main(String[] args) 
-	{
-		JFrame fr=new JFrame("Lightweight test");
-		fr.addWindowListener(new WindowAdapter() {
-			public void windowClosing(WindowEvent e) {
-				System.exit(0);
-			}
-		} );
-		fr.setSize(400,100);
-		fr.show();
-		run(fr.getContentPane());
-	}
-
-	public void init()
-	{
-		getParent().setBackground( Color.red);
-		run(getContentPane());
-	}
-}
\ No newline at end of file
--- a/examples/gui/awt/Lightweight.java	Fri Apr 05 21:34:25 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-// program to test lightweight  components
-package test.awt;
-import java.awt.*;
-
-// this is a lightweight component
-
-public class Lightweight extends Component
-{
-	Color	col;
-	String	text;
-
-	Lightweight(Color color, String label) { 
-		text=label; col=color; 
-		setBackground(Color.getHSBColor(0.3F,0.4F,0.7F));
-	}
-
-	public void paint(Graphics g) 
-	{
-		Dimension d=getSize();
-		g.setColor(getBackground());
-		g.fillRect(0,0,getWidth(),getHeight());
-		g.setColor(getForeground());
-		g.drawString(text,10,16);
-	}
-
-	public boolean isOpaque() { return true; }
-	public Dimension getPreferredSize() 
-	{
-		return new Dimension(80,20);
-	}
-}
-
--- a/examples/gui/awt/light.html	Fri Apr 05 21:34:25 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-<head>
-<title>Test Applet</title>
-<link rel=stylesheet type="text/css" href="../styles/base.css"> 
-</head>
-<style>
-	body { background: #404060; color: #f0f0f0; font-family: "Verdana" }
-	h1	{ font: bold italic; color: #48d }
-	applet { width: 60%; height: 60%; margin: 2em; 
-	}
-
-</style>
-
-<body>
-<p>
-<title>Lightweight Components</title>
-<h1>a test applet</h1>
-<p>
-This is blah blah
-<br>
-<center>
-<applet code=Light>
-	<param name=font-size value=18>
-	<param name=foreground value=#90b0f0>
-	<param name=background value=#000000>
-	<param name=pagebg     value=#404060>
-	<param name=borderType  value=rounded>
-	<param name=borderWidth value=2>
-	<param name=corner  value=24>
-	<param name=border		value=#f0f0f0>
-	<param name=padding		value=6>
-</applet>
-</center>
-<body>
--- a/examples/gui/awt/light2.html	Fri Apr 05 21:34:25 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-<head>
-<title>Test Applet</title>
-<link rel=stylesheet type="text/css" href="../styles/base.css"> 
-</head>
-<style>
-	body { background: #404060; color: #f0f0f0; font-family: "Verdana" }
-	h1	{ font: bold italic; color: #48d }
-	applet { width: 60%; height: 60%; margin: 2em; 
-	}
-
-</style>
-
-<body>
-<p>
-<title>Lightweight Components</title>
-<h1>a test applet</h1>
-<p>
-This is blah blah
-<br>
-<center>
-<applet code=LightS>
-	<param name=font-size value=18>
-	<param name=foreground value=#90b0f0>
-	<param name=background value=#000000>
-	<param name=pagebg     value=#404060>
-	<param name=borderType  value=rounded>
-	<param name=borderWidth value=2>
-	<param name=corner  value=24>
-	<param name=border		value=#f0f0f0>
-	<param name=padding		value=6>
-</applet>
-</center>
-<body>
--- a/examples/gui/awt/tester.java	Fri Apr 05 21:34:25 2019 +0100
+++ b/examples/gui/awt/tester.java	Fri Apr 05 21:49:42 2019 +0100
@@ -1,70 +1,70 @@
-/*
- *	AppletBorders.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 test;
-import  samer.core.*;
-import  samer.core.util.*;
-import  samer.core.util.heavy.*;
-import  samer.core.util.heavy.Borders.*;
-import  samer.core.util.Tools;
-import	java.awt.*;
-
+/*
+ *	AppletBorders.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 test;
+import  samer.core.*;
+import  samer.core.util.*;
+import  samer.core.util.heavy.*;
+import  samer.core.util.heavy.Borders.*;
+import  samer.core.util.Tools;
+import	java.awt.*;
+
 public class tester
-{
-	public static void main(String args[])
-	{
-		new samer.core.shells.AppShell();
-
-		final Shell.Window win=Shell.getWindow("tester");
-
-		win.container().setBackground(Color.white);
-		// win.container().setForeground(Color.white);
-
-		win.container().setLayout(new StackLayout(0));
-		win.container().add(Shell.createLabel("hmmm..."));
-		win.container().add(createBlock(new Color(200,160,180), "the world"));
-		win.container().add(createBlock(new Color(200,180,160), "welcome to"));
-		win.container().add(createBlock(new Color(180,200,160), "i like"));
-		win.container().add(createBlock(new Color(160,200,180), "of borders"));
-		win.container().add(createBlock(new Color(160,180,200), "these colours"));
-		win.container().add(createBlock(new Color(180,160,200), "hello there!"));
-		win.expose();
-
-		Agent agent=new Agent() {
-			public void getCommands(Agent.Registry r) { r.add("repaint"); }
-			public void execute(String cmd, Environment env) {
-				if (cmd.equals("repaint")) {
-					win.container().repaint();
-				}
-			}
-		};
-		Shell.exposeCommands(agent);
-		Shell.registerAgent(agent);
-	}
-
-	static Border.Interface border = new CompoundBorder(
-		new ParentBgBorder(12),
-		new RoundedBorder(3,26,3) {
-			protected Color getDefaultColor(Component c) { 
-				return c.getBackground().darker(); // brighter(); 
-			}
-		}
-	);
-
-	static Component createBlock(Color bg, String msg)
-	{
-		JPanel	p1=new JPanel(border);
-		p1.setLayout(new FlowLayout());
-		p1.setBackground(bg);
-		p1.setForeground(bg.darker().darker().darker());
-		p1.add(Shell.createLabel(msg));
-		return p1;
-	}
-}
\ No newline at end of file
+{
+	public static void main(String args[])
+	{
+		new samer.core.shells.AWTShell();
+
+		final Shell.Window win=Shell.getWindow("tester");
+
+		win.container().setBackground(Color.white);
+		// win.container().setForeground(Color.white);
+
+		win.container().setLayout(new StackLayout(0));
+		win.container().add(Shell.createLabel("hmmm..."));
+		win.container().add(createBlock(new Color(200,160,180), "the world"));
+		win.container().add(createBlock(new Color(200,180,160), "welcome to"));
+		win.container().add(createBlock(new Color(180,200,160), "i like"));
+		win.container().add(createBlock(new Color(160,200,180), "of borders"));
+		win.container().add(createBlock(new Color(160,180,200), "these colours"));
+		win.container().add(createBlock(new Color(180,160,200), "hello there!"));
+		win.expose();
+
+		Agent agent=new Agent() {
+			public void getCommands(Agent.Registry r) { r.add("repaint"); }
+			public void execute(String cmd, Environment env) {
+				if (cmd.equals("repaint")) {
+					win.container().repaint();
+				}
+			}
+		};
+		Shell.exposeCommands(agent);
+		Shell.registerAgent(agent);
+	}
+
+	static Border.Interface border = new CompoundBorder(
+		new ParentBgBorder(12),
+		new RoundedBorder(3,26,3) {
+			protected Color getDefaultColor(Component c) { 
+				return c.getBackground().darker(); // brighter(); 
+			}
+		}
+	);
+
+	static Component createBlock(Color bg, String msg)
+	{
+		JPanel	p1=new JPanel(border);
+		p1.setLayout(new FlowLayout());
+		p1.setBackground(bg);
+		p1.setForeground(bg.darker().darker().darker());
+		p1.add(Shell.createLabel(msg));
+		return p1;
+	}
+}
--- a/examples/gui/swing/BLDComponent.java	Fri Apr 05 21:34:25 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-
-/** A rectangle that has a fixed size. */
-class BLDComponent extends JComponent {
-    private Color normalHue;
-    private final Dimension preferredSize;
-    private String name;
-    private boolean restrictMaximumSize;
-    private boolean printSize;
-
-    public BLDComponent(float alignmentX, float hue, 
-                     int shortSideSize,
-                     boolean restrictSize, 
-                     boolean printSize, 
-                     String name) {
-        this.name = name;
-        this.restrictMaximumSize = restrictSize;
-        this.printSize = printSize;
-        setAlignmentX(alignmentX);
-        normalHue = Color.getHSBColor(hue, 0.4f, 0.85f);
-        preferredSize = new Dimension(shortSideSize*2, shortSideSize);
-
-        MouseListener l = new MouseAdapter() {
-            public void mousePressed(MouseEvent e) {
-                int width = getWidth();
-                float alignment = (float)(e.getX())
-                                / (float)width;
-
-                // Round to the nearest 1/10th.
-                int tmp = Math.round(alignment * 10.0f); 
-                alignment = (float)tmp / 10.0f;
-
-                setAlignmentX(alignment);
-                revalidate(); // this GUI needs relayout
-                repaint();
-            }
-        };
-        addMouseListener(l);
-    }
-
-    /**
-     * Our BLDComponents are completely opaque, so we override
-     * this method to return true.  This lets the painting
-     * system know that it doesn't need to paint any covered
-     * part of the components underneath this component.  The
-     * end result is possibly improved painting performance.
-     */
-    public boolean isOpaque() {
-        return true;
-    }
-
-    public void paint(Graphics g) {
-        int width = getWidth();
-        int height = getHeight();
-        float alignmentX = getAlignmentX();
-
-        g.setColor(normalHue);
-        g.fill3DRect(0, 0, width, height, true);
-
-        /* Draw a vertical white line at the alignment point.*/
-        // XXX: This code is probably not the best.
-        g.setColor(Color.white);
-        int x = (int)(alignmentX * (float)width) - 1;
-        g.drawLine(x, 0, x, height - 1);
-
-        /* Say what the alignment point is. */
-        g.setColor(Color.black);
-        g.drawString(Float.toString(alignmentX), 3, height - 3);
-
-        if (printSize) {
-            System.out.println("BLDComponent " + name + ": size is " 
-                               + width + "x" + height
-                               + "; preferred size is " 
-                               + getPreferredSize().width + "x"
-                               + getPreferredSize().height);
-        }
-    }
-
-    public Dimension getPreferredSize() {
-        return preferredSize;
-    }
-
-    public Dimension getMinimumSize() {
-        return preferredSize;
-    }
-
-    public Dimension getMaximumSize() {
-        if (restrictMaximumSize) {
-            return preferredSize;
-        } else {
-            return super.getMaximumSize();
-        }
-    }
-
-    public void setSizeRestriction(boolean restrictSize) {
-        restrictMaximumSize = restrictSize;
-    }
-
-}
--- a/examples/gui/swing/BoxLayoutDemo.java	Fri Apr 05 21:34:25 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-
-public class BoxLayoutDemo {
-    protected static int NUM_COMPONENTS = 3;
-    protected static float[] xAlignment = {Component.LEFT_ALIGNMENT,
-                                 Component.CENTER_ALIGNMENT,
-                                 Component.RIGHT_ALIGNMENT};
-    protected static float[] hue = {0.0f, 0.33f, 0.67f};
-    protected static boolean restrictSize = true;
-    protected static boolean sizeIsRandom = false;
-    protected static BLDComponent[] bldComponent = 
-        new BLDComponent[NUM_COMPONENTS];
-
-    public static void main(String[] args) {
-        final JPanel panel = new JPanel();
-        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
-
-        //Create the rectangles.
-        int shortSideSize = 15;
-        for (int i = 0; i < NUM_COMPONENTS; i++) {
-            if (sizeIsRandom) {
-                shortSideSize = (int)(30.0 * Math.random()) + 30;
-            } else {
-                shortSideSize += 10;
-            }
-            bldComponent[i] = new BLDComponent(xAlignment[i], hue[i], 
-                                             shortSideSize, 
-                                             restrictSize,
-                                             sizeIsRandom,
-                                             String.valueOf(i));
-            panel.add(bldComponent[i]);
-        }
-
-        //Create the instructions.
-        JLabel label = new JLabel("Click a rectangle to "
-                                + "change its X alignment.");
-        JCheckBox cb = new JCheckBox("Restrict maximum rectangle size.");
-        cb.setSelected(restrictSize);
-        cb.addItemListener(new ItemListener() {
-            public void itemStateChanged(ItemEvent e) {
-                if (e.getStateChange() == ItemEvent.SELECTED) {
-                    restrictSize = true;
-                } else {
-                    restrictSize = false;
-                }
-                notifyBLDComponents();
-            }
-        });
-
-        JFrame f = new JFrame("BoxLayoutDemo");
-        Container contentPane = f.getContentPane();
-        contentPane.add(panel, BorderLayout.CENTER);
-        panel.setBorder(BorderFactory.createLineBorder(Color.red));
-
-        Box box = Box.createVerticalBox();
-        box.add(label);
-        box.add(cb);
-
-        contentPane.add(box, BorderLayout.SOUTH);
-        f.addWindowListener(new WindowAdapter() {
-            public void windowClosing(WindowEvent e) {
-                System.exit(0);
-            }
-        });
-        f.pack();
-        f.setVisible(true);
-    }
-
-    static public void notifyBLDComponents() {
-        for (int i = 0; i < NUM_COMPONENTS; i++) {
-            bldComponent[i].setSizeRestriction(restrictSize);
-        }
-        bldComponent[0].revalidate();
-    }
-}
--- a/examples/gui/swing/ConversionPanel.java	Fri Apr 05 21:34:25 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
- * 1.1+Swing version.
- */
-
-import javax.swing.*;
-import javax.swing.event.*;
-import java.awt.*;
-import java.awt.event.*;
-import java.util.*;
-import java.text.NumberFormat;
-
-public class ConversionPanel extends JPanel {
-    DecimalField textField;
-    JComboBox unitChooser;
-    JSlider slider;
-    ConverterRangeModel sliderModel;
-    Converter controller;
-    Unit[] units;
-    String title;
-    final static boolean DEBUG = false;
-    final static boolean COLORS = false;
-    final static int MAX = 10000;
-
-    ConversionPanel(Converter myController, String myTitle, 
-                    Unit[] myUnits,
-                    ConverterRangeModel myModel) {
-        if (COLORS) {
-            setBackground(Color.cyan);
-        }
-        setBorder(BorderFactory.createCompoundBorder(
-                        BorderFactory.createTitledBorder(myTitle),
-                        BorderFactory.createEmptyBorder(5,5,5,5)));
-
-        //Save arguments in instance variables.
-        controller = myController;
-        units = myUnits;
-        title = myTitle;
-        sliderModel = myModel;
-
-        //Add the text field.  It initially displays "0" and needs
-        //to be at least 10 columns wide.
-        NumberFormat numberFormat = NumberFormat.getNumberInstance();
-        numberFormat.setMaximumFractionDigits(2);
-        textField = new DecimalField(0, 10, numberFormat); 
-        textField.setValue(sliderModel.getDoubleValue());
-        textField.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                sliderModel.setDoubleValue(textField.getValue());
-            }
-        });
-
-        //Add the combo box.
-        unitChooser = new JComboBox(); 
-        for (int i = 0; i < units.length; i++) { //Populate it.
-            unitChooser.addItem(units[i].description);
-        }
-        unitChooser.setSelectedIndex(0);
-        sliderModel.setMultiplier(units[0].multiplier);
-        unitChooser.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                //Set new maximums for the sliders.
-                int i = unitChooser.getSelectedIndex();
-                sliderModel.setMultiplier(units[i].multiplier);
-                controller.resetMaxValues(false);
-            }
-        });
-
-        //Add the slider.
-        slider = new JSlider(sliderModel);
-        sliderModel.addChangeListener(new ChangeListener() {
-            public void stateChanged(ChangeEvent e) {
-                textField.setValue(sliderModel.getDoubleValue());
-            }
-        });
-
-        //Make the textfield/slider group a fixed size.
-        JPanel unitGroup = new JPanel() {
-            public Dimension getMinimumSize() {
-                return getPreferredSize();
-            }
-            public Dimension getPreferredSize() {
-                return new Dimension(150,
-                                     super.getPreferredSize().height);
-            }
-            public Dimension getMaximumSize() {
-                return getPreferredSize();
-            }
-        };
-        if (COLORS) {
-            unitGroup.setBackground(Color.blue);
-        }
-        unitGroup.setBorder(BorderFactory.createEmptyBorder(
-                                                0,0,0,5));
-        unitGroup.setLayout(new BoxLayout(unitGroup, 
-                                          BoxLayout.Y_AXIS));
-        unitGroup.add(textField);
-        unitGroup.add(slider);
-
-        setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
-        add(unitGroup);
-        add(unitChooser);
-        unitGroup.setAlignmentY(TOP_ALIGNMENT);
-        unitChooser.setAlignmentY(TOP_ALIGNMENT);
-    }
-
-    /** 
-     * Returns the multiplier (units/meter) for the currently
-     * selected unit of measurement.
-     */
-    public double getMultiplier() {
-        return sliderModel.getMultiplier();
-    }
-
-    public double getValue() {
-        return sliderModel.getDoubleValue();
-    }
-}
--- a/examples/gui/swing/Converter.java	Fri Apr 05 21:34:25 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-/*
- * 1.1+Swing version.
- */
-
-import javax.swing.*;
-import javax.swing.event.*;
-import java.awt.*;
-import java.awt.event.*;
-import java.util.*;
-
-public class Converter {
-    ConversionPanel metricPanel, usaPanel;
-    Unit[] metricDistances = new Unit[3];
-    Unit[] usaDistances = new Unit[4];
-    final static boolean COLORS = false;
-    final static boolean DEBUG = false;
-    final static String LOOKANDFEEL = null;
-    ConverterRangeModel dataModel = new ConverterRangeModel();
-    JPanel mainPane;
-
-    /** 
-     * Create the ConversionPanels (one for metric, another for U.S.).
-     * I used "U.S." because although Imperial and U.S. distance
-     * measurements are the same, this program could be extended to
-     * include volume measurements, which aren't the same.
-     *
-     * Put the ConversionPanels into a frame, and bring up the frame.
-     */
-    public Converter() {
-        //Create Unit objects for metric distances, and then 
-        //instantiate a ConversionPanel with these Units.
-        metricDistances[0] = new Unit("Centimeters", 0.01);
-        metricDistances[1] = new Unit("Meters", 1.0);
-        metricDistances[2] = new Unit("Kilometers", 1000.0);
-        metricPanel = new ConversionPanel(this, "Metric System",
-                                          metricDistances,
-                                          dataModel);
-
-        //Create Unit objects for U.S. distances, and then 
-        //instantiate a ConversionPanel with these Units.
-        usaDistances[0] = new Unit("Inches", 0.0254);
-        usaDistances[1] = new Unit("Feet", 0.305);
-        usaDistances[2] = new Unit("Yards", 0.914);
-        usaDistances[3] = new Unit("Miles", 1613.0);
-        usaPanel = new ConversionPanel(this, "U.S. System",
-                                       usaDistances,
-                                       new FollowerRangeModel(dataModel));
-
-        //Create a JPanel, and add the ConversionPanels to it.
-        mainPane = new JPanel();
-        if (COLORS) {
-            mainPane.setBackground(Color.red);
-        }
-        mainPane.setLayout(new GridLayout(2,1,5,5));
-        mainPane.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
-        mainPane.add(metricPanel);
-        mainPane.add(usaPanel);
-        resetMaxValues(true);
-    }
-
-    public void resetMaxValues(boolean resetCurrentValues) {
-        double metricMultiplier = metricPanel.getMultiplier();
-        double usaMultiplier = usaPanel.getMultiplier();
-        int maximum = ConversionPanel.MAX;
-
-        if (metricMultiplier > usaMultiplier) {
-            maximum = (int)(ConversionPanel.MAX *
-                      (usaMultiplier/metricMultiplier));
-        }
-
-        if (DEBUG) {
-            System.out.println("in Converter resetMaxValues");
-            System.out.println("  metricMultiplier = " 
-                                + metricMultiplier
-                             + "; usaMultiplier = "
-                                + usaMultiplier
-                             + "; maximum = " 
-                                + maximum);
-        }
-
-        dataModel.setMaximum(maximum);
-
-        if (resetCurrentValues) {
-            dataModel.setDoubleValue(maximum);
-        }
-    }
-
-    private static void initLookAndFeel() { 
-        String lookAndFeel = null;
-
-        if (LOOKANDFEEL != null) {
-            if (LOOKANDFEEL.equals("Metal")) {
-                lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName();
-            } else if (LOOKANDFEEL.equals("System")) {
-                lookAndFeel = UIManager.getSystemLookAndFeelClassName();
-            } else if (LOOKANDFEEL.equals("Mac")) {
-                lookAndFeel = "com.sun.java.swing.plaf.mac.MacLookAndFeel";
-                //PENDING: check!
-            } else if (LOOKANDFEEL.equals("Windows")) {
-                lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
-            } else if (LOOKANDFEEL.equals("Motif")) {
-                lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
-            }
-
-            if (DEBUG) {
-                System.out.println("About to request look and feel: " 
-                                   + lookAndFeel);
-            }
-
-            try {
-                UIManager.setLookAndFeel(lookAndFeel);
-            } catch (ClassNotFoundException e) {
-                System.err.println("Couldn't find class for specified look and feel:"
-                                   + lookAndFeel);
-                System.err.println("Did you include the L&F library in the class path?");
-                System.err.println("Using the default look and feel.");
-            } catch (UnsupportedLookAndFeelException e) {
-                System.err.println("Can't use the specified look and feel ("
-                                   + lookAndFeel
-                                   + ") on this platform.");
-                System.err.println("Using the default look and feel.");
-            } catch (Exception e) { 
-                System.err.println("Couldn't get specified look and feel ("
-                                   + lookAndFeel
-                                   + "), for some reason.");
-                System.err.println("Using the default look and feel.");
-                e.printStackTrace();
-            } 
-        }
-    }
-
-    public static void main(String[] args) {
-        initLookAndFeel();
-        Converter converter = new Converter();
-
-        //Create a new window.
-        JFrame f = new JFrame("Converter");
-        f.addWindowListener(new WindowAdapter() {
-            public void windowClosing(WindowEvent e) {
-                System.exit(0);
-            }
-        });
-
-        //Add the JPanel to the window and display the window.
-        //We can use a JPanel for the content pane because
-        //JPanel is opaque.
-        f.setContentPane(converter.mainPane);
-        if (COLORS) {
-           //This has no effect, since the JPanel completely
-           //covers the content pane.
-           f.getContentPane().setBackground(Color.green);
-        }
-
-        f.pack();        //Resizes the window to its natural size.
-        f.setVisible(true);
-    }
-}
--- a/examples/gui/swing/MenuDemo.java	Fri Apr 05 21:34:25 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-import javax.swing.JCheckBoxMenuItem;
-import javax.swing.JRadioButtonMenuItem;
-import javax.swing.ButtonGroup;
-import javax.swing.JMenuBar;
-import javax.swing.KeyStroke;
-import javax.swing.ImageIcon;
-
-import javax.swing.JTextArea;
-import javax.swing.JScrollPane;
-import javax.swing.JFrame;
-
-/*
- * This class adds event handling to MenuLookDemo.
- */
-public class MenuDemo extends JFrame 
-                      implements ActionListener, ItemListener {
-    JTextArea output;
-    JScrollPane scrollPane;
-    String newline = "\n";
-
-    public MenuDemo() {
-        JMenuBar menuBar;
-        JMenu menu, submenu;
-        JMenuItem menuItem;
-        JRadioButtonMenuItem rbMenuItem;
-        JCheckBoxMenuItem cbMenuItem;
-
-        addWindowListener(new WindowAdapter() {
-            public void windowClosing(WindowEvent e) {
-                System.exit(0);
-            }
-        });
-
-        //Add regular components to the window, using the default BorderLayout.
-        Container contentPane = getContentPane();
-        output = new JTextArea(5, 30);
-        output.setEditable(false);
-        scrollPane = new JScrollPane(output);
-        contentPane.add(scrollPane, BorderLayout.CENTER);
-
-        //Create the menu bar.
-        menuBar = new JMenuBar();
-        setJMenuBar(menuBar);
-
-        //Build the first menu.
-        menu = new JMenu("A Menu");
-        menu.setMnemonic(KeyEvent.VK_A);
-        menu.getAccessibleContext().setAccessibleDescription(
-                "The only menu in this program that has menu items");
-        menuBar.add(menu);
-
-        //a group of JMenuItems
-        menuItem = new JMenuItem("A text-only menu item",
-                                 KeyEvent.VK_T);
-        //menuItem.setMnemonic(KeyEvent.VK_T); //used constructor instead
-        menuItem.setAccelerator(KeyStroke.getKeyStroke(
-                KeyEvent.VK_1, ActionEvent.ALT_MASK));
-        menuItem.getAccessibleContext().setAccessibleDescription(
-                "This doesn't really do anything");
-        menuItem.addActionListener(this);
-        menu.add(menuItem);
-
-        menuItem = new JMenuItem("Both text and icon", 
-                                 new ImageIcon("images/middle.gif"));
-        menuItem.setMnemonic(KeyEvent.VK_B);
-        menuItem.addActionListener(this);
-        menu.add(menuItem);
-
-        menuItem = new JMenuItem(new ImageIcon("images/middle.gif"));
-        menuItem.setMnemonic(KeyEvent.VK_D);
-        menuItem.addActionListener(this);
-        menu.add(menuItem);
-
-        //a group of radio button menu items
-        menu.addSeparator();
-        ButtonGroup group = new ButtonGroup();
-        rbMenuItem = new JRadioButtonMenuItem("A radio button menu item");
-        rbMenuItem.setSelected(true);
-        rbMenuItem.setMnemonic(KeyEvent.VK_R);
-        group.add(rbMenuItem);
-        rbMenuItem.addActionListener(this);
-        menu.add(rbMenuItem);
-        rbMenuItem = new JRadioButtonMenuItem("Another one");
-        rbMenuItem.setMnemonic(KeyEvent.VK_O);
-        group.add(rbMenuItem);
-        rbMenuItem.addActionListener(this);
-        menu.add(rbMenuItem);
-
-        //a group of check box menu items
-        menu.addSeparator();
-        cbMenuItem = new JCheckBoxMenuItem("A check box menu item");
-        cbMenuItem.setMnemonic(KeyEvent.VK_C);
-        cbMenuItem.addItemListener(this);
-        menu.add(cbMenuItem);
-        cbMenuItem = new JCheckBoxMenuItem("Another one");
-        cbMenuItem.setMnemonic(KeyEvent.VK_H);
-        cbMenuItem.addItemListener(this);
-        menu.add(cbMenuItem);
-
-        //a submenu
-        menu.addSeparator();
-        submenu = new JMenu("A submenu");
-        submenu.setMnemonic(KeyEvent.VK_S);
-
-        menuItem = new JMenuItem("An item in the submenu");
-        menuItem.setAccelerator(KeyStroke.getKeyStroke(
-                KeyEvent.VK_2, ActionEvent.ALT_MASK));
-        menuItem.addActionListener(this);
-        submenu.add(menuItem);
-
-        menuItem = new JMenuItem("Another item");
-        menuItem.addActionListener(this);
-        submenu.add(menuItem);
-        menu.add(submenu);
-
-        //Build second menu in the menu bar.
-        menu = new JMenu("Another Menu");
-        menu.setMnemonic(KeyEvent.VK_N);
-        menu.getAccessibleContext().setAccessibleDescription(
-                "This menu does nothing");
-        menuBar.add(menu);
-    }
-
-    public void actionPerformed(ActionEvent e) {
-        JMenuItem source = (JMenuItem)(e.getSource());
-        String s = "Action event detected."
-                   + newline
-                   + "    Event source: " + source.getText()
-                   + " (an instance of " + getClassName(source) + ")";
-        output.append(s + newline);
-    }
-
-    public void itemStateChanged(ItemEvent e) {
-        JMenuItem source = (JMenuItem)(e.getSource());
-        String s = "Item event detected."
-                   + newline
-                   + "    Event source: " + source.getText()
-                   + " (an instance of " + getClassName(source) + ")"
-                   + newline
-                   + "    New state: " 
-                   + ((e.getStateChange() == ItemEvent.SELECTED) ?
-                     "selected":"unselected");
-        output.append(s + newline);
-    }
-
-    // Returns just the class name -- no package info.
-    protected String getClassName(Object o) {
-        String classString = o.getClass().getName();
-        int dotIndex = classString.lastIndexOf(".");
-        return classString.substring(dotIndex+1);
-    }
-
-    public static void main(String[] args) {
-        MenuDemo window = new MenuDemo();
-
-        window.setTitle("MenuDemo");
-        window.setSize(450, 260);
-        window.setVisible(true);
-    }
-}
--- a/examples/gui/swing/MenuLookDemo.java	Fri Apr 05 21:34:25 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-import javax.swing.JCheckBoxMenuItem;
-import javax.swing.JRadioButtonMenuItem;
-import javax.swing.ButtonGroup;
-import javax.swing.JMenuBar;
-import javax.swing.KeyStroke;
-import javax.swing.ImageIcon;
-
-import javax.swing.JTextArea;
-import javax.swing.JScrollPane;
-import javax.swing.JFrame;
-
-/*
- * This class exists solely to show you what menus look like.
- * It has no menu-related event handling.
- */
-public class MenuLookDemo extends JFrame {
-    JTextArea output;
-    JScrollPane scrollPane;
-
-    public MenuLookDemo() {
-        JMenuBar menuBar;
-        JMenu menu, submenu;
-        JMenuItem menuItem;
-        JCheckBoxMenuItem cbMenuItem;
-        JRadioButtonMenuItem rbMenuItem;
-
-        addWindowListener(new WindowAdapter() {
-            public void windowClosing(WindowEvent e) {
-                System.exit(0);
-            }
-        });
-
-        //Add regular components to the window, using the default BorderLayout.
-        Container contentPane = getContentPane();
-        output = new JTextArea(5, 30);
-        output.setEditable(false);
-        scrollPane = new JScrollPane(output);
-        contentPane.add(scrollPane, BorderLayout.CENTER);
-
-        //Create the menu bar.
-        menuBar = new JMenuBar();
-        setJMenuBar(menuBar);
-
-        //Build the first menu.
-        menu = new JMenu("A Menu");
-        menu.setMnemonic(KeyEvent.VK_A);
-        menu.getAccessibleContext().setAccessibleDescription(
-                "The only menu in this program that has menu items");
-        menuBar.add(menu);
-
-        //a group of JMenuItems
-        menuItem = new JMenuItem("A text-only menu item",
-                                 KeyEvent.VK_T);
-        //menuItem.setMnemonic(KeyEvent.VK_T); //used constructor instead
-        menuItem.setAccelerator(KeyStroke.getKeyStroke(
-                KeyEvent.VK_1, ActionEvent.ALT_MASK));
-        menuItem.getAccessibleContext().setAccessibleDescription(
-                "This doesn't really do anything");
-        menu.add(menuItem);
-
-        menuItem = new JMenuItem("Both text and icon", 
-                                 new ImageIcon("images/middle.gif"));
-        menuItem.setMnemonic(KeyEvent.VK_B);
-        menu.add(menuItem);
-
-        menuItem = new JMenuItem(new ImageIcon("images/middle.gif"));
-        menuItem.setMnemonic(KeyEvent.VK_D);
-        menu.add(menuItem);
-
-        //a group of radio button menu items
-        menu.addSeparator();
-        ButtonGroup group = new ButtonGroup();
-
-        rbMenuItem = new JRadioButtonMenuItem("A radio button menu item");
-        rbMenuItem.setSelected(true);
-        rbMenuItem.setMnemonic(KeyEvent.VK_R);
-        group.add(rbMenuItem);
-        menu.add(rbMenuItem);
-
-        rbMenuItem = new JRadioButtonMenuItem("Another one");
-        rbMenuItem.setMnemonic(KeyEvent.VK_O);
-        group.add(rbMenuItem);
-        menu.add(rbMenuItem);
-
-        //a group of check box menu items
-        menu.addSeparator();
-        cbMenuItem = new JCheckBoxMenuItem("A check box menu item");
-        cbMenuItem.setMnemonic(KeyEvent.VK_C);
-        menu.add(cbMenuItem);
-
-        cbMenuItem = new JCheckBoxMenuItem("Another one");
-        cbMenuItem.setMnemonic(KeyEvent.VK_H);
-        menu.add(cbMenuItem);
-
-        //a submenu
-        menu.addSeparator();
-        submenu = new JMenu("A submenu");
-        submenu.setMnemonic(KeyEvent.VK_S);
-
-        menuItem = new JMenuItem("An item in the submenu");
-        menuItem.setAccelerator(KeyStroke.getKeyStroke(
-                KeyEvent.VK_2, ActionEvent.ALT_MASK));
-        submenu.add(menuItem);
-
-        menuItem = new JMenuItem("Another item");
-        submenu.add(menuItem);
-        menu.add(submenu);
-
-        //Build second menu in the menu bar.
-        menu = new JMenu("Another Menu");
-        menu.setMnemonic(KeyEvent.VK_N);
-        menu.getAccessibleContext().setAccessibleDescription(
-                "This menu does nothing");
-        menuBar.add(menu);
-    }
-
-    public static void main(String[] args) {
-        MenuLookDemo window = new MenuLookDemo();
-
-        window.setTitle("MenuLookDemo");
-        window.setSize(450, 260);
-        window.setVisible(true);
-    }
-}
--- a/examples/gui/swing/PopupMenuDemo.java	Fri Apr 05 21:34:25 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,196 +0,0 @@
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.JPopupMenu;
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-import javax.swing.JCheckBoxMenuItem;
-import javax.swing.JRadioButtonMenuItem;
-import javax.swing.ButtonGroup;
-import javax.swing.JMenuBar;
-import javax.swing.KeyStroke;
-import javax.swing.ImageIcon;
-
-import javax.swing.JTextArea;
-import javax.swing.JScrollPane;
-import javax.swing.JFrame;
-
-/*
- * This class adds popup menus to MenuDemo.
- */
-public class PopupMenuDemo extends JFrame 
-                           implements ActionListener, ItemListener {
-    JTextArea output;
-    JScrollPane scrollPane;
-    String newline = "\n";
-    JPopupMenu popup;
-
-    public PopupMenuDemo() {
-        JMenuBar menuBar;
-        JMenu menu, submenu;
-        JMenuItem menuItem;
-        JRadioButtonMenuItem rbMenuItem;
-        JCheckBoxMenuItem cbMenuItem;
-
-        addWindowListener(new WindowAdapter() {
-            public void windowClosing(WindowEvent e) {
-                System.exit(0);
-            }
-        });
-
-        //Add regular components to the window, using the default BorderLayout.
-        Container contentPane = getContentPane();
-        output = new JTextArea(5, 30);
-        output.setEditable(false);
-        scrollPane = new JScrollPane(output);
-        contentPane.add(scrollPane, BorderLayout.CENTER);
-
-        //Create the menu bar.
-        menuBar = new JMenuBar();
-        setJMenuBar(menuBar);
-
-        //Build the first menu.
-        menu = new JMenu("A Menu");
-        menu.setMnemonic(KeyEvent.VK_A);
-        menu.getAccessibleContext().setAccessibleDescription(
-                "The only menu in this program that has menu items");
-        menuBar.add(menu);
-
-        //a group of JMenuItems
-        menuItem = new JMenuItem("A text-only menu item",
-                                 KeyEvent.VK_T);
-        //menuItem.setMnemonic(KeyEvent.VK_T); //used constructor instead
-        menuItem.setAccelerator(KeyStroke.getKeyStroke(
-                KeyEvent.VK_1, ActionEvent.ALT_MASK));
-        menuItem.getAccessibleContext().setAccessibleDescription(
-                "This doesn't really do anything");
-        menuItem.addActionListener(this);
-        menu.add(menuItem);
-        menuItem = new JMenuItem("Both text and icon", 
-                                 new ImageIcon("images/middle.gif"));
-        menuItem.setMnemonic(KeyEvent.VK_B);
-        menuItem.addActionListener(this);
-        menu.add(menuItem);
-        menuItem = new JMenuItem(new ImageIcon("images/middle.gif"));
-        menuItem.setMnemonic(KeyEvent.VK_D);
-        menuItem.addActionListener(this);
-        menu.add(menuItem);
-
-        //a group of radio button menu items
-        menu.addSeparator();
-        ButtonGroup group = new ButtonGroup();
-        rbMenuItem = new JRadioButtonMenuItem("A radio button menu item");
-        rbMenuItem.setSelected(true);
-        rbMenuItem.setMnemonic(KeyEvent.VK_R);
-        group.add(rbMenuItem);
-        rbMenuItem.addActionListener(this);
-        menu.add(rbMenuItem);
-        rbMenuItem = new JRadioButtonMenuItem("Another one");
-        rbMenuItem.setMnemonic(KeyEvent.VK_O);
-        group.add(rbMenuItem);
-        rbMenuItem.addActionListener(this);
-        menu.add(rbMenuItem);
-
-        //a group of check box menu items
-        menu.addSeparator();
-        cbMenuItem = new JCheckBoxMenuItem("A check box menu item");
-        cbMenuItem.setMnemonic(KeyEvent.VK_C);
-        cbMenuItem.addItemListener(this);
-        menu.add(cbMenuItem);
-        cbMenuItem = new JCheckBoxMenuItem("Another one");
-        cbMenuItem.setMnemonic(KeyEvent.VK_H);
-        cbMenuItem.addItemListener(this);
-        menu.add(cbMenuItem);
-
-        //a submenu
-        menu.addSeparator();
-        submenu = new JMenu("A submenu");
-        submenu.setMnemonic(KeyEvent.VK_S);
-
-        menuItem = new JMenuItem("An item in the submenu");
-        menuItem.setAccelerator(KeyStroke.getKeyStroke(
-                KeyEvent.VK_2, ActionEvent.ALT_MASK));
-        menuItem.addActionListener(this);
-        submenu.add(menuItem);
-
-        menuItem = new JMenuItem("Another item");
-        menuItem.addActionListener(this);
-        submenu.add(menuItem);
-        menu.add(submenu);
-
-        //Build second menu in the menu bar.
-        menu = new JMenu("Another Menu");
-        menu.setMnemonic(KeyEvent.VK_N);
-        menu.getAccessibleContext().setAccessibleDescription(
-                "This menu does nothing");
-        menuBar.add(menu);
-
-        //Create the popup menu.
-        popup = new JPopupMenu();
-        menuItem = new JMenuItem("A popup menu item");
-        menuItem.addActionListener(this);
-        popup.add(menuItem);
-        menuItem = new JMenuItem("Another popup menu item");
-        menuItem.addActionListener(this);
-        popup.add(menuItem);
-
-        //Add listener to components that can bring up popup menus.
-        MouseListener popupListener = new PopupListener();
-        output.addMouseListener(popupListener);
-        scrollPane.addMouseListener(popupListener);
-        menuBar.addMouseListener(popupListener);
-    }
-
-    public void actionPerformed(ActionEvent e) {
-        JMenuItem source = (JMenuItem)(e.getSource());
-        String s = "Action event detected."
-                   + newline
-                   + "    Event source: " + source.getText()
-                   + " (an instance of " + getClassName(source) + ")";
-        output.append(s + newline);
-    }
-
-    public void itemStateChanged(ItemEvent e) {
-        JMenuItem source = (JMenuItem)(e.getSource());
-        String s = "Item event detected."
-                   + newline
-                   + "    Event source: " + source.getText()
-                   + " (an instance of " + getClassName(source) + ")"
-                   + newline
-                   + "    New state: " 
-                   + ((e.getStateChange() == ItemEvent.SELECTED) ?
-                     "selected":"unselected");
-        output.append(s + newline);
-    }
-
-    // Returns just the class name -- no package info.
-    protected String getClassName(Object o) {
-        String classString = o.getClass().getName();
-        int dotIndex = classString.lastIndexOf(".");
-        return classString.substring(dotIndex+1);
-    }
-
-    public static void main(String[] args) {
-        PopupMenuDemo window = new PopupMenuDemo();
-
-        window.setTitle("PopupMenuDemo");
-        window.setSize(450, 260);
-        window.setVisible(true);
-    }
-
-    class PopupListener extends MouseAdapter {
-        public void mousePressed(MouseEvent e) {
-            maybeShowPopup(e);
-        }
-
-        public void mouseReleased(MouseEvent e) {
-            maybeShowPopup(e);
-        }
-
-        private void maybeShowPopup(MouseEvent e) {
-            if (e.isPopupTrigger()) {
-                popup.show(e.getComponent(),
-                           e.getX(), e.getY());
-            }
-        }
-    }
-}
--- a/examples/misc/args	Fri Apr 05 21:34:25 2019 +0100
+++ b/examples/misc/args	Fri Apr 05 21:49:42 2019 +0100
@@ -1,5 +1,5 @@
 #properties
-#Fri Apr 05 21:28:03 BST 2019
+#Fri Apr 05 21:35:02 BST 2019
 mouse.y.trace.map.minimum=-0.0
 ft.power.plotter.window.bounds=(323,142,512,118)
 mouse.x.trace.map.symmetric=false