private void initialize(final EditablePiece p) { ed = p.getEditor(); setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS)); add(ed.getControls()); JButton b = new JButton("Ok"); b.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { dispose(); } }); JPanel panel = new JPanel(); panel.add(b); b = new JButton("Cancel"); b.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { ed = null; dispose(); } }); panel.add(b); add(panel); pack(); setLocationRelativeTo(getOwner()); }
protected boolean edit(int index) { Object o = inUseModel.elementAt(index); if (!(o instanceof EditablePiece)) { return false; } EditablePiece p = (EditablePiece) o; if (p.getEditor() != null) { Ed ed = null; Window w = SwingUtilities.getWindowAncestor(this); if (w instanceof Frame) { ed = new Ed((Frame) w, p); } else if (w instanceof Dialog) { ed = new Ed((Dialog) w, p); } else { ed = new Ed((Frame) null, p); } final String oldState = p.getState(); final String oldType = p.getType(); ed.setVisible(true); PieceEditor c = ed.getEditor(); if (c != null) { p.mySetType(c.getType()); if (p instanceof Decorator) { ((Decorator) p).mySetState(c.getState()); } else { p.setState(c.getState()); } if ((!p.getType().equals(oldType)) || (!p.getState().equals(oldState))) { setChanged(true); } refresh(); return true; } } return false; }