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

📄 paricipantworks.java

📁 一个工作流的原型
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        // TODO add your handling code here:        jButton1.setEnabled(true);    }//GEN-LAST:event_jTable2FocusLost    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed        // TODO add your handling code here:        jButton2.setEnabled(false);        submitWorkItem();    }//GEN-LAST:event_jButton2ActionPerformed    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed        // TODO add your handling code here:        updateVariables();            }//GEN-LAST:event_jButton1ActionPerformed    private void TableMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_TableMouseClicked        // TODO add your handling code here:        worklistClickedProcess();        jButton2.setEnabled(true);    }//GEN-LAST:event_TableMouseClicked    private void JTreeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JTreeMouseClicked        // TODO add your handling code here:        removeRowsFromTable(jTable1);        removeRowsFromTable(jTable2);        removeLabels();        jButton1.setEnabled(false);        jButton2.setEnabled(false);                TreePath tp = jTree1.getSelectionPath();        if (tp != null) {            int level = tp.getPathCount();            if (level == 3) {                Object[] path = tp.getPath();                String p1 = path[1].toString();                String p2 = path[2].toString();                DefaultMutableTreeNode node = (DefaultMutableTreeNode)path[2];                Object obj = node.getUserObject();                String type = null;                String id = null;                if (p1.equals("个人")) {                    type = "HUMAN";                    id = ((User)obj).getId();                } else if (p1.equals("角色")) {                    type = "ROLE";                    id = ((Role)obj).getId();                } else if (p1.equals("组织")) {                    type = "DEPARTMENT";                    id = ((Department)obj).getId();                }                setWorklist(type,id);            }        }    }//GEN-LAST:event_JTreeMouseClicked        /** Exit the Application */    private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm        System.exit(0);    }//GEN-LAST:event_exitForm        /**     * @param args the command line arguments     */    public static void main(String args[]) {        new ParicipantWorks().show();    }        // Variables declaration - do not modify//GEN-BEGIN:variables    private javax.swing.JButton jButton1;    private javax.swing.JButton jButton2;    private javax.swing.JLabel jLabel1;    private javax.swing.JLabel jLabel10;    private javax.swing.JLabel jLabel11;    private javax.swing.JLabel jLabel2;    private javax.swing.JLabel jLabel3;    private javax.swing.JLabel jLabel4;    private javax.swing.JLabel jLabel5;    private javax.swing.JLabel jLabel6;    private javax.swing.JLabel jLabel7;    private javax.swing.JLabel jLabel8;    private javax.swing.JLabel jLabel9;    private javax.swing.JPanel jPanel1;    private javax.swing.JPanel jPanel2;    private javax.swing.JPanel jPanel3;    private javax.swing.JPanel jPanel4;    private javax.swing.JPanel jPanel5;    private javax.swing.JPanel jPanel6;    private javax.swing.JPanel jPanel7;    private javax.swing.JPanel jPanel8;    private javax.swing.JPanel jPanel9;    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JScrollPane jScrollPane2;    private javax.swing.JSplitPane jSplitPane1;    private javax.swing.JSplitPane jSplitPane2;    private javax.swing.JTable jTable1;    private javax.swing.JTable jTable2;    private javax.swing.JTree jTree1;    // End of variables declaration//GEN-END:variables        private void myinit() {//        removeRowsFromTable();                ResourceManager rm = new ResourceManager();        Organization orgn = rm.getOrganization();                String root = "XwfBox 参与者列表";        DefaultMutableTreeNode rt = new DefaultMutableTreeNode(root);        String human = "个人";        DefaultMutableTreeNode ch11 = new DefaultMutableTreeNode(human);        Iterator it = orgn.getUsers().getUsers().iterator();        while (it.hasNext()) {            User user = (User)it.next();            DefaultMutableTreeNode u = new DefaultMutableTreeNode(user);            ch11.add(u);        }        String role = "角色";        DefaultMutableTreeNode ch12 = new DefaultMutableTreeNode(role);        it = orgn.getRoles().getRoles().iterator();        while (it.hasNext()) {            Role rl = (Role)it.next();            DefaultMutableTreeNode r = new DefaultMutableTreeNode(rl);            ch12.add(r);        }                String org = "组织";        DefaultMutableTreeNode ch13 = new DefaultMutableTreeNode(org);        it = orgn.getDepartments().getDepartments().iterator();        while (it.hasNext()) {            Department dept = (Department)it.next();            DefaultMutableTreeNode d = new DefaultMutableTreeNode(dept);            ch13.add(d);        }                rt.add(ch11);        rt.add(ch12);        rt.add(ch13);        TreeModel dtm = new DefaultTreeModel(rt);        jTree1.setModel(dtm);                javax.swing.table.TableColumn colt1 = jTable1.getColumnModel().getColumn(0);        colt1.setPreferredWidth(4);                javax.swing.table.TableColumn colt2 = jTable2.getColumnModel().getColumn(0);        colt2.setPreferredWidth(4);     }        private void setWorklist(String type, String participantId) {        // Find participant worklist path        ResourceManager rm = new ResourceManager();        String worklistPath = rm.getWorkListPath(type);        // Get the participant worklist        WorkListManager wm = new WorkListManager(participantId, worklistPath);        Vector workItems = wm.getWorkItems();        if (workItems != null) {            setTableRowCount(jTable1, workItems.size());            Iterator it = workItems.iterator();            int i = 0;            while (it.hasNext()) {                WorkItem wi = (WorkItem) it.next();                String s = String.valueOf(i+1);                jTable1.setValueAt(s, i, 0);                jTable1.setValueAt(wi.getTaskId(), i, 1);                jTable1.setValueAt(wi.getTaskName(), i, 2);                jTable1.setValueAt(wi.getInstanceId(), i, 3);                jTable1.setValueAt(wi.getArrival(), i, 4);                i++;            }        } else {            removeRowsFromTable(jTable1);        }    }        private void removeRowsFromTable(javax.swing.JTable jTable) {        javax.swing.table.DefaultTableModel tm = (javax.swing.table.DefaultTableModel)jTable.getModel();        int rc = tm.getRowCount();        for (int i = rc - 1; i >= 0; i--) {            tm.removeRow(i);         }        tm.setRowCount(0);   }       private void setTableRowCount(javax.swing.JTable jTable, int rc) {        javax.swing.table.DefaultTableModel tm = (javax.swing.table.DefaultTableModel)jTable.getModel();        tm.setRowCount(rc);   }      private void worklistClickedProcess() {        int selected = jTable1.getSelectedRow();        String taskId = jTable1.getModel().getValueAt(selected, 1).toString();        String taskName = jTable1.getModel().getValueAt(selected, 2).toString();        String instanceId = jTable1.getModel().getValueAt(selected, 3).toString();        String arrival = jTable1.getModel().getValueAt(selected, 4).toString();        //Set WorkTtem information        jLabel7.setText(taskId);        jLabel8.setText(taskName);        jLabel9.setText(instanceId);        jLabel10.setText(arrival);                // Get the instance by instanceId        InstanceTableManager itm = new InstanceTableManager();        String loc = itm.getInstanceLocation(instanceId);        InstanceManager im = new InstanceManager(loc);        Vector vars = im.getInstance().getVariables().getVariables();        Iterator it = vars.iterator();        setTableRowCount(jTable2, vars.size());        int i = 0;        while (it.hasNext()) {            Variable var = (Variable) it.next();            String s = String.valueOf(i+1);            jTable2.setValueAt(s, i, 0);            jTable2.setValueAt(var.getId(), i, 1);            jTable2.setValueAt(var.getType(), i, 2);            jTable2.setValueAt(var.getValue(), i, 3);            i++;        }        //        System.out.println(col0 + "/" + col1 + "/" + col2 + "/" + instanceId);          }      private void updateVariables() {        String instanceId = jLabel9.getText();        InstanceTableManager itm = new InstanceTableManager();        String loc = itm.getInstanceLocation(instanceId);        InstanceManager im = new InstanceManager(loc);        Vector vars = im.getInstance().getVariables().getVariables();        Iterator it = vars.iterator();        int i = 0;        while (it.hasNext()) {            Variable var = (Variable) it.next();            var.setId((String)jTable2.getValueAt(i, 1));            var.setType((String)jTable2.getValueAt(i, 2));            var.setValue((String)jTable2.getValueAt(i, 3));            i++;        }        im.update();        jButton1.setEnabled(false);   }      private void submitWorkItem() {        String workId = jLabel7.getText();        TreePath tp = jTree1.getSelectionPath();        Object[] path = tp.getPath();        String participantType = getParticipantType(path[1].toString());        String participantId = null;        if (participantType.equals("HUMAN")) {            DefaultMutableTreeNode tn = (DefaultMutableTreeNode)path[2];            User user = (User)tn.getUserObject();            participantId = user.getId();        } else if (participantType.equals("ROLE")) {            DefaultMutableTreeNode tn = (DefaultMutableTreeNode)path[2];            Role role = (Role)tn.getUserObject();            participantId = role.getId();        } else if (participantType.equals("DEPARTMENT")) {            DefaultMutableTreeNode tn = (DefaultMutableTreeNode)path[2];            Department dept = (Department)tn.getUserObject();            participantId = dept.getId();        }        if ((workId.length() > 4) && (participantId != null)) {            WorkflowEngine we = new WorkflowEngine();            we.informTaskFinish(workId, participantId, participantType);        }   }      private String getParticipantType(String sType) {        if (sType.equals("个人")) {            return "HUMAN";        } else if (sType.equals("角色")) {            return "ROLE";        } else if (sType.equals("组织")) {           return  "DEPARTMENT";        } else return "ERROR";   }      private void removeLabels() {        jLabel7.setText(" ");        jLabel8.setText(" ");        jLabel9.setText(" ");        jLabel10.setText(" ");   }}

⌨️ 快捷键说明

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