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();
}
}
}
});
}
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;
}
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);
}
}
}
Aggregations