/**
* SlingBeans - NetBeans Sling plugin
* https://github.com/jkan997/SlingBeans
* Licensed under Apache 2.0 license
* http://www.apache.org/licenses/LICENSE-2.0
*/
package org.jkan997.slingbeans.dialogs;
import ca.odell.glazedlists.GlazedLists;
import ca.odell.glazedlists.swing.AutoCompleteSupport;
import java.awt.event.KeyEvent;
import java.util.Set;
import javax.swing.JComponent;
import javax.swing.KeyStroke;
import org.jkan997.slingbeans.configuration.Configuration;
import org.jkan997.slingbeans.configuration.ConfigurationImpl;
import org.jkan997.slingbeans.entity.WorkflowConfiguration;
import org.jkan997.slingbeans.entity.Workflow;
import org.jkan997.slingbeans.helper.ComboBoxSet;
/**
*
* @author jkan997
*/
public class StartWorkflowDialog extends javax.swing.JDialog {
private boolean startWorkflow = false;
private ComboBoxSet comboBoxSet = null;
private WorkflowConfiguration workflowConfiguration;
public StartWorkflowDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
}
public void init(Set workflows,String payload) {
comboBoxSet = new ComboBoxSet(workflows, true) {
@Override
protected String convertToString(Object o) {
Workflow w = (Workflow) o;
if (w == null) {
return "";
}
return w.getName();
}
};
AutoCompleteSupport.install(workflowCombo, GlazedLists.eventListOf(comboBoxSet.getStringArray()));
Configuration configuration = ConfigurationImpl.getInstance();
workflowConfiguration = (WorkflowConfiguration) configuration.getObject(WorkflowConfiguration.WORKFLOW_CONFIGURATION);
if (workflowConfiguration == null) {
workflowConfiguration = new WorkflowConfiguration();
workflowConfiguration.setWorkfloadName(comboBoxSet.getFirstString());
workflowConfiguration.setWorkflowPayload("/some/payload");
workflowConfiguration.setWorkflowTitle("Workflow title");
workflowConfiguration.setWorkfloadComment("Workflow comment");
}
if (payload!=null){
workflowConfiguration.setWorkflowPayload(payload);
}
workflowCombo.setSelectedItem(workflowConfiguration.getWorkfloadName());
workflowPayloadText.setText(workflowConfiguration.getWorkflowPayload());
workflowTitleText.setText(workflowConfiguration.getWorkflowTitle());
workflowDescriptionText.setText(workflowConfiguration.getWorkfloadComment());
}
public boolean isStartWorkflow() {
return startWorkflow;
}
public WorkflowConfiguration getWorkflowConfiguration() {
return workflowConfiguration;
}
public String getSelectedNodeType() {
Object selected = workflowCombo.getSelectedItem();
return (selected != null ? selected.toString() : null);
}
public String getSelectedNodeName() {
return workflowPayloadText.getText();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
workflowCombo = new javax.swing.JComboBox();
workflowPayloadText = new javax.swing.JTextField();
workflowTitleText = new javax.swing.JTextField();
workflowDescriptionPane = new javax.swing.JScrollPane();
workflowDescriptionText = new javax.swing.JTextArea();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
cancelBtn = new javax.swing.JButton();
startBtn = new javax.swing.JButton();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle(org.openide.util.NbBundle.getMessage(StartWorkflowDialog.class, "StartWorkflowDialog.title_1")); // NOI18N
setResizable(false);
workflowCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
workflowPayloadText.setText(org.openide.util.NbBundle.getMessage(StartWorkflowDialog.class, "StartWorkflowDialog.workflowPayloadText.text_1")); // NOI18N
workflowTitleText.setText(org.openide.util.NbBundle.getMessage(StartWorkflowDialog.class, "StartWorkflowDialog.workflowTitleText.text")); // NOI18N
workflowDescriptionText.setColumns(20);
workflowDescriptionText.setRows(5);
workflowDescriptionPane.setViewportView(workflowDescriptionText);
jLabel1.setText(org.openide.util.NbBundle.getMessage(StartWorkflowDialog.class, "StartWorkflowDialog.jLabel1.text_1")); // NOI18N
jLabel2.setText(org.openide.util.NbBundle.getMessage(StartWorkflowDialog.class, "StartWorkflowDialog.jLabel2.text_1")); // NOI18N
cancelBtn.setText(org.openide.util.NbBundle.getMessage(StartWorkflowDialog.class, "StartWorkflowDialog.cancelBtn.text_1")); // NOI18N
cancelBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelBtnActionPerformed(evt);
}
});
cancelBtn.registerKeyboardAction(
new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelBtnActionPerformed(evt);
}
}, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW);
startBtn.setText(org.openide.util.NbBundle.getMessage(StartWorkflowDialog.class, "StartWorkflowDialog.startBtn.text_1")); // NOI18N
startBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
startBtnActionPerformed(evt);
}
});
startBtn.registerKeyboardAction(
new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
startBtnActionPerformed(evt);
}
}, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), JComponent.WHEN_IN_FOCUSED_WINDOW);
org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel1Layout.createSequentialGroup()
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(cancelBtn)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(startBtn)
.add(0, 0, 0))
);
jPanel1Layout.linkSize(new java.awt.Component[] {cancelBtn, startBtn}, org.jdesktop.layout.GroupLayout.HORIZONTAL);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(cancelBtn)
.add(startBtn))
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jLabel3.setText(org.openide.util.NbBundle.getMessage(StartWorkflowDialog.class, "StartWorkflowDialog.jLabel3.text")); // NOI18N
jLabel4.setText(org.openide.util.NbBundle.getMessage(StartWorkflowDialog.class, "StartWorkflowDialog.jLabel4.text")); // NOI18N
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(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 89, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 89, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(workflowPayloadText)
.add(workflowCombo, 0, 307, Short.MAX_VALUE)))
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 89, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jLabel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 89, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(workflowDescriptionPane)
.add(workflowTitleText, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 307, Short.MAX_VALUE))))
.addContainerGap())
.add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(workflowCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jLabel1))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(workflowPayloadText, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jLabel2))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(workflowTitleText, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jLabel3))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(workflowDescriptionPane, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 128, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jLabel4))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void cancelBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelBtnActionPerformed
this.setVisible(false);
}//GEN-LAST:event_cancelBtnActionPerformed
private void startBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_startBtnActionPerformed
Configuration configuration = ConfigurationImpl.getInstance();
Workflow workflow = (Workflow) comboBoxSet.getByLabel(workflowCombo.getSelectedItem().toString());
if (workflow!=null){
workflowConfiguration.setWorkfloadName(workflow.getName());
workflowConfiguration.setWorkfloadPath(workflow.getPath());
workflowConfiguration.setWorkflowPayload(workflowPayloadText.getText());
workflowConfiguration.setWorkflowTitle(workflowTitleText.getText());
workflowConfiguration.setWorkfloadComment(workflowDescriptionText.getText());
startWorkflow = true;
configuration.setObject(WorkflowConfiguration.WORKFLOW_CONFIGURATION, workflowConfiguration);
}
this.setVisible(false);
}//GEN-LAST:event_startBtnActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton cancelBtn;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JPanel jPanel1;
private javax.swing.JButton startBtn;
private javax.swing.JComboBox workflowCombo;
private javax.swing.JScrollPane workflowDescriptionPane;
private javax.swing.JTextArea workflowDescriptionText;
private javax.swing.JTextField workflowPayloadText;
private javax.swing.JTextField workflowTitleText;
// End of variables declaration//GEN-END:variables
}