⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graphcontrollerpanel.java

📁 jawe的最新版本,基于Java的图形化工作流编辑器。图形化工作流编辑器 。使用JAVA语言开发
💻 JAVA
字号:
package org.enhydra.jawe.components.graph;import java.awt.BorderLayout;import java.util.List;import javax.swing.BorderFactory;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JComponent;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JToolBar;import javax.swing.JViewport;import javax.swing.SwingConstants;import org.enhydra.jawe.ActionBase;import org.enhydra.jawe.BarFactory;import org.enhydra.jawe.JaWEAction;import org.enhydra.jawe.JaWEComponent;import org.enhydra.jawe.JaWEComponentView;import org.enhydra.jawe.JaWEManager;import org.enhydra.jawe.Utils;import org.enhydra.jawe.XMLElementChoiceButton;import org.enhydra.jawe.base.controller.JaWEType;import org.enhydra.jawe.base.controller.JaWETypes;import org.enhydra.jawe.components.graph.actions.SetActivityMode;import org.enhydra.jawe.components.graph.actions.SetEndMode;import org.enhydra.jawe.components.graph.actions.SetParticipantMode;import org.enhydra.jawe.components.graph.actions.SetParticipantModeFreeTextExpression;import org.enhydra.jawe.components.graph.actions.SetSelectMode;import org.enhydra.jawe.components.graph.actions.SetStartMode;import org.enhydra.jawe.components.graph.actions.SetTransitionMode;import org.enhydra.shark.xpdl.XMLUtil;import org.enhydra.shark.xpdl.elements.Activity;import org.enhydra.shark.xpdl.elements.ActivitySet;import org.enhydra.shark.xpdl.elements.Participant;import org.enhydra.shark.xpdl.elements.Transition;/** *  Container for displaying menubar, toolbar, process graphs ... * *  @author Sasa Bojanic */public class GraphControllerPanel extends JPanel implements JaWEComponentView {   protected GraphController controller;   // various things needed for initializing and further work   protected JScrollPane graphScrollPane;   protected JToolBar toolbar;   protected XMLElementChoiceButton showParticipantChoiceButton;   protected XMLElementChoiceButton asChoiceButton;   public GraphControllerPanel (GraphController controller) {      this.controller=controller;   }   public void configure() {   }   public void init () {      setBorder(BorderFactory.createEtchedBorder());      setLayout(new BorderLayout());      JPanel toolbars=new JPanel();      toolbars.setLayout(new BorderLayout());      // creating toolbars      toolbar = BarFactory.createToolbar("defaultToolbar", controller);      toolbar.setFloatable(false);      // creating button panel      ImageIcon curIc = controller.getGraphSettings().getParticipantsIcon();      showParticipantChoiceButton = new XMLElementChoiceButton(Participant.class,controller,curIc, true, new String[]                                                                                                             {"Id","Name","ParticipantType","Description"});      showParticipantChoiceButton.setToolTipText(controller.getSettings().getLanguageDependentString("InsertExistingParticipant" + BarFactory.TOOLTIP_POSTFIX));      curIc = controller.getGraphSettings().getActivitySetSelectIcon();      asChoiceButton = new XMLElementChoiceButton(ActivitySet.class, controller, curIc, true, new String[]{"Id"});      asChoiceButton.setToolTipText(controller.getSettings().getLanguageDependentString("SelectActivitySet" + BarFactory.TOOLTIP_POSTFIX));      JToolBar part = new JToolBar();      if (controller.getGraphSettings().useParticipantChoiceButton())         part.add(showParticipantChoiceButton);      if (controller.getGraphSettings().useActivitySetChoiceButton())         part.add(asChoiceButton);      if (controller.getGraphSettings().useParticipantChoiceButton() || controller.getGraphSettings().useActivitySetChoiceButton()) {         toolbar.addSeparator();         toolbar.add(part);      }      // creating working component      graphScrollPane=createWorkingComponent();//      JPanel wp=new JPanel();//      wp.setLayout(new BorderLayout());//      JToolBar toolbox = BarFactory.createToolbar("toolbox", controller);      JToolBar toolbox = createToolbox();      toolbox.setOrientation(SwingConstants.HORIZONTAL);      toolbars.add(toolbar,BorderLayout.NORTH);      toolbars.add(toolbox,BorderLayout.CENTER);//      wp.add(toolbox, BorderLayout.WEST);//      wp.add(graphScrollPane,BorderLayout.CENTER);      add(toolbars,BorderLayout.NORTH);//      add(wp,BorderLayout.CENTER);      add(graphScrollPane,BorderLayout.CENTER);   }   public JaWEComponent getJaWEComponent () {      return controller;   }   public JComponent getDisplay () {      return this;   }   protected JToolBar createToolbox () {      String toolbarName="toolbox";      String actionOrder = controller.getSettings().getToolbarActionOrder(toolbarName);      JaWETypes jts=JaWEManager.getInstance().getJaWEController().getJaWETypes();      JToolBar toolbar = new JToolBar();      toolbar.setRollover(true);      String[] act = Utils.tokenize(actionOrder, BarFactory.ACTION_DELIMITER);      for (int j=0; j<act.length; j++) {         if (act[j].equals(BarFactory.ACTION_SEPARATOR)) {            toolbar.addSeparator();         } else if (act[j].equals("SetSelectMode")) {            JaWEAction ja=new JaWEAction();            ja.setAction(new SetSelectMode(controller));            ja.setIcon(((GraphSettings)controller.getSettings()).getSelectionIcon());            ja.setLangDepName(controller.getSettings().getLanguageDependentString("SelectionKey"));            JButton b=BarFactory.createToolbarButton(ja, controller);            b.setToolTipText(ja.getLangDepName());            toolbar.add(b);            controller.getSettings().addAction("SetSelectMode", ja);         } else if (act[j].equals("SetParticipantModeCommonExpression")) {            JaWEAction ja=new JaWEAction();            try {               String clsName = "org.enhydra.jawe.components.graph.actions.SetParticipantModeCommonExpression";               ActionBase action = (ActionBase) Class.forName(clsName).getConstructor(new Class[] {                  GraphController.class               }).newInstance(new Object[] {                  controller               });                              ja.setAction(action);            } catch (Exception ex) {}            ja.setIcon(((GraphSettings)controller.getSettings()).getCommonExpresionParticipantIcon());            ja.setLangDepName(controller.getSettings().getLanguageDependentString("CommonExpressionParticipantKey"));            JButton b=BarFactory.createToolbarButton(ja, controller);            b.setToolTipText(ja.getLangDepName());            toolbar.add(b);            controller.getSettings().addAction("SetParticipantModeCommonExpression", ja);         } else if (act[j].equals("SetParticipantModeFreeTextExpression")) {            JaWEAction ja=new JaWEAction();            ja.setAction(new SetParticipantModeFreeTextExpression(controller));            ja.setIcon(((GraphSettings)controller.getSettings()).getFreeTextParticipantIcon());            ja.setLangDepName(controller.getSettings().getLanguageDependentString("FreeTextExpressionParticipantKey"));            JButton b=BarFactory.createToolbarButton(ja, controller);            b.setToolTipText(ja.getLangDepName());            toolbar.add(b);            controller.getSettings().addAction("SetParticipantModeFreeTextExpression", ja);         } else if (act[j].equals("SetStartMode")) {            JaWEAction ja=new JaWEAction();            ja.setAction(new SetStartMode(controller));            ja.setIcon(((GraphSettings)controller.getSettings()).getBubbleStartIcon());            ja.setLangDepName(controller.getSettings().getLanguageDependentString("StartBubbleKey"));            JButton b=BarFactory.createToolbarButton(ja, controller);            b.setToolTipText(ja.getLangDepName());            toolbar.add(b);            controller.getSettings().addAction("SetStartMode", ja);         } else if (act[j].equals("SetEndMode")) {            JaWEAction ja=new JaWEAction();            ja.setAction(new SetEndMode(controller));            ja.setIcon(((GraphSettings)controller.getSettings()).getBubbleEndIcon());            ja.setLangDepName(controller.getSettings().getLanguageDependentString("EndBubbleKey"));            JButton b=BarFactory.createToolbarButton(ja, controller);            b.setToolTipText(ja.getLangDepName());            toolbar.add(b);            controller.getSettings().addAction("SetEndMode", ja);         } else if (act[j].startsWith("SetParticipantMode")) {            String type=act[j].substring("SetParticipantMode".length());            if (type.equals("*")) {               List parTypes=jts.getTypes(Participant.class,null);               for (int i=0; i<parTypes.size(); i++) {                  JaWEType jt=(JaWEType)parTypes.get(i);                  JaWEAction ja=new JaWEAction();                  ja.setAction(new SetParticipantMode(controller,jt.getTypeId()));                  ja.setIcon(jt.getIcon());                  ja.setLangDepName(jt.getDisplayName());                  JButton b=BarFactory.createToolbarButton(ja, controller);                  b.setToolTipText(ja.getLangDepName());                  toolbar.add(b);                  controller.getSettings().addAction(jt.getTypeId(), ja);               }            } else if (!(type.equals("SetParticipantModeCommonExpression") || type.equals("SetParticipantModeFreeTextExpression"))){               JaWEType jt=jts.getType(type);               if (jt==null) continue;               JaWEAction ja=new JaWEAction();               ja.setAction(new SetParticipantMode(controller,jt.getTypeId()));               ja.setIcon(jt.getIcon());               ja.setLangDepName(jt.getDisplayName());               JButton b=BarFactory.createToolbarButton(ja, controller);               b.setToolTipText(ja.getLangDepName());               toolbar.add(b);               controller.getSettings().addAction(jt.getTypeId(), ja);            }         } else if (act[j].startsWith("SetActivityMode")) {            String type=act[j].substring("SetActivityMode".length());            if (type.equals("*")) {               List actTypes=jts.getTypes(Activity.class,null);               for (int i=0; i<actTypes.size(); i++) {                  JaWEType jt=(JaWEType)actTypes.get(i);                  JaWEAction ja=new JaWEAction();                  ja.setAction(new SetActivityMode(controller,jt.getTypeId()));                  ja.setIcon(jt.getIcon());                  ja.setLangDepName(jt.getDisplayName());                  JButton b=BarFactory.createToolbarButton(ja, controller);                  b.setToolTipText(ja.getLangDepName());                  toolbar.add(b);                  controller.getSettings().addAction(jt.getTypeId(), ja);               }            } else {               JaWEType jt=jts.getType(type);               if (jt==null) continue;               JaWEAction ja=new JaWEAction();               ja.setAction(new SetActivityMode(controller,jt.getTypeId()));               ja.setIcon(jt.getIcon());               ja.setLangDepName(jt.getDisplayName());               JButton b=BarFactory.createToolbarButton(ja, controller);               b.setToolTipText(ja.getLangDepName());               toolbar.add(b);               controller.getSettings().addAction(jt.getTypeId(), ja);            }         } else if (act[j].startsWith("SetTransitionMode")) {            String type=act[j].substring("SetTransitionMode".length());            if (type.equals("*")) {               List traTypes=jts.getTypes(Transition.class,null);               for (int i=0; i<traTypes.size(); i++) {                  JaWEType jt=(JaWEType)traTypes.get(i);                  JaWEAction ja=new JaWEAction();                  ja.setAction(new SetTransitionMode(controller,jt.getTypeId()));                  ja.setIcon(jt.getIcon());                  ja.setLangDepName(jt.getDisplayName());                  JButton b=BarFactory.createToolbarButton(ja, controller);                  b.setToolTipText(ja.getLangDepName());                  toolbar.add(b);                  controller.getSettings().addAction(jt.getTypeId(), ja);               }            } else {               JaWEType jt=jts.getType(type);               if (jt==null) continue;               JaWEAction ja=new JaWEAction();               ja.setAction(new SetTransitionMode(controller,jt.getTypeId()));               ja.setIcon(jt.getIcon());               ja.setLangDepName(jt.getDisplayName());               JButton b=BarFactory.createToolbarButton(ja, controller);               b.setToolTipText(ja.getLangDepName());               toolbar.add(b);               controller.getSettings().addAction(jt.getTypeId(), ja);            }         }      }      toolbar.setName(controller.getSettings().getLanguageDependentString(toolbarName                                                                    + BarFactory.LABEL_POSTFIX));      return toolbar;   }   protected JScrollPane createWorkingComponent () {      JScrollPane lGraphScrollPane= new JScrollPane();      JViewport port = lGraphScrollPane.getViewport();      port.setScrollMode(JViewport.BLIT_SCROLL_MODE);      // Harald Meister: set bigger scroll-amounts, especially useful for      // mouse-wheel-scolling in large workflows      lGraphScrollPane.getVerticalScrollBar().setUnitIncrement(20);      lGraphScrollPane.getHorizontalScrollBar().setUnitIncrement(40);      return lGraphScrollPane;   }   public void graphSelected (Graph graph) {      graphScrollPane.setViewportView(graph);   }   public void enableDisableButtons() {      if (controller.getSelectedGraph() != null) {         if (XMLUtil.getPackage(controller.getSelectedGraph().getXPDLObject()) == JaWEManager.getInstance().getJaWEController().getMainPackage())            if (controller.getChoices(showParticipantChoiceButton).size() != 0)               showParticipantChoiceButton.setEnabled(true);            else               showParticipantChoiceButton.setEnabled(false);         else            showParticipantChoiceButton.setEnabled(false);      } else {         showParticipantChoiceButton.setEnabled(false);      }      if (controller.getChoices(asChoiceButton).size() != 0)         asChoiceButton.setEnabled(true);      else         asChoiceButton.setEnabled(false);   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -