📄 jawetypes.java
字号:
/** * Miroslav Popov, Oct 3, 2005 miroslav.popov@gmail.com */package org.enhydra.jawe.base.controller;import java.awt.Color;import java.io.File;import java.io.FileInputStream;import java.io.StringReader;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Properties;import javax.swing.ImageIcon;import org.apache.xerces.parsers.DOMParser;import org.enhydra.jawe.JaWEComponent;import org.enhydra.jawe.JaWEComponentSettings;import org.enhydra.jawe.JaWEConstants;import org.enhydra.jawe.JaWEEAHandler;import org.enhydra.jawe.JaWEManager;import org.enhydra.jawe.ResourceManager;import org.enhydra.jawe.Utils;import org.enhydra.shark.utilities.SequencedHashMap;import org.enhydra.shark.xpdl.XMLAttribute;import org.enhydra.shark.xpdl.XMLCollection;import org.enhydra.shark.xpdl.XMLComplexChoice;import org.enhydra.shark.xpdl.XMLComplexElement;import org.enhydra.shark.xpdl.XMLElement;import org.enhydra.shark.xpdl.XMLSimpleElement;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.ActivitySets;import org.enhydra.shark.xpdl.elements.ActualParameter;import org.enhydra.shark.xpdl.elements.ActualParameters;import org.enhydra.shark.xpdl.elements.Application;import org.enhydra.shark.xpdl.elements.Applications;import org.enhydra.shark.xpdl.elements.DataField;import org.enhydra.shark.xpdl.elements.DataFields;import org.enhydra.shark.xpdl.elements.Deadline;import org.enhydra.shark.xpdl.elements.Deadlines;import org.enhydra.shark.xpdl.elements.EnumerationType;import org.enhydra.shark.xpdl.elements.EnumerationValue;import org.enhydra.shark.xpdl.elements.ExtendedAttribute;import org.enhydra.shark.xpdl.elements.ExtendedAttributes;import org.enhydra.shark.xpdl.elements.ExternalPackage;import org.enhydra.shark.xpdl.elements.ExternalPackages;import org.enhydra.shark.xpdl.elements.FormalParameter;import org.enhydra.shark.xpdl.elements.FormalParameters;import org.enhydra.shark.xpdl.elements.Member;import org.enhydra.shark.xpdl.elements.Namespace;import org.enhydra.shark.xpdl.elements.Namespaces;import org.enhydra.shark.xpdl.elements.Package;import org.enhydra.shark.xpdl.elements.Participant;import org.enhydra.shark.xpdl.elements.Participants;import org.enhydra.shark.xpdl.elements.Responsible;import org.enhydra.shark.xpdl.elements.Responsibles;import org.enhydra.shark.xpdl.elements.Tool;import org.enhydra.shark.xpdl.elements.Tools;import org.enhydra.shark.xpdl.elements.Transition;import org.enhydra.shark.xpdl.elements.Transitions;import org.enhydra.shark.xpdl.elements.TypeDeclaration;import org.enhydra.shark.xpdl.elements.TypeDeclarations;import org.enhydra.shark.xpdl.elements.WorkflowProcess;import org.enhydra.shark.xpdl.elements.WorkflowProcesses;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.xml.sax.InputSource;/** * @author Miroslav Popov * @author Sasa Bojanic */public class JaWETypes extends JaWEComponentSettings { public static final String XPDL_TEMPLATE = "XPDLTemplate"; public static final String COLECTION_TYPE_APPLICATIONS = "applications"; public static final String COLECTION_TYPE_EXTERNAL_PACKAGES = "external_packages"; public static final String COLLECTION_TYPE_PARTICIPANTS = "participants"; public static final String COLLECTION_TYPE_WORKFLOW_PROCESSES = "workflow_processes"; public static final String COLLECTION_TYPE_TYPE_DECLARATION = "type_declaration"; protected Map allTypes = new HashMap(); protected Map allTypesMapping = new HashMap(); protected List activityTypes = new ArrayList(); protected List activitySetTypes = new ArrayList(); protected List actualParameterTypes = new ArrayList(); protected List applicationTypes = new ArrayList(); protected List dataFieldTypes = new ArrayList(); protected List deadlineTypes = new ArrayList(); protected List enumerationValueTypes = new ArrayList(); protected List extendedAttributeTypes = new ArrayList(); protected Map extAttribTypes = new HashMap(); protected List externalPackageTypes = new ArrayList(); protected List formalParameterTypes = new ArrayList(); protected List memberTypes = new ArrayList(); protected List namespaceTypes = new ArrayList(); protected List packageTypes = new ArrayList(); protected List participantTypes = new ArrayList(); protected List responsibleTypes = new ArrayList(); protected List toolTypes = new ArrayList(); protected List transitionTypes = new ArrayList(); protected List typeDeclarationTypes = new ArrayList(); protected List workflowProcessTypes = new ArrayList(); protected Map templateMap = new SequencedHashMap(); protected boolean fullTemplateCheckForNonStandardTypes = true; public void init(JaWEComponent comp) { PROPERTYFILE_PATH = "org/enhydra/jawe/base/controller/properties/"; PROPERTYFILE_NAME = "jawetypes.properties"; super.init(comp); } public JaWEType getType(String typeId) { return (JaWEType) allTypes.get(typeId); } public boolean hasTemplateId(String templateId) { if (templateId == null) { return false; } return templateMap.containsKey(templateId); } public XMLElement getTemplateElement(String templateId) { return (XMLElement) ((XMLElement) templateMap.get(templateId)).clone(); } public boolean fillFromTemplate(XMLElement el, String tmplId) { if (tmplId == null) { return false; } XMLElement tmplEl = (XMLElement) templateMap.get(tmplId); if (tmplEl != null) { el.makeAs(tmplEl); return true; } return false; } public List getTypes(XMLElement el) { Class parentForEA = null; if (el instanceof ExtendedAttribute) { parentForEA = el.getParent().getParent().getClass(); } else if (el instanceof ExtendedAttributes) { parentForEA = el.getParent().getClass(); } return getTypes(el.getClass(), parentForEA); } public List getTypes(Class xpdlClass, Class xpdlParentForEA) { if (xpdlClass == Activities.class || xpdlClass == Activity.class) { return new ArrayList(activityTypes); } else if (xpdlClass == ActivitySet.class || xpdlClass == ActivitySets.class) { return new ArrayList(activitySetTypes); } else if (xpdlClass == ActualParameter.class || xpdlClass == ActualParameters.class) { return new ArrayList(actualParameterTypes); } else if (xpdlClass == Application.class || xpdlClass == Applications.class) { return new ArrayList(applicationTypes); } else if (xpdlClass == DataField.class || xpdlClass == DataFields.class) { return new ArrayList(dataFieldTypes); } else if (xpdlClass == Deadline.class || xpdlClass == Deadlines.class) { return new ArrayList(deadlineTypes); } else if (xpdlClass == EnumerationType.class) { return new ArrayList(enumerationValueTypes); } else if (xpdlClass == ExtendedAttribute.class || xpdlClass == ExtendedAttributes.class) { if (xpdlParentForEA == null || ((List) extAttribTypes.get(XMLUtil.getShortClassName(xpdlParentForEA.getName()))).size() == 0) { return new ArrayList(extendedAttributeTypes); } return new ArrayList((List) extAttribTypes.get(XMLUtil.getShortClassName(xpdlParentForEA.getName()))); } else if (xpdlClass == ExternalPackage.class || xpdlClass == ExternalPackages.class) { return new ArrayList(externalPackageTypes); } else if (xpdlClass == FormalParameter.class || xpdlClass == FormalParameters.class) { return new ArrayList(formalParameterTypes); } else if (xpdlClass == Member.class) { return new ArrayList(memberTypes); } else if (xpdlClass == Namespace.class || xpdlClass == Namespaces.class) { return new ArrayList(namespaceTypes); } else if (xpdlClass == Package.class) { return new ArrayList(packageTypes); } else if (xpdlClass == Participant.class || xpdlClass == Participants.class) { return new ArrayList(participantTypes); } else if (xpdlClass == Responsible.class || xpdlClass == Responsibles.class) { return new ArrayList(responsibleTypes); } else if (xpdlClass == Tool.class || xpdlClass == Tools.class) { return new ArrayList(toolTypes); } else if (xpdlClass == Transition.class || xpdlClass == Transitions.class) { return new ArrayList(transitionTypes); } else if (xpdlClass == TypeDeclaration.class || xpdlClass == TypeDeclarations.class) { return new ArrayList(typeDeclarationTypes); } else if (xpdlClass == WorkflowProcess.class || xpdlClass == WorkflowProcesses.class) { return new ArrayList(workflowProcessTypes); } return new ArrayList(); } public String getDefaultType(XMLElement el) { Class parentForEA = null; if (el instanceof ExtendedAttribute) { parentForEA = el.getParent().getParent().getClass(); } else if (el instanceof ExtendedAttributes) { parentForEA = el.getParent().getClass(); } return getDefaultType(el.getClass(), parentForEA); } public String getDefaultType(Class el, Class xpdlParentForEA) { if (el == Activity.class) { if (activityTypes.size() > 0) { return ((JaWEType) activityTypes.get(0)).getTypeId(); } } else if (el == ActivitySet.class) { if (activitySetTypes.size() > 0) { return ((JaWEType) activitySetTypes.get(0)).getTypeId(); } } else if (el == ActualParameter.class) { if (actualParameterTypes.size() > 0) { return ((JaWEType) actualParameterTypes.get(0)).getTypeId(); } } else if (el == Application.class) { if (applicationTypes.size() > 0) { return ((JaWEType) applicationTypes.get(0)).getTypeId(); } } else if (el == DataField.class) { if (dataFieldTypes.size() > 0) { return ((JaWEType) dataFieldTypes.get(0)).getTypeId(); } } else if (el == Deadline.class) { if (deadlineTypes.size() > 0) { return ((JaWEType) deadlineTypes.get(0)).getTypeId(); } } else if (el == EnumerationType.class) { if (enumerationValueTypes.size() > 0) { return ((JaWEType) enumerationValueTypes.get(0)).getTypeId(); } } else if (el == ExtendedAttribute.class) { if (xpdlParentForEA == null) { if (extendedAttributeTypes.size() > 0) { return ((JaWEType) extendedAttributeTypes.get(0)).getTypeId(); } } else { List tps = (List) extAttribTypes.get(XMLUtil.getShortClassName(xpdlParentForEA.getName())); if (tps.size() > 0) { return ((JaWEType) tps.get(0)).getTypeId(); } } } else if (el == ExternalPackage.class) { if (externalPackageTypes.size() > 0) { return ((JaWEType) externalPackageTypes.get(0)).getTypeId(); } } else if (el == FormalParameter.class) { if (formalParameterTypes.size() > 0) { return ((JaWEType) formalParameterTypes.get(0)).getTypeId(); } } else if (el == Member.class) { if (memberTypes.size() > 0) { return ((JaWEType) memberTypes.get(0)).getTypeId(); } } else if (el == Namespace.class) { if (namespaceTypes.size() > 0) { return ((JaWEType) namespaceTypes.get(0)).getTypeId(); } } else if (el == Package.class) { if (packageTypes.size() > 0) { return ((JaWEType) packageTypes.get(0)).getTypeId(); } } else if (el == Participant.class) { if (participantTypes.size() > 0) { return ((JaWEType) participantTypes.get(0)).getTypeId(); } } else if (el == Responsible.class) { if (responsibleTypes.size() > 0) { return ((JaWEType) responsibleTypes.get(0)).getTypeId(); } } else if (el == Tool.class) { if (toolTypes.size() > 0) { return ((JaWEType) toolTypes.get(0)).getTypeId(); } } else if (el == Transition.class) { if (transitionTypes.size() > 0) { return ((JaWEType) transitionTypes.get(0)).getTypeId(); } } else if (el == TypeDeclaration.class) { if (typeDeclarationTypes.size() > 0) { return ((JaWEType) typeDeclarationTypes.get(0)).getTypeId(); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -