📄 svgselection.java~1~
字号:
getSVGEditor().cancelActions(true); if(e.getSource() instanceof JToggleButton){ regularModeTool.setSelected(true); } } }; regularModeTool.addActionListener(regularModeToolListener); selectAllListener=new ActionListener(){ public void actionPerformed(ActionEvent e) { if(! isActing()){ getSVGEditor().getFrameManager().getCurrentFrame().getScrollPane().getSVGCanvas().displayWaitCursor(); getSVGEditor().cancelActions(true); selectAll(getSVGEditor().getFrameManager().getCurrentFrame(), true); getSVGEditor().getFrameManager().getCurrentFrame().getScrollPane().getSVGCanvas().returnToLastCursor(); } } }; selectAll.addActionListener(selectAllListener); deselectAllListener=new ActionListener(){ public void actionPerformed(ActionEvent e) { if(! isActing()){ getSVGEditor().getFrameManager().getCurrentFrame().getScrollPane().getSVGCanvas().displayWaitCursor(); getSVGEditor().cancelActions(true); deselectAll(getSVGEditor().getFrameManager().getCurrentFrame(), true, false); getSVGEditor().getFrameManager().getCurrentFrame().getScrollPane().getSVGCanvas().returnToLastCursor(); } } }; deselectAll.addActionListener(deselectAllListener); lockListener=new ActionListener(){ public void actionPerformed(ActionEvent e) { if(! isActing()){ getSVGEditor().getFrameManager().getCurrentFrame().getScrollPane().getSVGCanvas().displayWaitCursor(); getSVGEditor().cancelActions(true); lock(getSVGEditor().getFrameManager().getCurrentFrame()); getSVGEditor().getFrameManager().getCurrentFrame().getScrollPane().getSVGCanvas().returnToLastCursor(); } } }; lock.addActionListener(lockListener); unlockListener=new ActionListener(){ public void actionPerformed(ActionEvent e) { if(! isActing()){ getSVGEditor().getFrameManager().getCurrentFrame().getScrollPane().getSVGCanvas().displayWaitCursor(); getSVGEditor().cancelActions(true); unlock(getSVGEditor().getFrameManager().getCurrentFrame()); getSVGEditor().getFrameManager().getCurrentFrame().getScrollPane().getSVGCanvas().returnToLastCursor(); } } }; unlock.addActionListener(unlockListener); groupEnterListener=new ActionListener(){ public void actionPerformed(ActionEvent e) { if(! isActing()){ getSVGEditor().getFrameManager().getCurrentFrame().getScrollPane().getSVGCanvas().displayWaitCursor(); getSVGEditor().cancelActions(true); enterGroup(getSVGEditor().getFrameManager().getCurrentFrame()); getSVGEditor().getFrameManager().getCurrentFrame().getScrollPane().getSVGCanvas().returnToLastCursor(); } } }; groupEnter.addActionListener(groupEnterListener); groupExitListener=new ActionListener(){ public void actionPerformed(ActionEvent e) { if(! isActing()){ getSVGEditor().getFrameManager().getCurrentFrame().getScrollPane().getSVGCanvas().displayWaitCursor(); getSVGEditor().cancelActions(true); exitGroup(getSVGEditor().getFrameManager().getCurrentFrame()); getSVGEditor().getFrameManager().getCurrentFrame().getScrollPane().getSVGCanvas().returnToLastCursor(); } } }; groupExit.addActionListener(groupExitListener); } /** * @return a map associating a menu item id to its menu item object */ public Hashtable getMenuItems(){ Hashtable menuItems=new Hashtable(); menuItems.put(idselectall,selectAll); menuItems.put(iddeselectall,deselectAll); menuItems.put(idlock,lock); menuItems.put(idunlock, unlock); menuItems.put(idgroupmenu, groupMenu); return menuItems; } /** * @return a map associating a tool item id to its tool item object */ public Hashtable getToolItems(){ Hashtable toolItems=new Hashtable(); toolItems.put(idregularmode, regularModeTool); return toolItems; } /** * Returns the collection of the popup items * @return the collection of the popup items */ public Collection getPopupItems(){ LinkedList popupItems=new LinkedList(); SVGPopupSubMenu subMenu=new SVGPopupSubMenu(getSVGEditor(), idgroupmenu, labelgroup, ""); popupItems.add(subMenu); //creating the group enter popup item SVGPopupItem groupEnterItem=new SVGPopupItem(getSVGEditor(), idgroupenter, labelgroupenter, "GroupEnter"){ public JMenuItem getPopupItem(LinkedList nodes) { menuItem.setEnabled(false); menuItem.setAccelerator(KeyStroke.getKeyStroke("shift ctrl E")); if(nodes!=null && nodes.size()==1){ Node current=(Node)nodes.iterator().next(); if(current!=null && current.getNodeName().equals("g")){ menuItem.setEnabled(true); } //adds the action listeners if(menuItem.isEnabled()){ menuItem.addActionListener(groupEnterListener); } } return super.getPopupItem(nodes); } }; //creating the group exit popup item SVGPopupItem groupExitItem=new SVGPopupItem(getSVGEditor(), idgroupexit, labelgroupexit, "GroupExit"){ public JMenuItem getPopupItem(LinkedList nodes){ menuItem.setEnabled(false); menuItem.setAccelerator(KeyStroke.getKeyStroke("shift ctrl X")); SVGFrame currentFrame=getSVGEditor().getFrameManager().getCurrentFrame(); //getting the current parent node for the current frame Element parent=getCurrentParentElement(currentFrame); //handling the enablement of the groupExit menuItem if(parent!=null && parent.getNodeName().equals("g")){ menuItem.setEnabled(true); } //adds the action listeners if(menuItem.isEnabled()){ menuItem.addActionListener(groupExitListener); } return super.getPopupItem(nodes); } }; //adding the popup items to the sub menu subMenu.addPopupItem(groupEnterItem); subMenu.addPopupItem(groupExitItem); //creating the select all popup item /*SVGPopupItem selectAllItem=new SVGPopupItem(getSVGEditor(), idselectall, labelselectall, "SelectAll"){ public JMenuItem getPopupItem(LinkedList nodes){ if(getSVGEditor().getFrameManager().getFrameNumber()>0){ menuItem.setEnabled(true); //adds the action listeners menuItem.addActionListener(selectAllListener); }else{ menuItem.setEnabled(false); } return super.getPopupItem(nodes); } }; popupItems.add(selectAllItem); //creating the deselect all popup item SVGPopupItem deselectAllItem=new SVGPopupItem(getSVGEditor(), iddeselectall, labeldeselectall, "DeselectAll"){ public JMenuItem getPopupItem(LinkedList nodes){ if(nodes!=null && nodes.size()>0){ menuItem.setEnabled(true); //adds the action listeners menuItem.addActionListener(deselectAllListener); }else{ menuItem.setEnabled(false); } return super.getPopupItem(nodes); } }; popupItems.add(deselectAllItem); //creating the lock popup item SVGPopupItem lockItem=new SVGPopupItem(getSVGEditor(), idlock, labellock, "Lock"){ public JMenuItem getPopupItem(LinkedList nodes){ SVGFrame currentFrame=getSVGEditor().getFrameManager().getCurrentFrame(); //gets the currently selected nodes list Map selectedNodes=getSelectionMap(currentFrame); if(selectedNodes!=null && selectedNodes.size()>0){ menuItem.setEnabled(true); //if the node is already locked if(selectedNodes.size()==1){ Node current=(Node)selectedNodes.keySet().iterator().next(); if(current!=null){ String type=(String)selectedNodes.get(current); if(type!=null && type.equals("lock")){ menuItem.setEnabled(false); } } } //adds the action listeners if(menuItem.isEnabled()){ menuItem.addActionListener(lockListener); } }else{ menuItem.setEnabled(false); } return super.getPopupItem(nodes); } }; popupItems.add(lockItem); //creating the unlock popup item SVGPopupItem unlockItem=new SVGPopupItem(getSVGEditor(), idunlock, labelunlock, "Unlock"){ public JMenuItem getPopupItem(LinkedList nodes){ SVGFrame currentFrame=getSVGEditor().getFrameManager().getCurrentFrame(); //gets the currently selected nodes list Map selectedNodes=new HashMap(getSelectionMap(currentFrame)); if(selectedNodes!=null && selectedNodes.size()>0){ menuItem.setEnabled(false); Node current=null; String type=""; for(Iterator it=selectedNodes.keySet().iterator(); it.hasNext();){ try{current=(Node)it.next();}catch (Exception ex){current=null;} if(current!=null){ type=(String)selectedNodes.get(current); if(type!=null && type.equals("lock")){ menuItem.setEnabled(true); break; } } } //adds the action listeners if(menuItem.isEnabled()){ menuItem.addActionListener(unlockListener); } }else{ menuItem.setEnabled(false); } return super.getPopupItem(nodes); } }; popupItems.add(unlockItem);*/ return popupItems; } /** * @return the editor */ public SVGEditor getSVGEditor(){ return editor; } /** * adds a listener listening to a selection change * @param listener a listener listening to a selection change */ public void addSelectionListener(ActionListener listener){ if(! selectionListeners.contains(listener)){ selectionListeners.add(listener); } } /** * removes a listener listening to a selection change * @param listener a listener listening to a selection change */ public void removeSelectionListener(ActionListener listener){ selectionListeners.remove(listener); } /** * notifies the listeners that the selection has changed * @param forceToRefresh whether the selection should be refreshed immediatly or not */ public synchronized void selectionChanged(boolean forceToRefresh){ //gets the currently selected nodes list LinkedList list=getCurrentSelection(getSVGEditor().getFrameManager().getCurrentFrame()); if(! lastSelectedNodes.equals(list) || forceToRefresh){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -