📄 jaweedit.java
字号:
/** * 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 + -