📄 standardpanelgenerator.java
字号:
package org.enhydra.jawe.base.panel;import java.awt.Component;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Arrays;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;import javax.swing.ImageIcon;import javax.swing.JLabel;import javax.swing.JList;import javax.swing.ListCellRenderer;import org.enhydra.jawe.JaWEManager;import org.enhydra.jawe.Settings;import org.enhydra.jawe.Utils;import org.enhydra.jawe.base.panel.panels.XMLActualParametersPanel;import org.enhydra.jawe.base.panel.panels.XMLBasicListPanel;import org.enhydra.jawe.base.panel.panels.XMLBasicPanel;import org.enhydra.jawe.base.panel.panels.XMLBasicTablePanel;import org.enhydra.jawe.base.panel.panels.XMLCheckboxPanel;import org.enhydra.jawe.base.panel.panels.XMLComboChoicePanel;import org.enhydra.jawe.base.panel.panels.XMLComboPanel;import org.enhydra.jawe.base.panel.panels.XMLDataTypesPanel;import org.enhydra.jawe.base.panel.panels.XMLGroupPanel;import org.enhydra.jawe.base.panel.panels.XMLLocationPanel;import org.enhydra.jawe.base.panel.panels.XMLMultiLineTextPanel;import org.enhydra.jawe.base.panel.panels.XMLPanel;import org.enhydra.jawe.base.panel.panels.XMLRadioPanel;import org.enhydra.jawe.base.panel.panels.XMLTabbedPanel;import org.enhydra.jawe.base.panel.panels.XMLTextPanel;import org.enhydra.shark.utilities.SequencedHashMap;import org.enhydra.shark.xpdl.XMLAttribute;import org.enhydra.shark.xpdl.XMLCollection;import org.enhydra.shark.xpdl.XMLCollectionElement;import org.enhydra.shark.xpdl.XMLComplexChoice;import org.enhydra.shark.xpdl.XMLComplexElement;import org.enhydra.shark.xpdl.XMLElement;import org.enhydra.shark.xpdl.XMLEmptyChoiceElement;import org.enhydra.shark.xpdl.XMLSimpleElement;import org.enhydra.shark.xpdl.XMLUtil;import org.enhydra.shark.xpdl.XPDLConstants;import org.enhydra.shark.xpdl.elements.*;import org.enhydra.shark.xpdl.elements.Package;/** * Used to generate panels for all XPDL entities. * * @author Zoran Milakovic * @author Sasa Bojanic */public class StandardPanelGenerator implements PanelGenerator { // public static final String // HIDE_COLLECTIONS_AND_COMPLEX_CHOICES="HideCollectionsAndComplexChoices"; protected PanelContainer pc; // public String getLanguageDependentString (String nm) { // return pc.getPanelSettings().getLanguageDependentString(nm); // } // public StandardPanelGenerator() { } public void setPanelContainer(PanelContainer pc) { this.pc = pc; } public PanelContainer getPanelContainer() { return pc; } public XMLPanel getPanel(Activities el) { return generateStandardTablePanel(el, true, false); } public XMLPanel getPanel(Activity el) { List panels = new ArrayList(); Set hidden = getHiddenElements("XMLGroupPanel", el); for (int i = 1;; i++) { try { XMLPanel p = getPanel(el, i, hidden); if (p != null) { panels.add(p); } } catch (Exception ex) { break; } } if (panels.size() > 1) { return new XMLTabbedPanel(getPanelContainer(), el, panels, JaWEManager.getInstance() .getLabelGenerator() .getLabel(el), false); } else if (panels.size() == 1) { return (XMLPanel) panels.get(0); } else { return new XMLBasicPanel(); } } protected XMLPanel getPanel(Activity el, int no, Set hidden) { XMLPanel p = null; switch (no) { case 1: List panelElements = new ArrayList(); if (!hidden.contains(el.get("Id"))) { panelElements.add(el.get("Id")); } if (!hidden.contains(el.get("Name"))) { panelElements.add(el.get("Name")); } if (!hidden.contains(el.get("Performer"))) { int type = el.getActivityType(); if (type == XPDLConstants.ACTIVITY_TYPE_NO || type == XPDLConstants.ACTIVITY_TYPE_TOOL) { panelElements.add(el.get("Performer")); } } if (!hidden.contains(el.getStartMode())) { panelElements.add(el.getStartMode()); } if (!hidden.contains(el.getFinishMode())) { panelElements.add(el.getFinishMode()); } if (!hidden.contains(el.getDeadlines())) { panelElements.add(el.getDeadlines()); } if (!hidden.contains(el.get("Priority"))) { panelElements.add(el.get("Priority")); } if (!hidden.contains(el.get("Limit"))) { panelElements.add(el.get("Limit")); } if (!hidden.contains(el.get("Icon"))) { panelElements.add(el.get("Icon")); } if (!hidden.contains(el.get("Documentation"))) { panelElements.add(el.get("Documentation")); } if (!hidden.contains(el.get("Description"))) { panelElements.add(el.get("Description")); } if (panelElements.size() > 0) { p = new XMLGroupPanel(getPanelContainer(), el, panelElements, getPanelContainer().getLanguageDependentString("GeneralKey"), true, false, true); } break; case 2: if (!hidden.contains(el.getActivityTypes())) { int type = el.getActivityType(); if (type == XPDLConstants.ACTIVITY_TYPE_TOOL) { Tools tools = el.getActivityTypes() .getImplementation() .getImplementationTypes() .getTools(); p = this.getPanel(tools); } else if (type == XPDLConstants.ACTIVITY_TYPE_SUBFLOW) { SubFlow sbflw = el.getActivityTypes() .getImplementation() .getImplementationTypes() .getSubFlow(); p = this.getPanel(sbflw); } else if (type == XPDLConstants.ACTIVITY_TYPE_BLOCK) { BlockActivity ba = el.getActivityTypes().getBlockActivity(); p = this.getPanel(ba); } } break; case 3: TransitionRestrictions trs = el.getTransitionRestrictions(); if (!hidden.contains(trs) && trs.size() > 0) { TransitionRestriction tr = (TransitionRestriction) trs.get(0); p = getPanel(tr); } break; case 4: if (!hidden.contains(el.getSimulationInformation())) { p = this.getPanel(el.getSimulationInformation()); } break; case 5: if (!hidden.contains(el.getExtendedAttributes())) { p = this.getPanel(el.getExtendedAttributes()); } break; default: throw new RuntimeException(); } return p; } public XMLPanel getPanel(ActivitySet el) { return generateStandardGroupPanel(el, true, false); } public XMLPanel getPanel(ActivitySets el) { return generateStandardTablePanel(el, true, false); } public XMLPanel getPanel(ActivityTypes el) { return generateStandardPanel(el); } public XMLPanel getPanel(ActualParameter el) { SequencedHashMap choices = XMLUtil.getPossibleVariables(XMLUtil.getWorkflowProcess(el)); Object choosen = choices.get(el.toValue()); if (choosen == null) { if (!el.toValue().equals("")) { choosen = el.toValue(); } } SpecialChoiceElement cc = new SpecialChoiceElement(el, "", new ArrayList(choices.values()), choosen, true, "Id", el.toName(), el.isRequired()); cc.setReadOnly(el.isReadOnly()); return new XMLComboPanel(getPanelContainer(), cc, null, false, true, false, true, JaWEManager.getInstance() .getJaWEController() .canModifyElement(el)); } public XMLPanel getPanel(ActualParameters el) { return generateStandardTablePanel(el, true, false); } public XMLPanel getPanel(Application el) { return generateStandardGroupPanel(el, true, false); } public XMLPanel getPanel(Applications el) { return generateStandardPanel(el); } public XMLPanel getPanel(ApplicationTypes el) { return generateStandardPanel(el); } public XMLPanel getPanel(ArrayType el) { return generateStandardPanel(el); } public XMLPanel getPanel(Author el) { return generateStandardPanel(el); } public XMLPanel getPanel(Automatic el) { return new XMLBasicPanel(); } public XMLPanel getPanel(BasicType el) { return this.getPanel((XMLAttribute) el.get("Type")); // return generateStandardPanel(el); } public XMLPanel getPanel(BlockActivity el) { return generateStandardPanel(el); } public XMLPanel getPanel(Codepage el) { return generateStandardPanel(el); } public XMLPanel getPanel(Condition el) { return generateStandardGroupPanel(el, true, false); } protected XMLPanel getPanel(Condition el, boolean hasTitle) { return generateStandardGroupPanel(el, hasTitle, false); } public XMLPanel getPanel(ConformanceClass el) { return generateStandardPanel(el.getGraphConformanceAttribute()); } public XMLPanel getPanel(Cost el) { return generateStandardPanel(el); } public XMLPanel getPanel(CostUnit el) { return generateStandardPanel(el); } public XMLPanel getPanel(Countrykey el) { return generateStandardPanel(el); } public XMLPanel getPanel(Created el) { return generateStandardPanel(el); } public XMLPanel getPanel(DataField el) { Set hidden = getHiddenElements("XMLGroupPanel", el); List subpanels = new ArrayList(); List groupsToShow = new ArrayList(); if (!hidden.contains(el.get("Id"))) { subpanels.add(generateStandardTextPanel(el.get("Id"), true)); } if (!hidden.contains(el.get("Length"))) { subpanels.add(generateStandardTextPanel(el.get("Length"), true)); } if (subpanels.size() > 0) { groupsToShow.add(new XMLGroupPanel(getPanelContainer(), el, subpanels, "", true, false, true)); } subpanels.clear(); if (!hidden.contains(el.get("Name"))) { subpanels.add(generateStandardTextPanel(el.get("Name"), true)); } if (!hidden.contains(el.get("IsArray"))) { XMLAttribute isa = (XMLAttribute) el.get("IsArray"); // List choices=isa.getChoices(); subpanels.add(new XMLCheckboxPanel(getPanelContainer(),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -