/** Refreshes the user interface in response to display changes such as Language. */ protected void refreshGUI() { super.refreshGUI(); resetToolTipText = ControlsRes.ANIMATION_RESET_TIP; initToolTipText = ControlsRes.ANIMATION_INIT_TIP; startToolTipText = ControlsRes.ANIMATION_START_TIP; stopToolTipText = ControlsRes.ANIMATION_STOP_TIP; newToolTipText = ControlsRes.ANIMATION_NEW_TIP; stepToolTipText = ControlsRes.ANIMATION_STEP_TIP; stepBtn.setText(ControlsRes.ANIMATION_STEP); stepBtn.setToolTipText(stepToolTipText); if (startBtn.getText().equals(startText)) { startBtn.setText(ControlsRes.ANIMATION_START); startBtn.setToolTipText(startToolTipText); } else if (startBtn.getText().equals(stopText)) { startBtn.setText(ControlsRes.ANIMATION_STOP); startBtn.setToolTipText(stopToolTipText); } else { startBtn.setText(ControlsRes.ANIMATION_INIT); startBtn.setToolTipText(initToolTipText); } if (resetBtn.getText().equals(newText)) { resetBtn.setText(ControlsRes.ANIMATION_NEW); resetBtn.setToolTipText(newToolTipText); } else { resetBtn.setText(ControlsRes.ANIMATION_RESET); resetBtn.setToolTipText(resetToolTipText); } initText = ControlsRes.ANIMATION_INIT; startText = ControlsRes.ANIMATION_START; resetText = ControlsRes.ANIMATION_RESET; stopText = ControlsRes.ANIMATION_STOP; newText = ControlsRes.ANIMATION_NEW; }
/** Disposes all resources. */ public void dispose() { if (model instanceof AbstractAnimation) { // stops the animation ((AbstractAnimation) model).animationThread = null; } super.dispose(); }
/** * Loads an object with data from an XMLControl. * * @param control the control * @param obj the object * @return the loaded object */ public Object loadObject(XMLControl control, Object obj) { OSPControl cf = (OSPControl) obj; // iterate over properties and add them to table model Iterator it = control.getPropertyNames().iterator(); cf.table.setLockValues(true); while (it.hasNext()) { String name = (String) it.next(); // skip "model" object properties if (name.equals("model") && control.getPropertyType(name).equals("object")) { XMLControl child = control.getChildControl("model"); // $NON-NLS-1$ cf.model = child.loadObject(cf.model); continue; } if (control.getPropertyType(name).equals("string")) { // $NON-NLS-1$ cf.setValue(name, control.getString(name)); } else if (control.getPropertyType(name).equals("int")) { // $NON-NLS-1$ cf.setValue(name, control.getInt(name)); } else if (control.getPropertyType(name).equals("double")) { // $NON-NLS-1$ cf.setValue(name, control.getDouble(name)); } else if (control.getPropertyType(name).equals("boolean")) { // $NON-NLS-1$ cf.setValue(name, control.getBoolean(name)); } else { cf.setValue(name, control.getObject(name)); } } cf.table.setLockValues(false); // XMLControl child = control.getChildControl("model"); //$NON-NLS-1$ // if(child!=null) { // cf.model = child.loadObject(cf.model); // } return obj; }
protected void saveControlProperites(XMLControl xmlControl, OSPControl ospControl) { // save the parameters Iterator it = ospControl.getPropertyNames().iterator(); while (it.hasNext()) { String name = (String) it.next(); Object val = ospControl.getObject(name); if (val.getClass() == DoubleArray.class) { xmlControl.setValue(name, ((DoubleArray) val).getArray()); } else if (val.getClass() == IntegerArray.class) { xmlControl.setValue(name, ((IntegerArray) val).getArray()); } else if (val.getClass() == Boolean.class) { xmlControl.setValue(name, ((Boolean) val).booleanValue()); } else if (val.getClass() == Double.class) { xmlControl.setValue(name, ((Double) val).doubleValue()); } else if (val.getClass() == Integer.class) { xmlControl.setValue(name, ((Integer) val).intValue()); } else if (val.getClass().isArray()) { xmlControl.setValue(name, val); } else { xmlControl.setValue(name, val); } // xmlControl.setValue(name, val.toString()); } }
/** * Creates an OSP control and establishes communication between the control and the model. * * <p>Custom buttons are usually added to this control to invoke actions in the model. * * @param model Object * @return AnimationControl */ public static OSPControl createApp(Object model) { OSPControl control = new OSPControl(model); control.setSize(300, 300); control.setVisible(true); return control; }