/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* TaskListJFrame.java
*
* Created on May 30, 2011, 7:14:02 PM
*/
package com.wordpress.salaboy;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseConfiguration;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderError;
import org.drools.builder.KnowledgeBuilderErrors;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.conf.EventProcessingOption;
import org.drools.event.rule.DebugAgendaEventListener;
import org.drools.io.impl.ClassPathResource;
import org.drools.logger.KnowledgeRuntimeLoggerFactory;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.rule.FactHandle;
import org.drools.runtime.rule.LiveQuery;
import org.drools.runtime.rule.Row;
import org.drools.runtime.rule.ViewChangedEventListener;
import org.jbpm.process.workitem.wsht.WSHumanTaskHandler;
import org.jbpm.task.Task;
import org.jbpm.task.User;
import org.jbpm.task.query.TaskSummary;
/**
*
* @author salaboy
*/
public class TaskListJFrame extends javax.swing.JFrame {
private StatefulKnowledgeSession ksession;
private TaskServerDaemon taskServerDaemon = new TaskServerDaemon();
private FactHandle thresholdFactHandle;
/** Creates new form TaskListJFrame */
public TaskListJFrame() {
initComponents();
taskServerDaemon.startServer();
ksession = createSession();
TaskClientHelper.getInstance();
// new Thread(new Runnable() {
//
// public void run() {
// ksession.fireUntilHalt();
// }
// }).start();
Threshold avgThreshold = new Threshold("AverageThreshold", 20, -1);
ksession.insert(new Average(1.0));
thresholdFactHandle = ksession.insert(avgThreshold);
ksession.insert(new User("salaboy"));
final List updated = new ArrayList();
final List removed = new ArrayList();
final List added = new ArrayList();
ViewChangedEventListener listener = new ViewChangedEventListener() {
public void rowUpdated(Row row) {
averageRealTimejLabel.setText(((Average) row.get("$currentAverage")).getValue().toString());
updated.add(row.get("$currentAverage"));
}
public void rowRemoved(Row row) {
removed.add(row.get("$currentAverage"));
}
public void rowAdded(Row row) {
added.add(row.get("$currentAverage"));
}
};
LiveQuery query = ksession.openLiveQuery("getAverage",
new Object[]{},
listener);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
autoeventjCheckBox = new javax.swing.JCheckBox();
eventTimejTextField = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
eventValuejSlider = new javax.swing.JSlider();
jButton2 = new javax.swing.JButton();
thresholdValuejSlider = new javax.swing.JSlider();
jLabel6 = new javax.swing.JLabel();
jButton5 = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
averageRealTimejLabel = new javax.swing.JLabel();
jPanel5 = new javax.swing.JPanel();
jLabel5 = new javax.swing.JLabel();
avgrefreshjTextField = new javax.swing.JTextField();
refreshAveragejCheckBox = new javax.swing.JCheckBox();
jButton4 = new javax.swing.JButton();
jPanel3 = new javax.swing.JPanel();
jPanel6 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
refreshTimejTextField = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
autojCheckBox = new javax.swing.JCheckBox();
jLabel7 = new javax.swing.JLabel();
jPanel4 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
tasksjTable = new javax.swing.JTable();
jPanel7 = new javax.swing.JPanel();
jButton3 = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
taskDefinitionjTextArea = new javax.swing.JTextArea();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Events", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.DEFAULT_POSITION));
autoeventjCheckBox.setText("auto");
autoeventjCheckBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
autoeventjCheckBoxActionPerformed(evt);
}
});
eventTimejTextField.setText("1000");
jLabel3.setText("Time:");
jLabel2.setText("Value:");
eventValuejSlider.setMajorTickSpacing(10);
eventValuejSlider.setMinorTickSpacing(10);
eventValuejSlider.setPaintLabels(true);
eventValuejSlider.setPaintTicks(true);
eventValuejSlider.setValue(0);
jButton2.setText("Generate Event");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
thresholdValuejSlider.setMajorTickSpacing(10);
thresholdValuejSlider.setMinorTickSpacing(10);
thresholdValuejSlider.setPaintLabels(true);
thresholdValuejSlider.setPaintTicks(true);
thresholdValuejSlider.setValue(20);
jLabel6.setText("Threshold:");
jButton5.setText("Update");
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});
org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.addContainerGap(44, Short.MAX_VALUE)
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jLabel6)
.add(jLabel2))
.add(18, 18, 18)
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(thresholdValuejSlider, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(eventValuejSlider, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(18, 18, 18)
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jButton2)
.add(jButton5)))
.add(jPanel1Layout.createSequentialGroup()
.add(jLabel3)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(eventTimejTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 47, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(autoeventjCheckBox))))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jLabel6)
.add(thresholdValuejSlider, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jButton2)
.add(eventValuejSlider, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jLabel2)))
.add(jButton5))
.add(12, 12, 12)
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel3)
.add(eventTimejTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(autoeventjCheckBox))
.addContainerGap())
);
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Average", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.DEFAULT_POSITION));
jLabel4.setText("Current Average: ");
averageRealTimejLabel.setFont(new java.awt.Font("Courier New", 1, 24));
averageRealTimejLabel.setText("1");
averageRealTimejLabel.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) {
averageRealTimejLabelPropertyChange(evt);
}
});
jLabel5.setText("Time:");
avgrefreshjTextField.setText("2000");
refreshAveragejCheckBox.setText("auto");
refreshAveragejCheckBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
refreshAveragejCheckBoxActionPerformed(evt);
}
});
jButton4.setText("Refresh");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
org.jdesktop.layout.GroupLayout jPanel5Layout = new org.jdesktop.layout.GroupLayout(jPanel5);
jPanel5.setLayout(jPanel5Layout);
jPanel5Layout.setHorizontalGroup(
jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel5Layout.createSequentialGroup()
.add(jLabel5)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(avgrefreshjTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 52, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(refreshAveragejCheckBox)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jButton4)
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 29, Short.MAX_VALUE)
.add(avgrefreshjTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(refreshAveragejCheckBox)
.add(jButton4)
);
org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jPanel2Layout.createSequentialGroup()
.add(jLabel4)
.add(18, 18, 18)
.add(averageRealTimejLabel)))
.addContainerGap(177, Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel2Layout.createSequentialGroup()
.add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel4)
.add(averageRealTimejLabel))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
);
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Actions", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.DEFAULT_POSITION));
jButton1.setText("Refresh");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
refreshTimejTextField.setText("1000");
jLabel1.setText("(ms)");
autojCheckBox.setText("auto");
autojCheckBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
autojCheckBoxActionPerformed(evt);
}
});
jLabel7.setText("Time:");
org.jdesktop.layout.GroupLayout jPanel6Layout = new org.jdesktop.layout.GroupLayout(jPanel6);
jPanel6.setLayout(jPanel6Layout);
jPanel6Layout.setHorizontalGroup(
jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.add(jLabel7)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(refreshTimejTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jLabel1)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(autojCheckBox)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jButton1)
.addContainerGap(66, Short.MAX_VALUE))
);
jPanel6Layout.setVerticalGroup(
jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel7)
.add(refreshTimejTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jLabel1)
.add(autojCheckBox)
.add(jButton1))
);
org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel3Layout.createSequentialGroup()
.add(11, 11, 11)
.add(jPanel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap(82, Short.MAX_VALUE))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
);
jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Task List", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.DEFAULT_POSITION));
tasksjTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Id","Task Name",
}
) {
Class[] types = new Class [] {
java.lang.Number.class,
java.lang.String.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
jScrollPane1.setViewportView(tasksjTable);
org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 474, Short.MAX_VALUE)
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 63, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
);
jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Admin Tasks", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.DEFAULT_POSITION));
jButton3.setText("Insert Task Structure");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
taskDefinitionjTextArea.setColumns(20);
taskDefinitionjTextArea.setRows(5);
taskDefinitionjTextArea.setText("(with (new Task()) \n{ priority = 55, \n taskData = \n (with( new TaskData()) { workItemId = 1 } ), \n peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = \t\t\t\t[users['salaboy']], recipients = [users['Administrator']] }),\n\t descriptions = [ new I18NText( 'en-UK', 'This is my description')], \n\t subjects = [ new I18NText( 'en-UK', 'This is my subject')], \n names = [ new I18NText( 'en-UK', 'Correct Flow Average!!!')] })");
jScrollPane2.setViewportView(taskDefinitionjTextArea);
org.jdesktop.layout.GroupLayout jPanel7Layout = new org.jdesktop.layout.GroupLayout(jPanel7);
jPanel7.setLayout(jPanel7Layout);
jPanel7Layout.setHorizontalGroup(
jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel7Layout.createSequentialGroup()
.addContainerGap()
.add(jButton3)
.addContainerGap(282, Short.MAX_VALUE))
.add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel7Layout.createSequentialGroup()
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jScrollPane2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 434, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel7Layout.setVerticalGroup(
jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel7Layout.createSequentialGroup()
.add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jButton3))
);
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel7, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jPanel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(jPanel7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
sendEvent();
}
private void refreshAverageQuery() {
// org.drools.runtime.rule.QueryResults results =
// ksession.getQueryResults("getAverage", new Object[]{});
//
// for (QueryResultsRow row : results) {
// averageRealTimejLabel.setText(((Average) row.get("$currentAverage")).getValue().toString());
// }
//
//
}
private void sendEvent() throws NumberFormatException {
ksession.getWorkingMemoryEntryPoint("water-events").insert(new WaterFlowingEvent(Double.valueOf(eventValuejSlider.getValue())));
ksession.fireAllRules();
}//GEN-LAST:event_jButton2ActionPerformed
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
refreshTable();
}
private void refreshTable() {
List<TaskSummary> tasks = TaskClientHelper.getInstance().getAssignedTasksByUser("salaboy");
DefaultTableModel tableModel = new javax.swing.table.DefaultTableModel(
new String[]{
"Id", "Task Name"}, 0) {
Class[] types = new Class[]{
java.lang.Number.class,
java.lang.String.class
};
public Class getColumnClass(int columnIndex) {
return types[columnIndex];
}
};
int i = 0;
for (TaskSummary task : tasks) {
String name = task.getName();
tableModel.addRow(new Object[]{task.getId(), name});
}
tasksjTable.setModel(tableModel);
}//GEN-LAST:event_jButton1ActionPerformed
private void autojCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_autojCheckBoxActionPerformed
if (autojCheckBox.isSelected()) {
Thread refreshThread = new Thread(new Runnable() {
@Override
public void run() {
while (autojCheckBox.isSelected()) {
try {
Thread.sleep(Integer.valueOf(refreshTimejTextField.getText()));
refreshTable();
} catch (InterruptedException ex) {
Logger.getLogger(TaskListJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
});
refreshThread.start();
}
}//GEN-LAST:event_autojCheckBoxActionPerformed
private void autoeventjCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_autoeventjCheckBoxActionPerformed
if (autoeventjCheckBox.isSelected()) {
Thread refreshThread = new Thread(new Runnable() {
@Override
public void run() {
while (autoeventjCheckBox.isSelected()) {
try {
Thread.sleep(Integer.valueOf(eventTimejTextField.getText()));
sendEvent();
} catch (InterruptedException ex) {
Logger.getLogger(TaskListJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
});
refreshThread.start();
}
}//GEN-LAST:event_autoeventjCheckBoxActionPerformed
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
Map<String, Object> vars = new HashMap();
Map<String, User> users = new HashMap<String, User>();
for (String user : taskServerDaemon.getDefaultUsers()) {
users.put(user, new User(user));
}
vars.put("users", users);
vars.put("now", new Date());
Task task = (Task) TaskServerDaemon.eval(new StringReader(taskDefinitionjTextArea.getText()), vars);
ksession.insert(task);
}//GEN-LAST:event_jButton3ActionPerformed
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
refreshAverageQuery();
}//GEN-LAST:event_jButton4ActionPerformed
private void refreshAveragejCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_refreshAveragejCheckBoxActionPerformed
// TODO add your handling code here:
if (refreshAveragejCheckBox.isSelected()) {
Thread refreshThread = new Thread(new Runnable() {
@Override
public void run() {
while (refreshAveragejCheckBox.isSelected()) {
try {
Thread.sleep(Integer.valueOf(avgrefreshjTextField.getText()));
refreshAverageQuery();
} catch (InterruptedException ex) {
Logger.getLogger(TaskListJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
});
refreshThread.start();
}
}//GEN-LAST:event_refreshAveragejCheckBoxActionPerformed
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
ksession.update(thresholdFactHandle, new Threshold("AverageThreshold", thresholdValuejSlider.getValue(), -1));
}//GEN-LAST:event_jButton5ActionPerformed
private void averageRealTimejLabelPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_averageRealTimejLabelPropertyChange
}//GEN-LAST:event_averageRealTimejLabelPropertyChange
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TaskListJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JCheckBox autoeventjCheckBox;
private javax.swing.JCheckBox autojCheckBox;
private javax.swing.JLabel averageRealTimejLabel;
private javax.swing.JTextField avgrefreshjTextField;
private javax.swing.JTextField eventTimejTextField;
private javax.swing.JSlider eventValuejSlider;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JLabel jLabel1;
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.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.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JCheckBox refreshAveragejCheckBox;
private javax.swing.JTextField refreshTimejTextField;
private javax.swing.JTextArea taskDefinitionjTextArea;
private javax.swing.JTable tasksjTable;
private javax.swing.JSlider thresholdValuejSlider;
// End of variables declaration//GEN-END:variables
private StatefulKnowledgeSession createSession() {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
//Adds resources to the builder
kbuilder.add(new ClassPathResource("rules/SimpleRulesAndTask.drl"), ResourceType.DRL);
KnowledgeBuilderErrors errors = kbuilder.getErrors();
//Checks for errors
if (errors.size() > 0) {
for (KnowledgeBuilderError error : errors) {
System.out.println(error.getMessage());
}
throw new IllegalStateException("Error building kbase!");
}
//Creates a new kbase and add all the packages from the builder
KnowledgeBaseConfiguration kbaseConf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
kbaseConf.setOption(EventProcessingOption.STREAM);
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(kbaseConf);
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
StatefulKnowledgeSession myksession = kbase.newStatefulKnowledgeSession();
myksession.getWorkItemManager().registerWorkItemHandler("Human Task", new WSHumanTaskHandler());
KnowledgeRuntimeLoggerFactory.newConsoleLogger(myksession);
myksession.addEventListener(new DebugAgendaEventListener());
return myksession;
}
}