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

📄 jaweedit.java

📁 jawe的最新版本,基于Java的图形化工作流编辑器。图形化工作流编辑器 。使用JAVA语言开发
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/** * Miroslav Popov, Sep 1, 2005 */package org.enhydra.jawe.base.controller;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import org.enhydra.jawe.JaWEManager;import org.enhydra.jawe.Utils;import org.enhydra.jawe.XPDLElementChangeInfo;import org.enhydra.jawe.base.xpdlhandler.XPDLHandler;import org.enhydra.shark.xpdl.XMLCollection;import org.enhydra.shark.xpdl.XMLCollectionElement;import org.enhydra.shark.xpdl.XMLComplexElement;import org.enhydra.shark.xpdl.XMLElement;import org.enhydra.shark.xpdl.XMLUtil;import org.enhydra.shark.xpdl.elements.Activities;import org.enhydra.shark.xpdl.elements.Activity;import org.enhydra.shark.xpdl.elements.ActivitySet;import org.enhydra.shark.xpdl.elements.Application;import org.enhydra.shark.xpdl.elements.Package;import org.enhydra.shark.xpdl.elements.Participant;import org.enhydra.shark.xpdl.elements.Tool;import org.enhydra.shark.xpdl.elements.Transition;import org.enhydra.shark.xpdl.elements.Transitions;import org.enhydra.shark.xpdl.elements.WorkflowProcess;/** * @author Miroslav Popov * @author Sasa Bojanic */public class JaWEEdit {   protected List clipboard = new ArrayList();   protected boolean isPasteInProgress = false;   public void copy() {      copyOrCut(false);   }   public void cut() {      copyOrCut(true);   }   protected void copyOrCut(boolean isCut) {      clipboard = new ArrayList();      JaWEController jc = JaWEManager.getInstance().getJaWEController();      if (jc.getSelectionManager().getSelectedElements() != null) {         clipboard.addAll(jc.getSelectionManager().getSelectedElements());         XMLElement firstEl = (XMLElement) clipboard.get(0);         XMLElement selOwner = firstEl.getParent();         if (selOwner == null) {            selOwner = firstEl;         }         XPDLElementChangeInfo info = jc.createInfo(selOwner,                                                    clipboard,                                                    isCut ? XPDLElementChangeInfo.CUT                                                         : XPDLElementChangeInfo.COPY);         jc.sendEvent(info);         prepareForPaste();         if (isCut) {            delete();         }      }      JaWEManager.getInstance().getJaWEController().adjustActions();   }   public void duplicate() {      JaWEController jc = JaWEManager.getInstance().getJaWEController();      XMLElement el = jc.getSelectionManager().getSelectedElement();      if (el.getParent() instanceof XMLCollection) {         XMLCollection col = (XMLCollection) el.getParent();         XMLElement cloned = JaWEManager.getInstance()            .getXPDLObjectFactory()            .duplicateXPDLObject(col, el);         if (cloned instanceof ActivitySet) {            duplicateActivitySetContext((ActivitySet) cloned,                                        new HashSet(),                                        new HashSet());         }         jc.startUndouableChange();         col.add(cloned);         List toSelect = new ArrayList();         toSelect.add(cloned);         jc.endUndouableChange(toSelect);      }   }   public void references() {      JaWEController jc = JaWEManager.getInstance().getJaWEController();      XMLComplexElement el = (XMLComplexElement) jc.getSelectionManager()         .getSelectedElement();      XMLComplexElement pkgOrWP = XMLUtil.getPackage(el);      WorkflowProcess wp = XMLUtil.getWorkflowProcess(el);      if (wp != null && wp != el) {         pkgOrWP = wp;      }      XPDLElementChangeInfo info = null;      if (el instanceof Activity) {         info = jc.createInfo(el, Utils.makeSearchResultList(JaWEManager.getInstance()            .getXPDLUtils()            .getReferences((Activity) el)), XPDLElementChangeInfo.REFERENCES);      } else if (el instanceof Transition) {         info = jc.createInfo(el, Utils.makeSearchResultList(JaWEManager.getInstance()            .getXPDLUtils()            .getReferences((Transition) el)), XPDLElementChangeInfo.REFERENCES);      } else if (el instanceof Package) {         info = jc.createInfo(el, Utils.makeSearchResultList(JaWEManager.getInstance()            .getXPDLUtils()            .getReferences((Package) el)), XPDLElementChangeInfo.REFERENCES);      } else {         if (el instanceof WorkflowProcess             || el instanceof Application || el instanceof Participant) {            if (pkgOrWP instanceof Package) {               info = jc.createInfo(el,                                    getAllReferences(el),                                    XPDLElementChangeInfo.REFERENCES);            } else {               info = jc.createInfo(el,                                    Utils.makeSearchResultList(JaWEManager.getInstance()                                       .getXPDLUtils()                                       .getReferences(pkgOrWP, el)),                                    XPDLElementChangeInfo.REFERENCES);            }         } else {            info = jc.createInfo(el, Utils.makeSearchResultList(JaWEManager.getInstance()               .getXPDLUtils()               .getReferences(pkgOrWP, el)), XPDLElementChangeInfo.REFERENCES);         }      }      if (info != null) {         jc.sendEvent(info);      }   }   public void paste() {      JaWEManager.getInstance().getLoggingManager().debug("PASTE started");      isPasteInProgress = true;      JaWEController jc = JaWEManager.getInstance().getJaWEController();      XMLElement firstSelected = jc.getSelectionManager().getSelectedElement();      jc.startUndouableChange();      Iterator it = clipboard.iterator();      Transitions transCollection = null;      Activities actsCollection = null;      XMLCollection destCollection = null;      List duplicatedElements = new ArrayList();      Map actIdMappings = new HashMap();      List acts = new ArrayList();      List trans = new ArrayList();      Set skipIds = new HashSet();      Set skipActIds = new HashSet();      Set skipTransIds = new HashSet();      while (it.hasNext()) {         destCollection = null;         XMLElement copied = (XMLElement) it.next();         XMLCollection parent = (XMLCollection) copied.getParent();         // System.err.println("Searching for dest collection for el         // "+copied.getClass()+", firstSelected="+firstSelected.getClass());         if (parent.getClass() == firstSelected.getClass()) {            // System.err.println("Dest coll found -> 1");            destCollection = (XMLCollection) firstSelected;         } else if (firstSelected.getClass() == copied.getClass()) {            destCollection = (XMLCollection) firstSelected.getParent();            // System.err.println("Dest coll found -> 2");         } else {            List subEls = ((XMLComplexElement) firstSelected).toElements();            for (int i = 0; i < subEls.size(); i++) {               if (subEls.get(i).getClass() == parent.getClass()) {                  destCollection = (XMLCollection) subEls.get(i);                  // System.err.println("Dest coll found -> 3");                  break;               }            }            if (destCollection == null) {               if (firstSelected instanceof Activity) {                  destCollection = (Transitions) ((XMLComplexElement) firstSelected.getParent()                     .getParent()).get("Transitions");                  // System.err.println("Dest coll found -> 4");               } else if (firstSelected instanceof Transition) {                  destCollection = (Activities) ((XMLComplexElement) firstSelected.getParent()                     .getParent()).get("Activities");                  // System.err.println("Dest coll found -> 5");               }            }         }         // System.err.println("Dest collection="+destCollection);         if (destCollection instanceof Activities) {            actsCollection = (Activities) destCollection;         } else if (destCollection instanceof Transitions) {            transCollection = (Transitions) destCollection;         }         XMLElement twin = JaWEManager.getInstance()            .getXPDLObjectFactory()            .makeIdenticalXPDLObject(parent, copied);         if (twin instanceof Activity) {

⌨️ 快捷键说明

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