jawecontroller.java
来自「jawe的最新版本,基于Java的图形化工作流编辑器。图形化工作流编辑器 。使用」· Java 代码 · 共 1,644 行 · 第 1/5 页
JAVA
1,644 行
xpdlof.adjustXPDLObject(pkg, null); changed = true; } } Iterator comps = JaWEManager.getInstance() .getComponentManager() .getComponents() .iterator(); while (comps.hasNext()) { JaWEComponent jc = (JaWEComponent) comps.next(); if (jc != this) { changed = jc.adjustXPDL(pkg) || changed; } } // configuration ext. attribute if (!JaWEEAHandler.getJaWEConfig(pkg).equals(getCurrentConfig())) { JaWEEAHandler.setJaWEConfig(pkg, getCurrentConfig()); changed = true; } String verInfo = JaWEManager.getVersion() + "-" + JaWEManager.getRelease() + "-" + JaWEManager.getBuildEdition() + JaWEManager.getBuildEditionSuffix() + "-" + JaWEManager.getBuildNo(); if (!JaWEEAHandler.getEditingToolVersion(pkg).equals(verInfo)) { JaWEEAHandler.setEditingToolVersion(pkg, verInfo); changed = true; } if (!JaWEEAHandler.getEditingTool(pkg).equals(JaWEManager.getInstance().getName())) { JaWEEAHandler.setEditingTool(pkg, JaWEManager.getInstance().getName()); changed = true; } if (JaWEEAHandler.removeOldPackageEAs(pkg)) { changed = true; } // add external package's ext. attrib. if it does not exist if (JaWEEAHandler.adjustExternalPackageEAs(pkg)) { changed = true; } return changed; } public boolean checkValidity(Package el, boolean fullCheck, boolean specNotif, boolean initialOrDesignTimeValidation) { // configure validator // System.err.println("Checking validity for // "+((XMLComplexElement)el).get("Id").toValue()); StandardPackageValidator xpdlValidator = JaWEManager.getInstance() .getXPDLValidator(); xpdlValidator.init(JaWEManager.getInstance().getXPDLHandler(), XMLUtil.getPackage(el), !specNotif, settings.getEncoding(), JaWEManager.getInstance().getStartingLocale()); List l = checkValidity(el, fullCheck); XPDLElementChangeInfo info = createInfo(el, l, XPDLElementChangeInfo.VALIDATION_ERRORS); info.setNewValue(new Boolean(specNotif)); info.setOldValue(new Boolean(initialOrDesignTimeValidation)); sendEvent(info); return (l == null || l.size() == 0); } public List checkValidity(XMLElement el, boolean fullCheck) { StandardPackageValidator xpdlValidator = JaWEManager.getInstance() .getXPDLValidator(); if (el == null) return null; List existingErrors = new ArrayList(); xpdlValidator.validateElement(el, existingErrors, fullCheck); List verrors = new ArrayList(); for (int i = 0; i < existingErrors.size(); i++) { ValidationError verr = new ValidationError((XMLValidationError) existingErrors.get(i)); verrors.add(verr); } existingErrors.clear(); boolean isValid = verrors.size() == 0; List vers = new ArrayList(); if (isValid || fullCheck) { Iterator comps = JaWEManager.getInstance() .getComponentManager() .getComponents() .iterator(); while (comps.hasNext()) { JaWEComponent jc = (JaWEComponent) comps.next(); if (jc != this) { List l = jc.checkValidity(el, fullCheck); isValid = (l == null || l.size() == 0) && isValid; if (l != null) { vers.addAll(l); } if (!(isValid || fullCheck)) { break; } } } } verrors.addAll(vers); verrors = Utils.sortValidationErrorList(verrors, XMLUtil.getPackage(el)); return verrors; } public boolean canCreateElement(XMLCollection col) { return canCreateElement(col, true); } public boolean canInsertElement(XMLCollection col, XMLElement el) { return canInsertElement(col, el, true); } public boolean canModifyElement(XMLElement el) { return canModifyElement(el, true); } public boolean canRemoveElement(XMLCollection col, XMLElement el) { return canRemoveElement(col, el, true); } public boolean canDuplicateElement(XMLCollection col, XMLElement el) { return canDuplicateElement(col, el, true); } public boolean canRepositionElement(XMLCollection col, XMLElement el) { return canRepositionElement(col, el, true); } // ********************** // ********************** ChoiceButtonListener public void selectionChanged(ChoiceButton cbutton, Object change) { if (cbutton instanceof JaWETypeChoiceButton && ((JaWETypeChoiceButton) cbutton).getXPDLChoiceType() != null && cbutton.getChoiceType().equals(JaWEType.class)) { JaWEType jtype = (JaWEType) change; String typeId = null; if (jtype != null) { typeId = jtype.getTypeId(); } Class xpdlClass = ((JaWETypeChoiceButton) cbutton).getXPDLChoiceType(); if (xpdlClass == Package.class) { if (tryToClosePackage(getMainPackageId(), false)) { newPackage(typeId); } } else { startUndouableChange(); List temp = new ArrayList(); XMLElement newEl = null; if (xpdlClass == Activities.class || xpdlClass == Activity.class) { ActivitySet as = selectionMng.getWorkingActivitySet(); WorkflowProcess wp = selectionMng.getWorkingProcess(); if (as != null && !as.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(as.getActivities(), typeId, true); } else if (wp != null && !wp.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(wp.getActivities(), typeId, true); } } else if (xpdlClass == ActivitySet.class || xpdlClass == ActivitySets.class) { WorkflowProcess wp = selectionMng.getWorkingProcess(); if (wp != null && !wp.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(wp.getActivitySets(), typeId, true); } } else if (xpdlClass == Application.class || xpdlClass == Applications.class) { Package workingPkg = selectionMng.getWorkingPKG(); if (workingPkg != null && !workingPkg.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(workingPkg.getApplications(), typeId, true); } } else if (xpdlClass == DataField.class || xpdlClass == DataFields.class) { Package workingPkg = selectionMng.getWorkingPKG(); if (workingPkg != null && !workingPkg.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(workingPkg.getDataFields(), typeId, true); } } else if (xpdlClass == ExtendedAttribute.class || xpdlClass == ExtendedAttributes.class) { Package workingPkg = selectionMng.getWorkingPKG(); if (workingPkg != null && !workingPkg.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(workingPkg.getExtendedAttributes(), typeId, true); } } else if (xpdlClass == FormalParameter.class || xpdlClass == FormalParameters.class) { WorkflowProcess wp = selectionMng.getWorkingProcess(); if (wp != null && !wp.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(wp.getFormalParameters(), typeId, true); } } else if (xpdlClass == Namespace.class || xpdlClass == Namespaces.class) { Package workingPkg = selectionMng.getWorkingPKG(); if (workingPkg != null && !workingPkg.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(workingPkg.getNamespaces(), typeId, true); } } else if (xpdlClass == Participant.class || xpdlClass == Participants.class) { Package workingPkg = selectionMng.getWorkingPKG(); if (workingPkg != null && !workingPkg.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(workingPkg.getParticipants(), typeId, true); } } else if (xpdlClass == Responsible.class || xpdlClass == Responsibles.class) { Package workingPkg = selectionMng.getWorkingPKG(); if (workingPkg != null && !workingPkg.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(workingPkg.getRedefinableHeader() .getResponsibles(), typeId, true); } } else if (xpdlClass == Transition.class || xpdlClass == Transitions.class) { ActivitySet as = selectionMng.getWorkingActivitySet(); WorkflowProcess wp = selectionMng.getWorkingProcess(); if (as != null && !as.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(as.getTransitions(), typeId, true); } else if (wp != null && !wp.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(wp.getTransitions(), typeId, true); } } else if (xpdlClass == TypeDeclaration.class || xpdlClass == TypeDeclarations.class) { Package workingPkg = selectionMng.getWorkingPKG(); if (workingPkg != null && !workingPkg.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(workingPkg.getTypeDeclarations(), typeId, true); } } else if (xpdlClass == WorkflowProcess.class || xpdlClass == WorkflowProcesses.class) { Package workingPkg = selectionMng.getWorkingPKG(); if (workingPkg != null && !workingPkg.isReadOnly()) { newEl = JaWEManager.getInstance() .getXPDLObjectFactory() .createXPDLObject(workingPkg.getWorkflowProcesses(), typeId, true); } } if (newEl != null) { temp.add(newEl); } endUndouableChange(temp); } } else { selectionMng.setSelection((XMLElement) change, true); updateTitle(); adjustActions(); } } public Object getSelectedObject(ChoiceButton cbutton) { return null; } public List getChoices(ChoiceButton cbutton) { ArrayList toRet = new ArrayList(); if (cbutton instanceof JaWETypeChoiceButton) { Class xpdlElType = ((JaWETypeChoiceButton) cbutton).getXPDLChoiceType(); Class xpdlElTypeParentForEA = ((JaWETypeChoiceButton) cbutton).getXPDLChoiceTypeParentForEA(); toRet.addAll(jtypes.getTypes(xpdlElType,xpdlElTypeParentForEA)); } return toRet; } // ********************** public void init() { selectionMng = new JaWESelectionManager(this); try { String uhmc = getControllerSettings().undoHistoryManagerClass(); if (uhmc != null && !uhmc.equals("")) { undoHistoryManager = (UndoHistoryManager) Class.forName(uhmc).newInstance(); undoHistoryManager.init(getControllerSettings().undoHistorySize()); } } catch (Exception ex) { System.err.println("Failed to instantiate undo history manager!"); } // try { // jtypes.init(this); // } catch (Exception e) { // // only default types will be available // } try { String className = settings.getResolverTypeClassName(); Constructor c = Class.forName(className).getConstructor(new Class[] { JaWEController.class }); jtypeResolver = (JaWETypeResolver) c.newInstance(new Object[] { this }); JaWEManager.getInstance() .getLoggingManager() .info("JaWEController -> Working with '" + className + "' as type resolver"); } catch (Throwable ex) { ex.printStackTrace(); JaWEManager.getInstance() .getLoggingManager() .info("JaweManager -> Problems while instantiating type resolver! Using default!"); jtypeResolver = new JaWETypeResolver(this); }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?