[Bprocessor-commit] gui/src/net/sourceforge/bprocessor/gui PopupMenu.java, NONE, 1.1 GUI.java, 1.42
Status: Pre-Alpha
Brought to you by:
henryml
From: rimestad <rim...@us...> - 2006-09-26 09:51:04
|
Update of /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv18226/src/net/sourceforge/bprocessor/gui Modified Files: GUI.java Added Files: PopupMenu.java Log Message: moved popup generation to a static gui class along with actions --- NEW FILE: PopupMenu.java --- //--------------------------------------------------------------------------------- // $Id: PopupMenu.java,v 1.1 2006/09/26 09:50:55 rimestad Exp $ // // Copyright (c) 2005 The BProcessor Team (http://bprocessor.sourceforge.net) // Released under the Lesser GNU Public License v2.1 //--------------------------------------------------------------------------------- package net.sourceforge.bprocessor.gui; import java.awt.event.ActionEvent; import java.util.Collection; import java.util.Iterator; import javax.swing.AbstractAction; import javax.swing.JMenu; import javax.swing.JOptionPane; import javax.swing.JPopupMenu; import net.sourceforge.bprocessor.gui.actions.AttributeMenuAction; import net.sourceforge.bprocessor.gui.actions.EntitiesMenuAction; import net.sourceforge.bprocessor.gui.actions.EntityMenuAction; import net.sourceforge.bprocessor.gui.actions.ModellorMenuAction; import net.sourceforge.bprocessor.gui.actions.SpaceMenuAction; import net.sourceforge.bprocessor.gui.attrview.AttributeView; import net.sourceforge.bprocessor.model.Attribute; import net.sourceforge.bprocessor.model.Entity; import net.sourceforge.bprocessor.model.FullRotate; import net.sourceforge.bprocessor.model.Geometry; import net.sourceforge.bprocessor.model.Project; import net.sourceforge.bprocessor.model.Rotate; import net.sourceforge.bprocessor.model.Scale; import net.sourceforge.bprocessor.model.Selection; import net.sourceforge.bprocessor.model.Space; import net.sourceforge.bprocessor.model.Translate; import net.sourceforge.bprocessor.model.Vertex; import net.sourceforge.bprocessor.model.modellor.Modellor; /** * The static popup menu generator */ public class PopupMenu { /** * A popup generator for a space * @param s the space * @return the popup menu */ public static JPopupMenu getSpaceMenu(Space s) { JPopupMenu pm = PopupMenu.getEntityMenu(s); pm.addSeparator(); if (s != null) { AbstractAction copy = new SpaceMenuAction(s, "Duplicate") { public void actionPerformed(ActionEvent arg0) { if (space != null) { Space spaceCopy = space.copy(); Selection.primary().clear(); Selection.primary().add(spaceCopy); } } }; pm.add(copy); AbstractAction instantiate = new SpaceMenuAction(s, "Instantiate") { public void actionPerformed(ActionEvent arg0) { if (space != null) { Space instance = new Space("Instance of " + space.getName(), Space.CONSTRUCTION, space.getLevel(), false); instance.setProto(space); space.getOwner().add(instance); Project.getInstance().changed(Project.getInstance()); } } }; pm.add(instantiate); if (s.getLevel() < Space.PART_LEVEL) { AbstractAction edit = new SpaceMenuAction(s, "Edit") { public void actionPerformed(ActionEvent arg0) { Selection.primary().clear(); Project.getInstance().setActiveSpace(space); } }; pm.add(edit); } if (s.getEnvelope().isEmpty()) { AbstractAction envelope = new SpaceMenuAction(s, "Compute Envelope") { public void actionPerformed(ActionEvent arg0) { if (space != null) { space.computeEnvelope(); Project.getInstance().changed(Project.getInstance()); } } }; pm.add(envelope); } AbstractAction flip = new SpaceMenuAction(s, "Rotate 90 degrees CCW") { public void actionPerformed(ActionEvent arg0) { Iterator it = space.collect().iterator(); Vertex center = space.center(); while (it.hasNext()) { Geometry.rotate(Math.PI / 2, 0, 0, 1, (Vertex)it.next(), center); } space.changed(); } }; pm.add(flip); AbstractAction check = new SpaceMenuAction(s, "Check") { public void actionPerformed(ActionEvent arg0) { space.check(); } }; pm.add(check); AbstractAction translate = new SpaceMenuAction(s, "Translate") { public void actionPerformed(ActionEvent arg0) { space.addTransform(new Translate()); space.changed(); } }; pm.add(translate); AbstractAction rotate = new SpaceMenuAction(s, "Rotate") { public void actionPerformed(ActionEvent arg0) { space.addTransform(new Rotate()); space.changed(); } }; pm.add(rotate); AbstractAction scale = new SpaceMenuAction(s, "Scale") { public void actionPerformed(ActionEvent arg0) { space.addTransform(new Scale()); space.changed(); } }; pm.add(scale); AbstractAction fullrotate = new SpaceMenuAction(s, "Full Rotate") { public void actionPerformed(ActionEvent arg0) { space.addTransform(new FullRotate()); space.changed(); } }; pm.add(fullrotate); // Adding all modellors JMenu mm = new JMenu("Modellors"); Collection c = Modellor.getRegisteredModellors(); Iterator iter = c.iterator(); while (iter.hasNext()) { Modellor m = (Modellor)iter.next(); AbstractAction modellor = new ModellorMenuAction(s, m) { public void actionPerformed(ActionEvent arg0) { Modellor created = modellor.newInstance(space); if (created != null) { space.setModellor(created); AttributeView.instance().display(created); space.changed(); } else { JOptionPane.showMessageDialog( null, "The chosen space havn't been assigned to any surface", "No envolope surface error", JOptionPane.ERROR_MESSAGE); } } }; mm.add(modellor); } pm.add(mm); } return pm; } /** * a popup generator for a single entity * @param e The entity * @return the popup menu */ public static JPopupMenu getEntityMenu(Entity e) { JPopupMenu pm = new JPopupMenu(); AbstractAction delete = new EntityMenuAction(e, "Delete") { public void actionPerformed(ActionEvent arg0) { if (entity != null) { entity.delete(); Selection.primary().clear(); Project.getInstance().changed(entity); Project.getInstance().checkpoint(); } } }; pm.add(delete); return pm; } /** * A generator of the attribute popup menu * @param attribute the attribute to make popup for * @return The popupmenu */ public static JPopupMenu getAttributeMenu(Attribute attribute) { JPopupMenu pm = new JPopupMenu(); AbstractAction delete = new AttributeMenuAction(attribute, "Delete") { public void actionPerformed(ActionEvent arg0) { Project p = Project.getInstance(); p.getGlobals().remove(attribute); p.changed(p); p.checkpoint(); } }; pm.add(delete); return pm; } /** * A popupmenu generator for entities * @param entities the entity list to make popup for * @return the popupmenu */ public static JPopupMenu getEntiesMenu(Collection entities) { JPopupMenu pm = new JPopupMenu(); AbstractAction delete = new EntitiesMenuAction(entities, "Delete") { public void actionPerformed(ActionEvent arg0) { if (entities != null) { Iterator iter = entities.iterator(); while (iter.hasNext()) { ((Entity)iter.next()).delete(); } Project.getInstance().changed(Geometry.collect(entities)); Project.getInstance().checkpoint(); Selection.primary().clear(); } } }; pm.add(delete); return pm; } } Index: GUI.java =================================================================== RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/GUI.java,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** GUI.java 31 Aug 2006 13:01:49 -0000 1.42 --- GUI.java 26 Sep 2006 09:50:55 -0000 1.43 *************** *** 10,14 **** import net.sourceforge.bprocessor.gui.actions.CreateConstructorActionListener; import net.sourceforge.bprocessor.gui.actions.CreateFunctionalSpaceActionListener; - import net.sourceforge.bprocessor.gui.actions.CreateSurfaceActionListener; import net.sourceforge.bprocessor.gui.actions.FileCloseActionListener; import net.sourceforge.bprocessor.gui.actions.FileExitActionListener; --- 10,13 ---- *************** *** 286,290 **** create.add(createConstructionSpace); ! JMenuItem createElement = new JMenuItem("Element"); createElement.setMnemonic(KeyEvent.VK_E); createElement.setEnabled(false); --- 285,289 ---- create.add(createConstructionSpace); ! /*JMenuItem createElement = new JMenuItem("Element"); createElement.setMnemonic(KeyEvent.VK_E); createElement.setEnabled(false); *************** *** 300,304 **** createSurface.addActionListener(new CreateSurfaceActionListener()); createSurface.setEnabled(false); ! create.add(createSurface); menu.registerMenu(create); --- 299,303 ---- createSurface.addActionListener(new CreateSurfaceActionListener()); createSurface.setEnabled(false); ! create.add(createSurface);*/ menu.registerMenu(create); |