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 + -
显示快捷键?