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

📄 jaweselectionmanager.java

📁 jawe的最新版本,基于Java的图形化工作流编辑器。图形化工作流编辑器 。使用JAVA语言开发
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
         XMLElement parent = el.getParent();         Class cls = el.getClass();         if (el instanceof Activity) {            hasActivity = true;         } else if (el instanceof Transition) {            hasTransition = true;         } else if (!(parent instanceof XMLCollection)) {            hasSingleSelectionElement = true;         } else {            hasOther = true;         }         if (parent != null) {            parents.add(parent);         }         classes.add(cls);      }      // only one other component is allowed      if (hasSingleSelectionElement) {         return false;      }      // if only activities and transitions are selected, check if they      // are contained in the same WorkflowProcess/ActivitySet      if (hasActivity && hasTransition && !hasOther) {         Set parentsParents = new HashSet();         for (int i = 0; i < selection.size(); i++) {            XMLElement elParentParent = ((XMLElement) selection.get(i)).getParent()               .getParent();            parentsParents.add(elParentParent);         }         if (parentsParents.size() != 1) {            return false;         }         return true;      }      // if there are more than one parent, or more than one type of object class, return      // false      return !(parents.size() > 1 || classes.size() > 1);   }   public boolean canEditProperties() {      if (getSelectedElements().size() == 1) {         XMLElement firstSelected = (XMLElement) selectedElements.get(0);         if (XMLUtil.getPackage(firstSelected) != null) {            return true;         }      }      return false;   }   public boolean canCut() {      return checkCutOrCopySelection(true);   }   public boolean canCopy() {      return checkCutOrCopySelection(false);   }   public boolean canDuplicate() {      if (selectedElements.size() != 1) {         return false;      }      XMLElement firstSelected = (XMLElement) selectedElements.get(0);      XMLElement parent = firstSelected.getParent();      if (!(parent instanceof XMLCollection)) {         return false;      }      return jc.canDuplicateElement((XMLCollection) parent, firstSelected);   }   public boolean canInsertNew() {      if (selectedElements.size() == 0) {         return false;      }      XMLElement firstSelected = (XMLElement) selectedElements.get(0);      XMLElement parent = firstSelected.getParent();      if (!(firstSelected instanceof XMLCollection || parent instanceof XMLCollection || firstSelected instanceof Package)) {         return false;      }      if (firstSelected instanceof XMLCollection) {         return jc.canCreateElement((XMLCollection) firstSelected);      } else if (parent instanceof XMLCollection) {         return jc.canCreateElement((XMLCollection) parent);      } else if (firstSelected instanceof Package                 && !((Package) firstSelected).isReadOnly()) {         return true;      }      return false;   }   public boolean canPaste() {      if (jc.getEdit().getClipboard().size() == 0) {         return false;      }      if (selectedElements.size() == 0) {         return false;      }      Class clipboardParentsClass1 = null;      Class clipboardParentsClass2 = null;      Class clipboardElementsClass1 = null;      Class clipboardElementsClass2 = null;      for (int i = 0; i < jc.getEdit().getClipboard().size(); i++) {         XMLElement el = (XMLElement) jc.getEdit().getClipboard().get(i);         XMLElement parent = el.getParent();         if (el instanceof Transition) {            clipboardParentsClass2 = parent.getClass();            clipboardElementsClass2 = el.getClass();         } else {            clipboardParentsClass1 = parent.getClass();            clipboardElementsClass1 = el.getClass();         }      }      Class selectionElementsClass1 = null;      Class selectionElementsClass2 = null;      for (int i = 0; i < selectedElements.size(); i++) {         XMLElement el = (XMLElement) selectedElements.get(i);         if (el.isReadOnly()) {            return false;         }         if (el instanceof Transition) {            selectionElementsClass2 = el.getClass();         } else {            selectionElementsClass1 = el.getClass();         }      }      // System.err.println("CEC1="+clipboardElementsClass1+",      // CEC2="+clipboardElementsClass2);      // System.err.println("SEC1="+selectionElementsClass1+",      // SEC2="+selectionElementsClass2);      boolean allowPaste1 = clipboardElementsClass1 == null ? false                                                           : (selectionElementsClass1 == null ? false                                                                                             : clipboardElementsClass1 == selectionElementsClass1);      // System.err.println("AP1="+allowPaste1);      boolean allowPaste2 = clipboardElementsClass2 == null ? false                                                           : (selectionElementsClass2 == null ? false                                                                                             : clipboardElementsClass2 == selectionElementsClass2);      // System.err.println("AP2="+allowPaste2);      boolean allowPaste = (allowPaste1 || allowPaste2);      if (allowPaste)         return true;      if (selectedElements.size() > 1)         return false;      XMLElement firstSelected = (XMLElement) selectedElements.get(0);      if (firstSelected instanceof XMLAttribute          || firstSelected instanceof XMLSimpleElement          || firstSelected instanceof XMLComplexChoice) {         return false;      }      if (firstSelected instanceof XMLCollection) {         Class selectionElementClass = selectionElementsClass1;         if (selectionElementClass == null) {            selectionElementClass = selectionElementsClass2;         }         if (selectionElementClass == clipboardParentsClass1             || selectionElementClass == clipboardParentsClass2)            return true;         return false;      }      if (firstSelected instanceof XMLComplexElement) {         Class clipboardParentsClass = clipboardParentsClass1;         if (clipboardParentsClass == null) {            clipboardParentsClass = clipboardParentsClass2;         }         List subEls = ((XMLComplexElement) firstSelected).toElements();         for (int i = 0; i < subEls.size(); i++) {            if (subEls.get(i).getClass() == clipboardParentsClass) {               return true;            }         }         return false;      }      return false;   }   public boolean canDelete() {      if (selectedElements.size() == 0) {         return false;      }      for (int i = 0; i < selectedElements.size(); i++) {         XMLElement selected = (XMLElement) selectedElements.get(i);         XMLElement parent = selected.getParent();         if (!(parent instanceof XMLCollection)) {            return false;         }         if (!jc.canRemoveElement((XMLCollection) parent, selected)) {            return false;         }      }      return true;   }   public boolean canGetReferences() {      if (selectedElements.size() != 1) {         return false;      }      XMLElement selected = (XMLElement) selectedElements.get(0);      if (selected instanceof TypeDeclaration          || selected instanceof Participant          || selected instanceof Application          || selected instanceof WorkflowProcess          || selected instanceof ActivitySet          || selected instanceof DataField          || (selected instanceof FormalParameter && selected.getParent().getParent() instanceof WorkflowProcess)          || selected instanceof Activity || selected instanceof Transition          || selected instanceof Package) {         return true;      }      return false;   }   protected boolean checkCutOrCopySelection(boolean isCut) {      if (selectedElements.size() == 0) {         return false;      }      for (int i = 0; i < selectedElements.size(); i++) {         XMLElement el = (XMLElement) selectedElements.get(i);         XMLElement parent = el.getParent();         if (el instanceof Transition) {            Activities acts = (Activities) ((XMLComplexElement) el.getParent()               .getParent()).get("Activities");            Activity from = acts.getActivity(((Transition) el).getFrom());            Activity to = acts.getActivity(((Transition) el).getTo());            if (!(selectedElements.contains(from) && selectedElements.contains(to))) {               return false;            }         } else if (!(parent instanceof XMLCollection)) {            return false;         }         XMLCollection col = (XMLCollection) parent;         if ((!(el instanceof Transition) && !jc.canDuplicateElement(col, el, false))             || !jc.canInsertElement(col, el, false) || !jc.canCreateElement(col, false)) {            return false;         }         if (isCut && !jc.canRemoveElement(col, el)) {            return false;         }      }      return true;   }   protected void removeNonExistingElementsFromSelection(List selection,                                                         List removedElements) {      Set removeFromSelection = new HashSet();      for (int i = 0; i < removedElements.size(); i++) {         XMLElement removedEl = (XMLElement) removedElements.get(i);         for (int j = 0; j < selection.size(); j++) {            XMLElement selEl = (XMLElement) selection.get(j);            if (XMLUtil.isParentsChild(removedEl, selEl)) {               removeFromSelection.add(selEl);            }         }      }      selection.removeAll(removeFromSelection);   }}

⌨️ 快捷键说明

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