ResultPanel.java :  » Workflow-Engines » shark » org » enhydra » shark » swingclient » Java Open Source

Java Open Source » Workflow Engines » shark 
shark » org » enhydra » shark » swingclient » ResultPanel.java
/**
 * Miroslav Popov, Mar 14, 2006 miroslav.popov@gmail.com
 */
package org.enhydra.shark.swingclient;

import java.awt.Component;
import java.awt.Dimension;
import java.awt.Window;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

import org.enhydra.shark.api.client.wfmc.wapi.WMActivityInstance;
import org.enhydra.shark.api.client.wfmc.wapi.WMActivityInstanceIterator;
import org.enhydra.shark.api.client.wfmc.wapi.WMIterator;
import org.enhydra.shark.api.client.wfmc.wapi.WMProcessInstance;
import org.enhydra.shark.api.client.wfmc.wapi.WMProcessInstanceIterator;
import org.enhydra.shark.api.client.wfservice.WMEntity;
import org.enhydra.shark.api.client.wfservice.WMEntityIterator;

/**
 * @author Miroslav Popov
 */
public class ResultPanel extends ActionPanel {

   private static Dimension spDimension = new Dimension(700, 400);

   String _text;

   WMProcessInstanceIterator _pii;

   WMActivityInstanceIterator _aii;

   WMEntityIterator _ei;

   String[] _info;

   public ResultPanel(Window parent,
                      String header,
                      String text,
                      WMProcessInstanceIterator pii,
                      WMActivityInstanceIterator aii,
                      WMEntityIterator ei,
                      String[] info) {
      super();
      _text = text;
      _pii = pii;
      _aii = aii;
      _ei = ei;
      _info = info;
      super.init();
      super.initDialog(parent, header, true, false);
   }

   protected void createActions() {
   }

   protected Component createCenterComponent() {
      JPanel panel = new JPanel();
      panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
      panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

      JLabel desc = new JLabel(_text);
      desc.setAlignmentX(LEFT_ALIGNMENT);
      panel.add(desc);

      int pcount = 0;
      int acount = 0;
      int ecount = 0;
      int icount = 0;
      if (_pii != null)
         pcount = _pii.getCount();

      if (_aii != null)
         acount = _aii.getCount();

      if (_ei != null)
         ecount = _ei.getCount();

      if (_info != null)
         icount = _info.length;

      if (pcount == 0 && acount == 0 && ecount==0 && icount == 0) {
         JLabel text = new JLabel(ResourceManager.getLanguageDependentString("MessageActionResultsEmpty"));

         panel.add(text);
      } else {
         if (pcount != 0) {
            JLabel text = new JLabel(ResourceManager.getLanguageDependentString("MessageNumberOfProcesses")
                                     + " : " + pcount);
            text.setAlignmentX(LEFT_ALIGNMENT);

            JList list = new JList(iToString(_pii));
            JScrollPane pane = new JScrollPane();
            pane.setAlignmentX(LEFT_ALIGNMENT);
            pane.setViewportView(list);
            // pane.setMinimumSize(new Dimension(spDimension));
            pane.setPreferredSize(new Dimension(spDimension));
            // pane.setMaximumSize(new Dimension(spDimension));

            panel.add(text);
            panel.add(Box.createRigidArea(new Dimension(0, 5)));
            panel.add(pane);
         }

         if (acount != 0) {
            JLabel text = new JLabel(ResourceManager.getLanguageDependentString("MessageNumberOfActivities")
                                     + " : " + acount);
            text.setAlignmentX(LEFT_ALIGNMENT);

            JList list = new JList(iToString(_aii));
            JScrollPane pane = new JScrollPane();
            pane.setAlignmentX(LEFT_ALIGNMENT);
            pane.setViewportView(list);
            pane.setMinimumSize(new Dimension(spDimension));
            pane.setPreferredSize(new Dimension(spDimension));
            pane.setMaximumSize(new Dimension(spDimension));

            panel.add(text);
            panel.add(pane);
         }

         if (ecount != 0) {
            JLabel text = new JLabel(ResourceManager.getLanguageDependentString("MessageNumberOfEntities")
                                     + " : " + acount);
            text.setAlignmentX(LEFT_ALIGNMENT);

            JList list = new JList(iToString(_ei));
            JScrollPane pane = new JScrollPane();
            pane.setAlignmentX(LEFT_ALIGNMENT);
            pane.setViewportView(list);
            pane.setMinimumSize(new Dimension(spDimension));
            pane.setPreferredSize(new Dimension(spDimension));
            pane.setMaximumSize(new Dimension(spDimension));

            panel.add(text);
            panel.add(pane);
         }
         
         if (icount != 0) {
            JLabel text = new JLabel(ResourceManager.getLanguageDependentString("MessageNumberOfOptions")
                                     + " : " + icount);
            text.setAlignmentX(LEFT_ALIGNMENT);

            JList list = new JList(_info);
            JScrollPane pane = new JScrollPane();
            pane.setAlignmentX(LEFT_ALIGNMENT);
            pane.setViewportView(list);
            pane.setMinimumSize(new Dimension(spDimension));
            pane.setPreferredSize(new Dimension(spDimension));
            pane.setMaximumSize(new Dimension(spDimension));

            panel.add(text);
            panel.add(pane);
         }

      }

      return panel;
   }

   protected void applyChanges() {
      myDialog.setVisible(false);
   }

   protected String[] iToString(WMIterator iter) {
      String[] retVal = new String[iter.getCount()];

      if (iter instanceof WMProcessInstanceIterator) {
         WMProcessInstanceIterator pi = (WMProcessInstanceIterator) iter;

         int count = 0;
         while (pi.hasNext()) {
            String text = "";
            WMProcessInstance i = (WMProcessInstance) pi.next();
            text += "\n";
            text += "ID: "
                    + i.getId() + " State: " + i.getState().stringValue() + " Priority: "
                    + i.getPriority() + " ";
            if (i.getName() != null)
               text += ", Name: " + i.getName() + " ";

            text += ", Process definition: " + i.getProcessDefinitionId();

            retVal[count++] = text;
         }
      } else if (iter instanceof WMActivityInstanceIterator) {
         WMActivityInstanceIterator ai = (WMActivityInstanceIterator) iter;

         int count = 0;
         while (ai.hasNext()) {
            String text = "";
            WMActivityInstance i = (WMActivityInstance) ai.next();

            text += "\n";
            text += "ID: "
                    + i.getId() + ", State: " + i.getState().stringValue()
                    + " Priority: " + i.getPriority() + " ";
            if (i.getName() != null)
               text += ", Name: " + i.getName() + " ";

            if (i.getState() != null)
               text += ", State: " + i.getState().get_state();

            text += ", Activity definition: " + i.getActivityDefinitionId();
            text += ", Process instance: " + i.getProcessInstanceId();

            retVal[count++] = text;
         }
      } else if (iter instanceof WMEntityIterator) {
         WMEntityIterator ei = (WMEntityIterator) iter;

         int count = 0;
         while (ei.hasNext()) {
            String text = "";
            WMEntity i = (WMEntity) ei.next();

            text += "\n";
            text += "ID: "
                    + i.getId() + ", Parent Id: " + i.getParentId()+" ";
            if (i.getName() != null)
               text += ", Name: " + i.getName() + " ";

            retVal[count++] = text;
         }
      }

      return retVal;
   }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.