[Bprocessor-commit] gui/src/net/sourceforge/bprocessor/gui GUI.java, 1.53, 1.54
Status: Pre-Alpha
Brought to you by:
henryml
|
From: rimestad <rim...@us...> - 2006-12-03 17:53:39
|
Update of /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv11751/src/net/sourceforge/bprocessor/gui Modified Files: GUI.java Log Message: implemented copy, paste and delete in the menu and added a listener that enables and disables them, according to the content of the selection... Name is a bit misleading cause the object ain't listening to the editmenu, but the selection. Index: GUI.java =================================================================== RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/GUI.java,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** GUI.java 28 Nov 2006 20:51:57 -0000 1.53 --- GUI.java 3 Dec 2006 17:53:18 -0000 1.54 *************** *** 12,15 **** --- 12,16 ---- import net.sourceforge.bprocessor.gui.actions.CreateFunctionalSpaceActionListener; import net.sourceforge.bprocessor.gui.actions.CreateNetActionListener; + import net.sourceforge.bprocessor.gui.actions.EditMenuListener; import net.sourceforge.bprocessor.gui.actions.FileCloseActionListener; import net.sourceforge.bprocessor.gui.actions.FileExitActionListener; *************** *** 25,33 **** --- 26,44 ---- import net.sourceforge.bprocessor.gui.splash.SplashWindow; import net.sourceforge.bprocessor.gui.treeview.SpaceTreeView; + import net.sourceforge.bprocessor.model.CoordinateSystem; + import net.sourceforge.bprocessor.model.Edge; + import net.sourceforge.bprocessor.model.Geometric; + import net.sourceforge.bprocessor.model.Line; + import net.sourceforge.bprocessor.model.Point; import net.sourceforge.bprocessor.model.Project; + import net.sourceforge.bprocessor.model.Selection; import net.sourceforge.bprocessor.model.Space; + import net.sourceforge.bprocessor.model.Surface; + import net.sourceforge.bprocessor.model.Vertex; + import java.util.Collection; import java.util.ConcurrentModificationException; import java.util.Iterator; + import java.util.LinkedList; import java.util.Set; import java.util.HashSet; *************** *** 209,213 **** menu.registerMenu(file); ! // Edit menu JMenu edit = new JMenu("Edit"); edit.setMnemonic(KeyEvent.VK_E); --- 220,224 ---- menu.registerMenu(file); ! // Edit menu REMEMBER TO CHANGE EditMenuListener WHEN CHANGING CONTENT OF edit JMenu edit = new JMenu("Edit"); edit.setMnemonic(KeyEvent.VK_E); *************** *** 241,244 **** --- 252,257 ---- JMenuItem editCut = new JMenuItem("Cut"); editCut.setMnemonic(KeyEvent.VK_U); + editCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, + Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); editCut.setEnabled(false); edit.add(editCut); *************** *** 246,255 **** JMenuItem editCopy = new JMenuItem("Copy"); editCopy.setMnemonic(KeyEvent.VK_C); editCopy.setEnabled(false); edit.add(editCopy); JMenuItem editPaste = new JMenuItem("Paste"); ! editPaste.setMnemonic(KeyEvent.VK_P); editPaste.setEnabled(false); edit.add(editPaste); --- 259,318 ---- JMenuItem editCopy = new JMenuItem("Copy"); editCopy.setMnemonic(KeyEvent.VK_C); + editCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, + Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); editCopy.setEnabled(false); + editCopy.addActionListener(new AbstractAction() { + public void actionPerformed(ActionEvent arg0) { + Selection s = Selection.primary(); + Collection copy = Project.getInstance().getCopyBuffer(); + copy.clear(); + //FIXME check if it is legal to copy the selected geometry + copy.addAll(s); + } + }); edit.add(editCopy); JMenuItem editPaste = new JMenuItem("Paste"); ! editPaste.setMnemonic(KeyEvent.VK_V); ! editPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ! Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); editPaste.setEnabled(false); + editPaste.addActionListener(new AbstractAction() { + public void actionPerformed(ActionEvent arg0) { + LinkedList copied = new LinkedList(); + Collection c = Project.getInstance().getCopyBuffer(); + Iterator iter = c.iterator(); + while (iter.hasNext()) { + Geometric g = (Geometric)iter.next(); + if (g instanceof Space) { + copied.add(((Space)g).copy()); + } else if (g instanceof Edge) { + Edge copy = ((Edge)g).copy(); + g.getOwner().add(copy); + copied.add(copy); + } else if (g instanceof Vertex) { + Vertex copy = ((Vertex)g).copy(); + g.getOwner().add(copy); + copied.add(copy); + } else if (g instanceof Surface) { + Surface copy = ((Surface)g).copy(g.getOwner()); + copied.add(copy); + } else if (g instanceof Line) { + Line copy = ((Line)g).copy(); + g.getOwner().add(copy); + copied.add(copy); + } else if (g instanceof Point) { + Point copy = ((Point)g).copy(); + g.getOwner().add(copy); + copied.add(copy); + } else if (g instanceof CoordinateSystem) { + CoordinateSystem copy = ((CoordinateSystem)g).copy(); + g.getOwner().add(copy); + copied.add(copy); + } + } + Selection.primary().retainAll(copied); + } + }); edit.add(editPaste); *************** *** 258,261 **** --- 321,334 ---- JMenuItem editDelete = new JMenuItem("Delete"); editDelete.setMnemonic(KeyEvent.VK_D); + editDelete.addActionListener(new AbstractAction() { + public void actionPerformed(ActionEvent arg0) { + Collection c = Selection.primary(); + Iterator iter = c.iterator(); + while (iter.hasNext()) { + Geometric g = (Geometric)iter.next(); + g.delete(); + } + } + }); editDelete.setEnabled(false); edit.add(editDelete); *************** *** 263,271 **** edit.addSeparator(); - JMenuItem editProject = new JMenuItem("Project"); - editProject.setMnemonic(KeyEvent.VK_P); - editProject.setEnabled(false); - edit.add(editProject); - JMenuItem repaintTree = new JMenuItem("Repaint tree"); repaintTree.setEnabled(true); --- 336,339 ---- *************** *** 276,280 **** }); edit.add(repaintTree); ! menu.registerMenu(edit); --- 344,348 ---- }); edit.add(repaintTree); ! Selection.primary().addObserver(new EditMenuListener(edit)); menu.registerMenu(edit); |