Thread: [Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/tool SpaceTool.java,1.1,1.2 SelectTool.java
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2006-01-11 12:05:41
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26449/src/net/sourceforge/bprocessor/gl/tool Modified Files: SpaceTool.java SelectTool.java Log Message: Cleanup Index: SpaceTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/SpaceTool.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SpaceTool.java 15 Nov 2005 19:04:10 -0000 1.1 --- SpaceTool.java 11 Jan 2006 12:05:32 -0000 1.2 *************** *** 9,14 **** --- 9,28 ---- import java.awt.Cursor; + import java.awt.event.ActionListener; + import java.awt.event.MouseEvent; + import java.util.HashSet; + import java.util.Iterator; + import java.util.Set; + + import javax.swing.JMenu; + import javax.swing.JMenuItem; + import javax.swing.JPopupMenu; + + import org.apache.log4j.Logger; import net.sourceforge.bprocessor.gl.GLView; + import net.sourceforge.bprocessor.model.Project; + import net.sourceforge.bprocessor.model.Space; + import net.sourceforge.bprocessor.model.Surface; /** *************** *** 16,20 **** */ public class SpaceTool extends SelectTool { ! /** * Construct the SpaceTool --- 30,35 ---- */ public class SpaceTool extends SelectTool { ! /** The logger */ ! private static Logger log = Logger.getLogger(SpaceTool.class); /** * Construct the SpaceTool *************** *** 26,29 **** --- 41,185 ---- } + /** + * Invoked when a mouse button has been pressed on a component. + * @param e The MouseEvent object + */ + protected void pressed(MouseEvent e) { + findTarget(e); + boolean done = false; + if (e.getButton() == MouseEvent.BUTTON1) { + if (target != null) { + if (target instanceof String) { + String side = (String)target; + glv.popup(makeSpaceMenu(side), e.getX(), e.getY()); + done = true; + } + } + } + + if (!done) { + super.pressed(e); + } + } + + /** + * Creates the correct type popup menu. + * @param type the type of popup should be created + * @return the popup menu. + */ + protected JPopupMenu makeSpaceMenu(String type) { + if (type.equals("bar")) { + return seperatorPopup(); + } else if (type.equals("front") || type.equals("back")) { + return spacePopup(type); + } else { + log.warn("\"" + type + "\" is not a recognized type of popup"); + return null; + } + } + + /** + * Creates the popup that appears when pressing a space seperator + * @return the seperatorpopup menu. + */ + private JPopupMenu seperatorPopup() { + JPopupMenu sepPop = new JPopupMenu(); + Iterator selIt = new HashSet(selection).iterator(); + if (selIt.hasNext()) { + Object o = selIt.next(); + if (o instanceof Surface) { + Surface surface = (Surface)o; + JMenuItem shift = new JMenuItem("Shift spaces"); + ActionListener shiftListener = new ShiftActionListener(surface); + shift.addActionListener(shiftListener); + JMenuItem copy = new JMenuItem("Copy space assignment"); + ActionListener copyListener = new CopyActionListener(surface, glv.getView()); + copy.addActionListener(copyListener); + JMenuItem paste = new JMenuItem("Paste space assignment"); + ActionListener pasteListener = new PasteActionListener(surface, glv.getView()); + paste.addActionListener(pasteListener); + + sepPop.add(shift); + sepPop.add(copy); + sepPop.add(paste); + sepPop.pack(); + return sepPop; + } + } + log.warn("Seperator popup menu has no surface"); + return sepPop; + } + + /** + * Creates the popup that appears when pressing a space label + * @param side string indicating the wich space is choosen (front or back). + * @return the spacepopup menu. + */ + private JPopupMenu spacePopup(String side) { + JPopupMenu pp = new JPopupMenu(side); + SpacePopupListener spl = new SpacePopupListener(side.equals("front"), glv.getView()); + Set domains = Project.getInstance().getDomains(); + Iterator domIt = domains.iterator(); + Iterator selIt = new HashSet(selection).iterator(); + Surface surface = null; + if (selIt.hasNext()) { + Object o = selIt.next(); + if (o instanceof Surface) { + surface = (Surface)o; + } + JMenuItem noneItem = new JMenuItem("NONE"); + ActionListener noneListener = new DomainPopupListener(null, + surface, + side.equals("front")); + noneItem.addActionListener(noneListener); + + JMenuItem createFuncItem = new JMenuItem("New Functional Space"); + ActionListener funcListener = new CreateSpaceActionListener(surface, + side.equals("front"), + true); + createFuncItem.addActionListener(funcListener); + + JMenuItem createConstItem = new JMenuItem("New Construction Space"); + ActionListener constListener = new CreateSpaceActionListener(surface, + side.equals("front"), + false); + createConstItem.addActionListener(constListener); + + JMenu funcMenu = new JMenu("Functional Spaces"); + JMenu constMenu = new JMenu("Construction Spaces"); + boolean funcEnabled = false; + boolean constEnabled = false; + while (domIt.hasNext()) { + Space domain = (Space)domIt.next(); + if (domain instanceof Space) { + JMenuItem domainItem = new JMenuItem(domain.getName()); + ActionListener ml = new DomainPopupListener(domain, + surface, + side.equals("front")); + domainItem.addActionListener(ml); + if (domain.isFunctionalSpace()) { + funcMenu.add(domainItem); + } else { + constMenu.add(domainItem); + } + } + } + + funcMenu.addSeparator(); + funcMenu.add(createFuncItem); + constMenu.addSeparator(); + constMenu.add(createConstItem); + pp.add(funcMenu); + pp.add(constMenu); + pp.addSeparator(); + pp.add(noneItem); + pp.addPopupMenuListener(spl); + pp.pack(); + return pp; + } else { + log.warn("Space popup menu has no surface"); + return null; + } + } Index: SelectTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/SelectTool.java,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** SelectTool.java 11 Jan 2006 11:38:41 -0000 1.50 --- SelectTool.java 11 Jan 2006 12:05:33 -0000 1.51 *************** *** 11,15 **** import net.sourceforge.bprocessor.model.Edge; - import net.sourceforge.bprocessor.model.Project; import net.sourceforge.bprocessor.model.Vertex; import net.sourceforge.bprocessor.model.Surface; --- 11,14 ---- *************** *** 23,31 **** import javax.swing.JPopupMenu; import javax.swing.JMenuItem; - import javax.swing.JMenu; import java.util.Iterator; - import java.util.Set; - import java.util.HashSet; import org.apache.log4j.Logger; --- 22,27 ---- *************** *** 89,96 **** } } else { ! if (target instanceof String) { ! String side = (String)target; ! glv.popup(makePopup(side), e.getX(), e.getY()); ! } else if (target == null) { selection.clear(); } else if (e.isShiftDown()) { --- 85,89 ---- } } else { ! if (target == null) { selection.clear(); } else if (e.isShiftDown()) { *************** *** 111,233 **** - /** - * Creates the correct type popup menu. - * @param type the type of popup should be created - * @return the popup menu. - */ - private JPopupMenu makePopup(String type) { - if (type.equals("bar")) { - return seperatorPopup(); - } else if (type.equals("front") || type.equals("back")) { - return spacePopup(type); - } else { - log.warn("\"" + type + "\" is not a recognized type of popup"); - return null; - } - } - - /** - * Creates the popup that appears when pressing a space seperator - * @return the seperatorpopup menu. - */ - private JPopupMenu seperatorPopup() { - JPopupMenu sepPop = new JPopupMenu(); - Iterator selIt = new HashSet(selection).iterator(); - if (selIt.hasNext()) { - Object o = selIt.next(); - if (o instanceof Surface) { - Surface surface = (Surface)o; - JMenuItem shift = new JMenuItem("Shift spaces"); - ActionListener shiftListener = new ShiftActionListener(surface); - shift.addActionListener(shiftListener); - JMenuItem copy = new JMenuItem("Copy space assignment"); - ActionListener copyListener = new CopyActionListener(surface, glv.getView()); - copy.addActionListener(copyListener); - JMenuItem paste = new JMenuItem("Paste space assignment"); - ActionListener pasteListener = new PasteActionListener(surface, glv.getView()); - paste.addActionListener(pasteListener); - - sepPop.add(shift); - sepPop.add(copy); - sepPop.add(paste); - sepPop.pack(); - return sepPop; - } - } - log.warn("Seperator popup menu has no surface"); - return sepPop; - } - - /** - * Creates the popup that appears when pressing a space label - * @param side string indicating the wich space is choosen (front or back). - * @return the spacepopup menu. - */ - private JPopupMenu spacePopup(String side) { - JPopupMenu pp = new JPopupMenu(side); - SpacePopupListener spl = new SpacePopupListener(side.equals("front"), glv.getView()); - Set domains = Project.getInstance().getDomains(); - Iterator domIt = domains.iterator(); - Iterator selIt = new HashSet(selection).iterator(); - Surface surface = null; - if (selIt.hasNext()) { - Object o = selIt.next(); - if (o instanceof Surface) { - surface = (Surface)o; - } - JMenuItem noneItem = new JMenuItem("NONE"); - ActionListener noneListener = new DomainPopupListener(null, - surface, - side.equals("front")); - noneItem.addActionListener(noneListener); - - JMenuItem createFuncItem = new JMenuItem("New Functional Space"); - ActionListener funcListener = new CreateSpaceActionListener(surface, - side.equals("front"), - true); - createFuncItem.addActionListener(funcListener); - - JMenuItem createConstItem = new JMenuItem("New Construction Space"); - ActionListener constListener = new CreateSpaceActionListener(surface, - side.equals("front"), - false); - createConstItem.addActionListener(constListener); - - JMenu funcMenu = new JMenu("Functional Spaces"); - JMenu constMenu = new JMenu("Construction Spaces"); - boolean funcEnabled = false; - boolean constEnabled = false; - while (domIt.hasNext()) { - Space domain = (Space)domIt.next(); - if (domain instanceof Space) { - JMenuItem domainItem = new JMenuItem(domain.getName()); - ActionListener ml = new DomainPopupListener(domain, - surface, - side.equals("front")); - domainItem.addActionListener(ml); - if (domain.isFunctionalSpace()) { - funcMenu.add(domainItem); - } else { - constMenu.add(domainItem); - } - } - } - - funcMenu.addSeparator(); - funcMenu.add(createFuncItem); - constMenu.addSeparator(); - constMenu.add(createConstItem); - pp.add(funcMenu); - pp.add(constMenu); - pp.addSeparator(); - pp.add(noneItem); - pp.addPopupMenuListener(spl); - pp.pack(); - return pp; - } else { - log.warn("Space popup menu has no surface"); - return null; - } - } /** --- 104,107 ---- |