Thread: [Bprocessor-commit] gui/src/net/sourceforge/bprocessor/gui/treeview GenericTreeView.java, 1.48, 1.4
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/treeview In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv18226/src/net/sourceforge/bprocessor/gui/treeview Modified Files: GenericTreeView.java TreeView.java Log Message: moved popup generation to a static gui class along with actions Index: TreeView.java =================================================================== RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/treeview/TreeView.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TreeView.java 5 Apr 2006 09:35:50 -0000 1.3 --- TreeView.java 26 Sep 2006 09:50:55 -0000 1.4 *************** *** 10,14 **** import javax.swing.JTree; - import javax.swing.tree.TreeSelectionModel; import org.apache.log4j.Logger; --- 10,13 ---- *************** *** 26,30 **** public TreeView() { super(); ! getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); setEditable(false); Font font = new Font("Sans-serif", Font.PLAIN, 12); --- 25,29 ---- public TreeView() { super(); ! //getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); setEditable(false); Font font = new Font("Sans-serif", Font.PLAIN, 12); Index: GenericTreeView.java =================================================================== RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/treeview/GenericTreeView.java,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** GenericTreeView.java 20 Sep 2006 11:01:37 -0000 1.48 --- GenericTreeView.java 26 Sep 2006 09:50:54 -0000 1.49 *************** *** 25,30 **** import javax.swing.ImageIcon; - import javax.swing.JMenu; - import javax.swing.JOptionPane; import javax.swing.JPopupMenu; import javax.swing.JTree; --- 25,28 ---- *************** *** 46,64 **** import net.sourceforge.bprocessor.model.Edge; import net.sourceforge.bprocessor.model.Entity; - import net.sourceforge.bprocessor.model.FullRotate; import net.sourceforge.bprocessor.model.Geometric; import net.sourceforge.bprocessor.model.Observer; import net.sourceforge.bprocessor.model.ParameterBlock; 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.Surface; - import net.sourceforge.bprocessor.model.Translate; import net.sourceforge.bprocessor.model.Vertex; - import net.sourceforge.bprocessor.model.Geometry; import net.sourceforge.bprocessor.model.modellor.Modellor; import net.sourceforge.bprocessor.gui.GUI; import net.sourceforge.bprocessor.gui.attrview.AttributeView; --- 44,58 ---- import net.sourceforge.bprocessor.model.Edge; import net.sourceforge.bprocessor.model.Entity; import net.sourceforge.bprocessor.model.Geometric; import net.sourceforge.bprocessor.model.Observer; import net.sourceforge.bprocessor.model.ParameterBlock; 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 net.sourceforge.bprocessor.model.modellor.Modellor; import net.sourceforge.bprocessor.gui.GUI; + import net.sourceforge.bprocessor.gui.PopupMenu; import net.sourceforge.bprocessor.gui.attrview.AttributeView; *************** *** 254,263 **** /** ! * Set selection to target * @param target Object */ public void select(Object target) { if (target instanceof Geometric) { ! Selection.primary().set(target); } else { AttributeView.instance().display(target); --- 248,257 ---- /** ! * add target to selection * @param target Object */ public void select(Object target) { if (target instanceof Geometric) { ! Selection.primary().add(target); } else { AttributeView.instance().display(target); *************** *** 266,269 **** --- 260,275 ---- /** + * deselect target + * @param target Object + */ + public void deselect(Object target) { + if (target instanceof Geometric) { + Selection.primary().remove(target); + } else { + AttributeView.instance().display(null); + } + } + + /** * GenericNode */ *************** *** 385,469 **** */ public JPopupMenu menu() { ! JPopupMenu pm = new JPopupMenu(); Object object = this.getUserObject(); if (object instanceof Entity) { ! AbstractAction delete = new EntityAction((Entity)object, "Delete") { ! public void actionPerformed(ActionEvent arg0) { ! if (entity != null) { ! entity.delete(); ! Project.getInstance().checkpoint(); ! } ! } ! }; ! pm.add(delete); } else if (object instanceof Attribute) { ! AbstractAction delete = new AttributeAction((Attribute)object, "Delete") { ! public void actionPerformed(ActionEvent arg0) { ! Project p = Project.getInstance(); ! p.getGlobals().remove(attribute); ! p.changed(p); ! p.checkpoint(); ! } ! }; ! pm.add(delete); ! } else { ! return null; } return pm; } } - - /** - * Actions for a entity - */ - public abstract class EntityAction extends AbstractAction { - /** The entity */ - protected Entity entity; - - /** - * The constructor - * @param ent the entity - * @param name the name of the action - */ - public EntityAction(Entity ent, String name) { - super(name); - this.entity = ent; - } - } - - /** - * Actions for a attribute - */ - public abstract class AttributeAction extends AbstractAction { - /** The entity */ - protected Attribute attribute; - - /** - * The constructor - * @param a the attribute - * @param name the name of the action - */ - public AttributeAction(Attribute a, String name) { - super(name); - this.attribute = a; - } - } - - /** - * Actions for a entity - */ - public abstract class EntityModellorAction extends EntityAction { - /** The modellor number */ - protected Modellor which; - /** - * The constructor - * @param ent the entity - * @param m the modellor object - */ - public EntityModellorAction(Entity ent, Modellor m) { - super(ent, m.getName()); - this.which = m; - } - } /** --- 391,404 ---- */ public JPopupMenu menu() { ! JPopupMenu pm = null; Object object = this.getUserObject(); if (object instanceof Entity) { ! pm = PopupMenu.getEntityMenu((Entity)object); } else if (object instanceof Attribute) { ! pm = PopupMenu.getAttributeMenu((Attribute)object); } return pm; } } /** *************** *** 520,648 **** */ public JPopupMenu menu() { ! JPopupMenu pm = super.menu(); ! Object object = this.getUserObject(); ! if (object != null) { ! AbstractAction copy = new EntityAction((Entity)object, "Duplicate") { ! public void actionPerformed(ActionEvent arg0) { ! if (entity != null) { ! Space spaceCopy = ((Space)entity).copy(); ! select(spaceCopy); ! } ! } ! }; ! pm.add(copy); ! AbstractAction instantiate = new EntityAction((Entity)object, "Instantiate") { ! public void actionPerformed(ActionEvent arg0) { ! if (entity != null) { ! Space prototype = (Space) entity; ! ! Space space = new Space("Instance of " + prototype.getName(), ! Space.CONSTRUCTION, false); ! space.setProto(prototype); ! prototype.getOwner().add(space); ! Project.getInstance().changed(Project.getInstance()); ! } ! } ! }; ! pm.add(instantiate); ! AbstractAction edit = new EntityAction((Entity)object, "Edit") { ! public void actionPerformed(ActionEvent arg0) { ! Selection.primary().clear(); ! Project.getInstance().setActiveSpace((Space)entity); ! } ! }; ! pm.add(edit); ! AbstractAction envelope = new EntityAction((Entity)object, "Compute Envelope") { ! public void actionPerformed(ActionEvent arg0) { ! if (entity != null) { ! Space space = (Space) entity; ! space.computeEnvelope(); ! Project.getInstance().changed(Project.getInstance()); ! } ! } ! }; ! pm.add(envelope); ! ! AbstractAction flip = new EntityAction((Entity)object, "Rotate 90 degrees CCW") { ! public void actionPerformed(ActionEvent arg0) { ! Space space = (Space)entity; ! 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 EntityAction((Entity) object, "Check") { ! public void actionPerformed(ActionEvent arg0) { ! Space space = (Space) entity; ! space.check(); ! } ! }; ! pm.add(check); ! AbstractAction translate = new EntityAction((Entity) object, "Translate") { ! public void actionPerformed(ActionEvent arg0) { ! Space space = (Space) entity; ! space.addTransform(new Translate()); ! space.changed(); ! } ! }; ! pm.add(translate); ! AbstractAction rotate = new EntityAction((Entity) object, "Rotate") { ! public void actionPerformed(ActionEvent arg0) { ! Space space = (Space) entity; ! space.addTransform(new Rotate()); ! space.changed(); ! } ! }; ! pm.add(rotate); ! AbstractAction scale = new EntityAction((Entity) object, "Scale") { ! public void actionPerformed(ActionEvent arg0) { ! Space space = (Space) entity; ! space.addTransform(new Scale()); ! space.changed(); ! } ! }; ! pm.add(scale); ! AbstractAction fullrotate = new EntityAction((Entity) object, "Full Rotate") { ! public void actionPerformed(ActionEvent arg0) { ! Space space = (Space) entity; ! 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 EntityModellorAction((Entity)object, m) { ! public void actionPerformed(ActionEvent arg0) { ! Space current = (Space)entity; ! Modellor created = which.newInstance(current); ! if (created != null) { ! current.setModellor(created); ! AttributeView.instance().display(created); ! current.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; } } --- 455,459 ---- */ public JPopupMenu menu() { ! return PopupMenu.getSpaceMenu((Space)this.getUserObject()); } } *************** *** 1114,1117 **** --- 925,946 ---- /** + * Actions for a entity + */ + public abstract class EntityAction extends AbstractAction { + /** The entity */ + protected Entity entity; + + /** + * The constructor + * @param ent the entity + * @param name the name of the action + */ + public EntityAction(Entity ent, String name) { + super(name); + this.entity = ent; + } + } + + /** * AttributeNode */ *************** *** 1177,1180 **** --- 1006,1013 ---- if (event.isAddedPath()) { TreePath path = event.getPath(); + GenericTreeView gtv = (GenericTreeView)event.getSource(); + if (gtv.getSelectionPaths().length == 1) { + Selection.primary().clear(); + } Object object = path.getLastPathComponent(); if (object instanceof DefaultMutableTreeNode) { *************** *** 1183,1186 **** --- 1016,1029 ---- select(target); } + } else { + TreePath[] path = event.getPaths(); + for (int i = 0; i < path.length; i++) { + Object object = path[i].getLastPathComponent(); + if (object instanceof DefaultMutableTreeNode) { + DefaultMutableTreeNode node = (DefaultMutableTreeNode) object; + Object target = node.getUserObject(); + deselect(target); + } + } } } *************** *** 1240,1248 **** TreePath tp = selectionModel.getSelectionPath(); Object o = tp.getLastPathComponent(); - System.out.println("The object were " + o); if (o instanceof GenericNode) { GenericNode node = (GenericNode) o; o = node.getUserObject(); - System.out.println("The object were " + o); if (o instanceof Entity) { HashSet set = new HashSet(); --- 1083,1089 ---- |