📄 graphmarqueehandler.java
字号:
getGraphController().getSettings().getLanguageDependentString("ErrorCannotConnectStartAndEnd"), getJaWEFrame().getAppTitle(),JOptionPane.ERROR_MESSAGE); return false; } Set targetActIncomingTrans=new HashSet(); Set targetActNonExcTrans=new HashSet(); Set targetActTrans=new HashSet(); Set sourceActNonExcTrans=new HashSet(); if (!(targetActivity instanceof GraphBubbleActivityInterface)) { targetActIncomingTrans.addAll(XMLUtil.getIncomingTransitions((Activity)targetActivity.getPropertyObject())); targetActTrans.addAll(XMLUtil.getOutgoingTransitions((Activity)targetActivity.getPropertyObject())); targetActNonExcTrans.addAll(XMLUtil.getNonExceptionalOutgoingTransitions((Activity)targetActivity.getPropertyObject())); } if (!(sourceActivity instanceof GraphBubbleActivityInterface)) { sourceActNonExcTrans.addAll(XMLUtil.getNonExceptionalOutgoingTransitions((Activity)sourceActivity.getPropertyObject())); } // if target is end bubble, do not allow connection if source is already connected // to another end bubble, or to some other activity except itself or if transition is exceptional one if (targetActivity instanceof GraphBubbleActivityInterface) { // must be end bubble in that case if (GraphManager.hasConnectedEndBubble(sourceActivity) || !(sourceActNonExcTrans.size()==0 || (sourceActNonExcTrans.size()==1 && JaWEManager.getInstance().getXPDLUtils().hasCircularTransitions(sourceActNonExcTrans)))) { JOptionPane.showMessageDialog(getJaWEFrame(), getGraphController().getSettings().getLanguageDependentString( "ErrorEndingActivityCannotHaveOutgoingTransitions"), getJaWEFrame().getAppTitle(),JOptionPane.ERROR_MESSAGE); return false; } return true; } // if source is start bubble, do not allow connection if target is already connected // to another start bubble, or some other activity except itself if (sourceActivity instanceof GraphBubbleActivityInterface) { // must be start bubble in that case if (GraphManager.hasConnectedStartBubble(targetActivity) || !(targetActIncomingTrans.size()==0 || (targetActIncomingTrans.size()==1 && JaWEManager.getInstance().getXPDLUtils().hasCircularTransitions(targetActIncomingTrans)))) { JOptionPane.showMessageDialog(getJaWEFrame(), getGraphController().getSettings().getLanguageDependentString( "ErrorStartingActivityCannotHaveIncomingTransitions"), getJaWEFrame().getAppTitle(),JOptionPane.ERROR_MESSAGE); return false; } if (!JaWEManager.getInstance().getTransitionHandler().acceptsTarget((Activity)targetActivity.getUserObject())) { JOptionPane.showMessageDialog(getJaWEFrame(), getGraphController().getSettings().getLanguageDependentString( "WarningCannotAcceptMoreIncomingTransitions"), getJaWEFrame().getAppTitle(), JOptionPane.WARNING_MESSAGE); return false; } return true; } boolean circularTransition=(sourceActivity==targetActivity); if (GraphManager.hasConnectedStartBubble(targetActivity) && !circularTransition) { JOptionPane.showMessageDialog(getJaWEFrame(), getGraphController().getSettings().getLanguageDependentString( "ErrorStartingActivityCannotHaveIncomingTransitions"), getJaWEFrame().getAppTitle(),JOptionPane.ERROR_MESSAGE); return false; } if (!(sourceActivity instanceof GraphBubbleActivityInterface)) { if (GraphManager.hasConnectedEndBubble(sourceActivity) && !(isExceptionalTrans || circularTransition)) { JOptionPane.showMessageDialog(getJaWEFrame(), getGraphController().getSettings() .getLanguageDependentString("ErrorEndingActivityCannotHaveOutgoingTransitions"), getJaWEFrame() .getAppTitle(), JOptionPane.INFORMATION_MESSAGE); return false; } } Activity a = (Activity)sourceActivity.getUserObject(); Activity b = (Activity)targetActivity.getUserObject(); List status = new ArrayList(1); if(!JaWEManager.getInstance().getTransitionHandler().allowsConnection(a,b,t,isExceptionalTrans,status)) { String errorMsg = "WarningSourceActivityCannotHaveMoreOutgoingTransitions"; boolean isError=false; if(((Integer)status.get(0)).intValue() == 2) { errorMsg = "WarningTargetActivityCannotHaveMoreIncomingTransitions"; } else if (((Integer)status.get(0)).intValue() == 3) { isError=true; errorMsg = "ErrorActivityCannotHaveMoreThenOneIncomingOutgoingTransitionFromToTheSameActivity"; } JOptionPane.showMessageDialog(getJaWEFrame(), getGraphController().getSettings().getLanguageDependentString(errorMsg), getJaWEFrame().getAppTitle(),isError ? JOptionPane.ERROR_MESSAGE:JOptionPane.INFORMATION_MESSAGE); return false; } return true; } return false; } protected GraphController getGraphController () { return graphController; } protected Graph getGraph () { return getGraphController().getSelectedGraph(); } protected GraphManager getGraphManager () { return getGraph().getGraphManager(); } protected JaWEController getJaWEController () { return JaWEManager.getInstance().getJaWEController(); } protected JaWEFrame getJaWEFrame () { return getJaWEController().getJaWEFrame(); } public boolean isSelectButtonSelected () { return mainType.equals(GraphEAConstants.SELECT_TYPE); } protected boolean isParticipantButtonSelected () { return mainType.equals(JaWEConstants.PARTICIPANT_TYPE); } protected boolean isActivityButtonSelected () { return mainType.equals(JaWEConstants.ACTIVITY_TYPE); } public boolean isTransitionButtonSelected () { return mainType.equals(JaWEConstants.TRANSITION_TYPE); } protected boolean isStartButtonSelected () { return mainType.equals(GraphEAConstants.START_TYPE); } protected boolean isEndButtonSelected () { return mainType.equals(GraphEAConstants.END_TYPE); } public void addPoint(Point p) { points.add(p); } public int getStatus() { if (isSelectButtonSelected()) { return JaWEGraphUI.SELECTION; } else if (isParticipantButtonSelected()) { return JaWEGraphUI.INSERT_PARTICIPANT; } else if (isTransitionButtonSelected()) { return JaWEGraphUI.INSERT_TRANSITION_START; } else { return JaWEGraphUI.INSERT_ELEMENT; } } public void setSelectionMode() { mainType = GraphEAConstants.SELECT_TYPE; subType = GraphEAConstants.SELECT_TYPE_DEFAULT; getGraph().setCursor(Cursor.getDefaultCursor()); reset(); } public void reset () { firstPort=null; port = null; start = null; current = null; getGraph().repaint(); ((JaWEGraphUI) getGraph().getUI()).reset(); } public void popupMenu(Point pPopupPoint) { double scale = getGraph().getScale(); Point p = new Point(); p.setLocation(pPopupPoint.getX()/scale, pPopupPoint.getY()/scale); Object cell = getGraph().getFirstCellForLocation(p.x, p.y); // needed for addPoint, etc. this.popupPoint = new Point(p); JPopupMenu menu = createPopupMenu(cell); menu.show(getGraph(), (int) pPopupPoint.getX(), (int) pPopupPoint.getY()); } public void insertParticipant() { graphController.setUpdateInProgress(true); Participant toInsert=null; Participants pars=getGraph().getWorkflowProcess().getParticipants(); String idForVO=null; boolean insertIntoCollection=false; if (GraphEAConstants.PARTICIPANT_TYPE_FREE_TEXT_EXPRESSION.equals(subType)) { if (!getGraphManager().isFreeTextExpressionParticipantShown()) { toInsert=FreeTextExpressionParticipant.getInstance(); idForVO=toInsert.getId(); setSelectionMode(); } else { return; } } else if (GraphEAConstants.PARTICIPANT_TYPE_COMMON_EXPRESSION.equals(subType)) { toInsert=CommonExpressionParticipants.getInstance().generateCommonExpressionParticipant(getGraph().getXPDLObject()); idForVO=CommonExpressionParticipants.getInstance().getIdForVisualOrderEA(toInsert.getId()); } else { toInsert = JaWEManager.getInstance().getXPDLObjectFactory().createXPDLObject( pars, subType, false); idForVO=toInsert.getId(); insertIntoCollection=true; } JaWEManager.getInstance().getJaWEController().startUndouableChange(); if (insertIntoCollection) { pars.add(toInsert); } List vo = GraphUtilities.getParticipantVisualOrder(getGraph().getXPDLObject()); vo.add(idForVO); GraphUtilities.setParticipantVisualOrder(getGraph().getXPDLObject(), vo); getGraphManager().insertParticipantAndArrangeParticipants(toInsert); List toSelect=new ArrayList(); toSelect.add(toInsert); JaWEManager.getInstance().getJaWEController().endUndouableChange(toSelect); graphController.setUpdateInProgress(false); // getGraph().selectParticipant(toInsert); graphController.adjustActions(); } public void insertSpecialElement() {// if (isActivitySetButtonSelected()) {// Graph g = getGraph();// if (g != null) {// JaWEManager.getInstance().getJaWEController().startUndouableChange(); // ActivitySets ass=g.getWorkflowProcess().getActivitySets(); // ActivitySet as=JaWEManager.getInstance().getXPDLObjectFactory().createXPDLObject(ass,// getSelectedButtonType(), true);// JaWEManager.getInstance().getJaWEController().endUndouableChange(); // }// } } public void insertElement(Point whereTo) { // if activity is selected if (isActivityButtonSelected()) { if (!getGraphManager().doesRootParticipantExist()) { JaWEFrame frame = JaWEManager.getInstance().getJaWEController().getJaWEFrame(); JOptionPane.showMessageDialog(frame, getGraphController().getSettings().getLanguageDependentString( "WarningInvalidOperation"), frame.getAppTitle(), JOptionPane.WARNING_MESSAGE); } else { GraphParticipantInterface gpar = getGraphManager().findParentActivityParticipantForLocation(whereTo, null, null); Point partLoc = getGraphManager().getBounds(gpar, null).getBounds().getLocation(); Point off = new Point(whereTo.x - partLoc.x, whereTo.y - partLoc.y); String partId = gpar.getPropertyObject().get("Id").toValue(); Activities acts = (Activities) getGraph().getXPDLObject().get("Activities"); Activity act = JaWEManager.getInstance().getXPDLObjectFactory().createXPDLObject(acts, subType, false); GraphUtilities.setOffsetPoint(act, off); GraphUtilities.setParticipantId(act, partId); int acttype=act.getActivityType(); if (acttype==XPDLConstants.ACTIVITY_TYPE_NO || acttype==XPDLConstants.ACTIVITY_TYPE_TOOL) { if (!partId.equals(FreeTextExpressionParticipant.getInstance().getId())) { act.setPerformer(partId); } } graphController.setUpdateInProgress(true); JaWEManager.getInstance().getJaWEController().startUndouableChange(); acts.add(act);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -