Search in sources :

Example 6 with CheckBoxList

use of org.jivesoftware.spark.component.CheckBoxList in project Spark by igniterealtime.

the class WorkgroupDataForm method addField.

private void addField(String label, JComponent comp, String variable) {
    if (!(comp instanceof JCheckBox)) {
        this.add(new JLabel(label), new GridBagConstraints(0, row, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
    }
    if (comp instanceof JTextArea) {
        this.add(new JScrollPane(comp), new GridBagConstraints(1, row, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 100, 50));
    } else if (comp instanceof JCheckBox) {
        this.add(comp, new GridBagConstraints(0, row, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
    } else if (comp instanceof CheckBoxList) {
        this.add(comp, new GridBagConstraints(1, row, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 50));
    } else {
        this.add(comp, new GridBagConstraints(1, row, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
    }
    valueMap.put(variable, comp);
    row++;
    comp.addKeyListener(new KeyAdapter() {

        public void keyPressed(KeyEvent e) {
            if (e.getKeyChar() == KeyEvent.VK_ENTER) {
                if (listener != null) {
                    listener.enterPressed();
                }
            }
        }
    });
}
Also used : JCheckBox(javax.swing.JCheckBox) JScrollPane(javax.swing.JScrollPane) KeyEvent(java.awt.event.KeyEvent) GridBagConstraints(java.awt.GridBagConstraints) Insets(java.awt.Insets) JTextArea(javax.swing.JTextArea) KeyAdapter(java.awt.event.KeyAdapter) CheckBoxList(org.jivesoftware.spark.component.CheckBoxList) JLabel(javax.swing.JLabel)

Example 7 with CheckBoxList

use of org.jivesoftware.spark.component.CheckBoxList in project Spark by igniterealtime.

the class WorkgroupDataForm method getFilledForm.

/**
 * Returns the answered DataForm.
 *
 * @return the answered DataForm.
 */
public Form getFilledForm() {
    // Now submit all information
    Iterator<String> valueIter = valueMap.keySet().iterator();
    Form answerForm = searchForm.createAnswerForm();
    while (valueIter.hasNext()) {
        String answer = (String) valueIter.next();
        Object o = valueMap.get(answer);
        if (o instanceof JCheckBox) {
            boolean isSelected = ((JCheckBox) o).isSelected();
            answerForm.setAnswer(answer, isSelected);
        } else if (o instanceof JTextArea) {
            List<String> list = new ArrayList<String>();
            String value = ((JTextArea) o).getText();
            StringTokenizer tokenizer = new StringTokenizer(value, ", ", false);
            while (tokenizer.hasMoreTokens()) {
                list.add(tokenizer.nextToken());
            }
            if (list.size() > 0) {
                answerForm.setAnswer(answer, list);
            }
        } else if (o instanceof JTextField) {
            String value = ((JTextField) o).getText();
            if (ModelUtil.hasLength(value)) {
                answerForm.setAnswer(answer, value);
            }
        } else if (o instanceof JComboBox) {
            Object v = ((JComboBox) o).getSelectedItem();
            String value = "";
            if (v instanceof FormField.Option) {
                value = ((FormField.Option) v).getValue();
            } else {
                value = (String) v;
            }
            List<String> list = new ArrayList<String>();
            list.add(value);
            if (list.size() > 0) {
                answerForm.setAnswer(answer, list);
            }
        } else if (o instanceof CheckBoxList) {
            List list = (List) ((CheckBoxList) o).getSelectedValues();
            if (list.size() > 0) {
                answerForm.setAnswer(answer, list);
            }
        }
    }
    final Iterator keys = presetVariables.keySet().iterator();
    while (keys.hasNext()) {
        String variable = (String) keys.next();
        String value = (String) presetVariables.get(variable);
        answerForm.setAnswer(variable, value);
    }
    final Iterator iter = requiredList.iterator();
    while (iter.hasNext()) {
        String variable = (String) iter.next();
        FormField field = answerForm.getField(variable);
        if (field != null) {
            field.setRequired(true);
        }
    }
    return answerForm;
}
Also used : JTextArea(javax.swing.JTextArea) JComboBox(javax.swing.JComboBox) Form(org.jivesoftware.smackx.xdata.Form) JTextField(javax.swing.JTextField) JCheckBox(javax.swing.JCheckBox) StringTokenizer(java.util.StringTokenizer) CheckBoxList(org.jivesoftware.spark.component.CheckBoxList) Iterator(java.util.Iterator) ArrayList(java.util.ArrayList) List(java.util.List) CheckBoxList(org.jivesoftware.spark.component.CheckBoxList) FormField(org.jivesoftware.smackx.xdata.FormField)

Example 8 with CheckBoxList

use of org.jivesoftware.spark.component.CheckBoxList in project Spark by igniterealtime.

the class WorkgroupDataForm method buildUI.

private void buildUI(Form form) {
    // Add default answers to the form to submit
    for (final FormField field : form.getFields()) {
        String variable = field.getVariable();
        if (field.isRequired()) {
            requiredList.add(variable);
        }
        if (presetVariables.containsKey(variable)) {
            continue;
        }
        String label = field.getLabel();
        FormField.Type type = field.getType();
        List valueList = new ArrayList();
        for (String value : field.getValues()) {
            valueList.add(value);
        }
        if (type.equals(FormField.Type.bool)) {
            String o = (String) valueList.get(0);
            boolean isSelected = o.equals("1");
            JCheckBox box = new JCheckBox(label);
            box.setSelected(isSelected);
            addField(label, box, variable);
        } else if (type.equals(FormField.Type.text_single) || type.equals(FormField.Type.jid_single)) {
            String v = "";
            if (valueList.size() > 0) {
                v = (String) valueList.get(0);
            }
            addField(label, new JTextField(v), variable);
        } else if (type.equals(FormField.Type.text_multi) || type.equals(FormField.Type.jid_multi)) {
            StringBuffer buf = new StringBuffer();
            for (final FormField.Option option : field.getOptions()) {
                buf.append(option);
            }
            addField(label, new JTextArea(buf.toString()), variable);
        } else if (type.equals(FormField.Type.text_private)) {
            addField(label, new JPasswordField(), variable);
        } else if (type.equals(FormField.Type.list_single)) {
            JComboBox box = new JComboBox();
            for (final FormField.Option option : field.getOptions()) {
                String value = option.getValue();
                box.addItem(option);
            }
            if (valueList.size() > 0) {
                String defaultValue = (String) valueList.get(0);
                box.setSelectedItem(defaultValue);
            }
            addField(label, box, variable);
        } else if (type.equals(FormField.Type.list_multi)) {
            CheckBoxList checkBoxList = new CheckBoxList();
            for (final String value : field.getValues()) {
                checkBoxList.addCheckBox(new JCheckBox(value), value);
            }
            addField(label, checkBoxList, variable);
        }
    }
}
Also used : JTextArea(javax.swing.JTextArea) JComboBox(javax.swing.JComboBox) ArrayList(java.util.ArrayList) JTextField(javax.swing.JTextField) JCheckBox(javax.swing.JCheckBox) JPasswordField(javax.swing.JPasswordField) CheckBoxList(org.jivesoftware.spark.component.CheckBoxList) ArrayList(java.util.ArrayList) List(java.util.List) CheckBoxList(org.jivesoftware.spark.component.CheckBoxList) FormField(org.jivesoftware.smackx.xdata.FormField)

Aggregations

JCheckBox (javax.swing.JCheckBox)8 JTextArea (javax.swing.JTextArea)8 CheckBoxList (org.jivesoftware.spark.component.CheckBoxList)8 JComboBox (javax.swing.JComboBox)5 JTextField (javax.swing.JTextField)5 ArrayList (java.util.ArrayList)4 List (java.util.List)4 FormField (org.jivesoftware.smackx.xdata.FormField)4 GridBagConstraints (java.awt.GridBagConstraints)3 Insets (java.awt.Insets)3 StringTokenizer (java.util.StringTokenizer)3 JLabel (javax.swing.JLabel)3 JScrollPane (javax.swing.JScrollPane)3 JPasswordField (javax.swing.JPasswordField)2 Form (org.jivesoftware.smackx.xdata.Form)2 Font (java.awt.Font)1 KeyAdapter (java.awt.event.KeyAdapter)1 KeyEvent (java.awt.event.KeyEvent)1 Iterator (java.util.Iterator)1 SmackException (org.jivesoftware.smack.SmackException)1