/** * Sets the model and notofies children to reflect the changes. * * @param model The model to set. */ public void setModel(DriveTrain model) { this.model = model; generalTranslationInput.setModel(model); generalGeometryInput.setModel(model); chainwheelTranslationInput.setModel(model.getChainwheels()); chainwheelGeometryInput.setModel(model.getChainwheels()); sprocketTranslationInput.setModel(model.getSprockets()); sprocketGeometryInput.setModel(model.getSprockets()); driveTrainDrawing.setModel(model); driveTrainOutput.setModel(model); update(); driveTrainOutput.structureChanged(); }
/** * Creates the geomerty input tabbed page * * @param tabbedPane The TabbedPane to add the tab to */ private void getGeometryInput(JTabbedPane tabbedPane) { JPanel geometryInput = new JPanel(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.gridwidth = REMAINDER; gbc.fill = BOTH; gbc.anchor = NORTHWEST; gbc.weighty = 1.0; chainwheelGeometryInput.addContentChangeListener(this); geometryInput.add(chainwheelGeometryInput, gbc); sprocketGeometryInput.addContentChangeListener(this); geometryInput.add(sprocketGeometryInput, gbc); generalGeometryInput.addContentChangeListener(this); geometryInput.add(generalGeometryInput, gbc); driveTrainDrawing.addContentChangeListener(this); driveTrainOutput.addContentChangeListener(this); tabbedPane.addTab( Messages.getString("GeometryDetails"), null, geometryInput, Messages.getString("GeometryDetailsTip")); }
/** Support method to notify children of any changes to model or style. */ public void update() { generalTranslationInput.update(); generalGeometryInput.update(); driveTrainDrawing.update(); driveTrainOutput.update(); chainwheelTranslationInput.update(); chainwheelGeometryInput.update(); sprocketTranslationInput.update(); sprocketGeometryInput.update(); }
/** * Implements the "Printable" interface, does the actual printing layout and draws the component * to the printer's graphics context. */ public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException { if (pageIndex == 0) { Graphics2D g = (Graphics2D) graphics; g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g.setRenderingHint( RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); AffineTransform origTransform = g.getTransform(); g.translate(pageFormat.getImageableX(), pageFormat.getImageableY() + 40); g.setFont(new Font("Verdana", Font.BOLD, 20)); g.drawString(model.getFile().getName(), 0, -20); g.setFont(new Font("Verdana", Font.PLAIN, 11)); g.drawString( " " + Messages.getString("Cadence") + ": " + model.getCadence().getStringValue(), 0, -3); driveTrainOutput.print(g, pageFormat); driveTrainDrawing.print(g, pageFormat); g.setTransform(origTransform); return Printable.PAGE_EXISTS; } else { return Printable.NO_SUCH_PAGE; } }
/** * Sets the unit system for this instance and ensures that children reflect the change. * * @param unitSystem The new unit system */ public void setUnitSystem(UnitSystem unitSystem) { model.setUnitSystem(unitSystem); update(); driveTrainOutput.structureChanged(); }
/** * Implements ContentChangeListener.contentChanged(). Flags the model as modified and updates all * child components to reflect the new model values. Then itself fires a contentChangeEvent to * notify listeners of the change. */ public void contentChanged(ChangeEvent e) { model.setModified(true); update(); driveTrainOutput.dataChanged(); fireContentChanged(); }