/** Creates a new view. */ public NetView() { initComponents(); scrollPane.setLayout(new PlacardScrollPaneLayout()); scrollPane.setBorder(new EmptyBorder(0, 0, 0, 0)); setEditor(new DefaultDrawingEditor()); undo = new UndoRedoManager(); view.setDrawing(createDrawing()); view.getDrawing().addUndoableEditListener(undo); initActions(); undo.addPropertyChangeListener( new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { setHasUnsavedChanges(undo.hasSignificantEdits()); } }); ResourceBundleUtil labels = ResourceBundleUtil.getBundle("org.jhotdraw.draw.Labels"); JPanel placardPanel = new JPanel(new BorderLayout()); javax.swing.AbstractButton pButton; pButton = ButtonFactory.createZoomButton(view); pButton.putClientProperty("Quaqua.Button.style", "placard"); pButton.putClientProperty("Quaqua.Component.visualMargin", new Insets(0, 0, 0, 0)); pButton.setFont(UIManager.getFont("SmallSystemFont")); placardPanel.add(pButton, BorderLayout.WEST); toggleGridButton = pButton = ButtonFactory.createToggleGridButton(view); pButton.putClientProperty("Quaqua.Button.style", "placard"); pButton.putClientProperty("Quaqua.Component.visualMargin", new Insets(0, 0, 0, 0)); pButton.setFont(UIManager.getFont("SmallSystemFont")); labels.configureToolBarButton(pButton, "view.toggleGrid.placard"); placardPanel.add(pButton, BorderLayout.EAST); scrollPane.add(placardPanel, JScrollPane.LOWER_LEFT_CORNER); toggleGridButton.setSelected(preferences.getBoolean("view.gridVisible", false)); view.setScaleFactor(preferences.getDouble("view.scaleFactor", 1d)); view.addPropertyChangeListener( new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { String name = evt.getPropertyName(); if ("scaleFactor".equals(name)) { preferences.putDouble("view.scaleFactor", (Double) evt.getNewValue()); firePropertyChange("scaleFactor", evt.getOldValue(), evt.getNewValue()); } } }); }
/** Initializes the applet SVGApplet */ public void init() { // Set look and feel // ----------------- try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Throwable e) { // Do nothing. // If we can't set the desired look and feel, UIManager does // automaticaly the right thing for us. } // Display copyright info while we are loading the data // ---------------------------------------------------- Container c = getContentPane(); c.setLayout(new BoxLayout(c, BoxLayout.Y_AXIS)); String[] labels = getAppletInfo().split("\n"); // Strings.split(getAppletInfo(), '\n'); for (int i = 0; i < labels.length; i++) { c.add(new JLabel((labels[i].length() == 0) ? " " : labels[i])); } // We load the data using a worker thread // -------------------------------------- new Worker() { public Object construct() { Object result = null; InputStream in = null; try { // Try to read the data using all known input formats. Drawing drawing = createDrawing(); for (InputFormat fmt : drawing.getInputFormats()) { try { if (getParameter("data") != null) { in = new ByteArrayInputStream(getParameter("data").getBytes("UTF8")); } else if (getParameter("datafile") != null) { URL url = new URL(getDocumentBase(), getParameter("datafile")); in = url.openConnection().getInputStream(); } if (in != null) { fmt.read(in, drawing); result = drawing; break; } } catch (IOException e) { result = e; } } } catch (Throwable t) { result = t; } finally { if (in != null) { try { in.close(); } catch (IOException ex) { // ignore } } } return result; } public void finished(Object result) { if (result instanceof Throwable) { ((Throwable) result).printStackTrace(); } Container c = getContentPane(); c.setLayout(new BorderLayout()); c.removeAll(); c.add(drawingPanel = new SVGDrawingPanel()); initComponents(); if (result != null) { if (result instanceof Drawing) { setDrawing((Drawing) result); } else if (result instanceof Throwable) { getDrawing().add(new SVGTextFigure(result.toString())); ((Throwable) result).printStackTrace(); } } c.validate(); } }.start(); }
/** Creates new instance. */ public ODGDrawingPanel() { ResourceBundleUtil labels = ResourceBundleUtil.getBundle("org.jhotdraw.draw.Labels"); initComponents(); undoManager = new UndoRedoManager(); editor = new DefaultDrawingEditor(); editor.add(view); addCreationButtonsTo(creationToolbar, editor); ButtonFactory.addAttributesButtonsTo(attributesToolbar, editor); JPopupButton pb = new JPopupButton(); pb.setItemFont(UIManager.getFont("MenuItem.font")); labels.configureToolBarButton(pb, "actions"); pb.add(new DuplicateAction()); pb.addSeparator(); pb.add(new GroupAction(editor)); pb.add(new UngroupAction(editor)); pb.addSeparator(); pb.add(new BringToFrontAction(editor)); pb.add(new SendToBackAction(editor)); pb.addSeparator(); pb.add(new CutAction()); pb.add(new CopyAction()); pb.add(new PasteAction()); pb.add(new SelectAllAction()); pb.add(new SelectSameAction(editor)); pb.addSeparator(); pb.add(undoManager.getUndoAction()); pb.add(undoManager.getRedoAction()); // FIXME - We need a toggle grid action // pb.addSeparator(); // pb.add(new ToggleGridAction(editor)); JMenu m = new JMenu(labels.getString("view.zoomFactor.text")); JRadioButtonMenuItem rbmi; ButtonGroup group = new ButtonGroup(); m.add(rbmi = new JRadioButtonMenuItem(new ZoomAction(editor, 0.1, null))); group.add(rbmi); m.add(rbmi = new JRadioButtonMenuItem(new ZoomAction(editor, 0.25, null))); group.add(rbmi); m.add(rbmi = new JRadioButtonMenuItem(new ZoomAction(editor, 0.5, null))); group.add(rbmi); m.add(rbmi = new JRadioButtonMenuItem(new ZoomAction(editor, 0.75, null))); group.add(rbmi); m.add(rbmi = new JRadioButtonMenuItem(new ZoomAction(editor, 1.0, null))); rbmi.setSelected(true); group.add(rbmi); m.add(rbmi = new JRadioButtonMenuItem(new ZoomAction(editor, 1.25, null))); group.add(rbmi); m.add(rbmi = new JRadioButtonMenuItem(new ZoomAction(editor, 1.5, null))); group.add(rbmi); m.add(rbmi = new JRadioButtonMenuItem(new ZoomAction(editor, 2, null))); group.add(rbmi); m.add(rbmi = new JRadioButtonMenuItem(new ZoomAction(editor, 3, null))); group.add(rbmi); m.add(rbmi = new JRadioButtonMenuItem(new ZoomAction(editor, 4, null))); group.add(rbmi); pb.add(m); pb.setFocusable(false); creationToolbar.addSeparator(); creationToolbar.add(pb); DefaultDrawing drawing = new DefaultDrawing(); view.setDrawing(drawing); drawing.addUndoableEditListener(undoManager); }