package de.tud.socom.client.gui.components;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JCheckBox;
import javax.swing.JList;
import javax.swing.JSpinner;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class InfluenceComponentPanel extends ComponentPanel {
private static final String FETCH_RESULT = "fetchResult";
private static final String STOP_INFLUENCE = "stopInfluence";
private static final String ADD_PREDEFINED_ANSWER_WITH_DATA = "addPredefinedAnswerWithData";
private static final String ADD_PREDEFINED_ANSWER = "addPredefinedAnswer";
private static final String REMOVE_PREDEFINED_ANSWER = "removePredefinedAnswer";
private static final String START_INFLUENCE = "startInfluence";
private static final String PREPARE_INFLUENCE = "createInfluence";
private static final String PREPARE_INFLUENCE_FROM_TEMPLATE = "createInfluence (Template)";
private static final String PREPARE_INFLUENCE_TEMPLATE = "createInfluenceTemplate";
/**
* Create the panel.
*/
public InfluenceComponentPanel() {
updatePanel(PREPARE_INFLUENCE);
}
@Override
protected JList getJList() {
return new JList(new String[] { PREPARE_INFLUENCE, PREPARE_INFLUENCE_FROM_TEMPLATE, PREPARE_INFLUENCE_TEMPLATE, START_INFLUENCE, ADD_PREDEFINED_ANSWER, ADD_PREDEFINED_ANSWER_WITH_DATA, REMOVE_PREDEFINED_ANSWER, STOP_INFLUENCE,
FETCH_RESULT, });
}
@Override
protected void updatePanel(Object item) {
setAdditionalParameterCount(0);
String methodString = (String) item;
if (methodString.equals(PREPARE_INFLUENCE)) {
setAdditionalParameterCount(5);
addComboParameter("visibility", "0", "1", "2", "3", "4");
addStringParameter("question", null);
final JTextField typefield = addStringParameter("type", null);
addOptionalIntegerParameter("minchoices");
addOptionalIntegerParameter("maxchoices");
addOptionalStringParameter("contextid");
addBooleanParameterList("allowfreeanswers");
addOptionalBooleanParameter("freeanswersvotable");
final JSpinner maxL = addIntegerParameter("maxlines");
final JSpinner maxD = addIntegerParameter("maxdigits");
final JCheckBox maxB = addOptionalIntegerParameter("maxbytes");
maxL.setEnabled(false);
maxD.setEnabled(false);
maxB.setEnabled(true);
typefield.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent arg0) {
}
@Override
public void keyReleased(KeyEvent arg0) {
if (typefield.getText().equalsIgnoreCase("text")) {
maxL.setEnabled(true);
maxD.setEnabled(true);
maxB.setEnabled(false);
maxB.setSelected(false);
} else {
maxL.setEnabled(false);
maxD.setEnabled(false);
maxB.setEnabled(true);
}
}
@Override
public void keyPressed(KeyEvent arg0) {
}
});
} else if (methodString.equals(PREPARE_INFLUENCE_FROM_TEMPLATE)) {
addStringParameter("templateid", null);
} else if (methodString.equals(PREPARE_INFLUENCE_TEMPLATE) ){
setAdditionalParameterCount(5);
addComboParameter("visibility", "0", "1", "2", "3", "4");
addStringParameter("question", null);
final JTextField typefield = addStringParameter("type", null);
addOptionalIntegerParameter("minchoices");
addOptionalIntegerParameter("maxchoices");
addOptionalStringParameter("contextid");
addBooleanParameterList("allowfreeanswers");
addOptionalBooleanParameter("freeanswersvotable");
final JSpinner maxL = addIntegerParameter("maxlines");
final JSpinner maxD = addIntegerParameter("maxdigits");
final JCheckBox maxB = addOptionalIntegerParameter("maxbytes");
maxL.setEnabled(false);
maxD.setEnabled(false);
maxB.setEnabled(true);
typefield.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent arg0) {
}
@Override
public void keyReleased(KeyEvent arg0) {
if (typefield.getText().equalsIgnoreCase("text")) {
maxL.setEnabled(true);
maxD.setEnabled(true);
maxB.setEnabled(false);
maxB.setSelected(false);
} else {
maxL.setEnabled(false);
maxD.setEnabled(false);
maxB.setEnabled(true);
}
}
@Override
public void keyPressed(KeyEvent arg0) {
}
});
} else if (methodString.equals(START_INFLUENCE)) {
addStringParameter("id", null);
addIntegerParameter("time");
} else if (methodString.equals(ADD_PREDEFINED_ANSWER)) {
addStringParameter("id", null);
addStringParameter("answer", null);
} else if (methodString.equals(ADD_PREDEFINED_ANSWER_WITH_DATA)) {
activatePost();
setAdditionalParameterCount(1);
addStringParameterList("id", "answer", "fileextension");
addFileChooserParameter("Select Predefined Data");
} else if (methodString.equals(REMOVE_PREDEFINED_ANSWER)) {
addStringParameter("influenceid", null);
addStringParameter("answerid", null);
} else if (methodString.equals(STOP_INFLUENCE)) {
addStringParameter("id", null);
} else if (methodString.equals(FETCH_RESULT)) {
addStringParameter("id", null);
}
refresh();
}
@Override
protected String getComponent() {
return "influence";
}
}