void updateGui (String fieldname) {
        Object fieldval = fieldvalues.get(fieldname);
        Object fieldcom = fieldcomponents.get(fieldname);
        String fieldtype = (String) fieldtypes.get(fieldname);
        if (fieldcom instanceof JCheckBox) {
            ((JCheckBox) fieldcom).setSelected(
                    ((Boolean) fieldval).booleanValue());
            /*
             * more work in progress
             * } else if (fieldcom instanceof CoordPanel) {
             * CoordPanel cp = (CoordPanel) fieldcom;
             * if (fieldval instanceof Point) {
             * cp.setValue((Point)fieldval);
             * } else if (fieldval instanceof Dimension) {
             * cp.setValue((Dimension)fieldval);
             * } else if (fieldval instanceof Rectangle) {
             * cp.setValue((Rectangle)fieldval);
             * } else {
             * System.err.println("Cannot match field with CoordPanel");
             * }
             */
        }
        else if (fieldcom instanceof JColorChooser) {
            JColorChooser jcc = (JColorChooser) fieldcom;
            jcc.setColor((Color) fieldval);
        }
        else if (fieldcom instanceof KeyField) {
            ((KeyField) fieldcom).setValue(((Integer) fieldval).intValue());
        }
        else if (fieldcom instanceof JTextField) {
            JTextField textfield = (JTextField) fieldcom;
            if (fieldtype.equals("int")
                || fieldtype.equals("double")) {
                textfield.setText("" + fieldval);
            }
            else if (fieldtype.equals("String")) {
                textfield.setText("" + fieldval);
            }
        }
    }