/** * Saves an object's data to an XMLControl. * * @param control the control to save to * @param obj the object to save */ public void saveObject(XMLControl control, Object obj) { ParticleModel p = (ParticleModel) obj; // save mass control.setValue("mass", p.getMass()); // $NON-NLS-1$ // save track data XML.getLoader(TTrack.class).saveObject(control, obj); // save parameters, initial values and functions Parameter[] params = p.getParamEditor().getParameters(); control.setValue("user_parameters", params); // $NON-NLS-1$ Parameter[] inits = p.getInitEditor().getParameters(); control.setValue("initial_values", inits); // $NON-NLS-1$ UserFunction[] functions = p.getFunctionEditor().getMainFunctions(); control.setValue("main_functions", functions); // $NON-NLS-1$ functions = p.getFunctionEditor().getSupportFunctions(); if (functions.length > 0) control.setValue("support_functions", functions); // $NON-NLS-1$ // save start and end frames (if custom) if (p.startFrame > 0) control.setValue("start_frame", p.startFrame); // $NON-NLS-1$ if (p.endFrame < Integer.MAX_VALUE) control.setValue("end_frame", p.endFrame); // $NON-NLS-1$ // save inspector size and position if (p.inspector != null && p.trackerPanel != null && p.trackerPanel.getTFrame() != null) { // save inspector location relative to frame TFrame frame = p.trackerPanel.getTFrame(); int x = p.inspector.getLocation().x - frame.getLocation().x; int y = p.inspector.getLocation().y - frame.getLocation().y; control.setValue("inspector_x", x); // $NON-NLS-1$ control.setValue("inspector_y", y); // $NON-NLS-1$ control.setValue("inspector_h", p.inspector.getHeight()); // $NON-NLS-1$ control.setValue("inspector_visible", p.inspector.isVisible()); // $NON-NLS-1$ } }
private void positionInspector() { if (inspectorX != Integer.MIN_VALUE) { // trackerPanel will select this track when getInspector() is called // only if loader has set the showInspector flag (so refreshing is false) refreshing = !showInspector; loading = true; // prevents setting trackerPanel changed flag getInspector(); refreshing = loading = false; TFrame frame = trackerPanel.getTFrame(); Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); if (inspectorH != Integer.MIN_VALUE) inspector.setSize(inspector.getWidth(), Math.min(inspectorH, dim.height)); int x = Math.max(frame.getLocation().x + inspectorX, 0); x = Math.min(x, dim.width - inspector.getWidth()); int y = Math.max(frame.getLocation().y + inspectorY, 0); y = Math.min(y, dim.height - inspector.getHeight()); inspector.setLocation(x, y); inspectorX = Integer.MIN_VALUE; } }