⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svgselection.java

📁 完全基于java开发的svg矢量绘图工具
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        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) {      lastSelectedNodes.clear();      lastSelectedNodes.addAll(list);      for (Iterator it = new LinkedList(selectionListeners).iterator();           it.hasNext(); ) {        ( (ActionListener) it.next()).actionPerformed(null);      }    }  }  /**   * adds selection squares to the map   * @param frame a frame   * @param map the map of the selection squares   */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -