📄 bsformdialog.java
字号:
return;
}
// Reset the JOptionPane's value.
// If you don't do this, then if the user
// presses the same button next time, no
// property change event will be fired.
optionPane.setValue(JOptionPane.UNINITIALIZED_VALUE);
if (value.equals(okButton)) {
//resultXData = xData.getCopy();
XDataBuilder xdBuilder = new XDataBuilder();
xdBuilder.setType("submit");
XDataFieldBuilder xdFieldBuilder = new XDataFieldBuilder();
Enumeration fieldEnum = xData.fields();
while (fieldEnum.hasMoreElements()) {
XDataField f = (XDataField) fieldEnum.nextElement();
xdFieldBuilder.reset();
if ("hidden".equals(f.getType())) {
xdFieldBuilder.setVar(f.getVar());
Enumeration vals = f.values();
while (vals != null && vals.hasMoreElements())
xdFieldBuilder.addValue((String)vals.nextElement());
try { xdBuilder.addField(new XDataField(xdFieldBuilder)); }
catch (InstantiationException e2) {
return;
}
}
else if ("text-multi".equals(f.getType())) {
xdFieldBuilder.setVar(f.getVar());
JTextArea txtArea = (JTextArea) textFields.get(f.getVar());
if (txtArea == null) return;
String valStr = txtArea.getText();
int lastIndex = 0, index = 0;
while (-1 != (index = valStr.indexOf('\n', lastIndex))) {
String tmpStr = valStr.substring(lastIndex, index);
xdFieldBuilder.addValue(tmpStr);
lastIndex = index + 1;
}
xdFieldBuilder.addValue(valStr.substring(lastIndex));
try { xdBuilder.addField(new XDataField(xdFieldBuilder)); }
catch (InstantiationException e3) {
return;
}
}
else if ("list-single".equals(f.getType())) {
xdFieldBuilder.setVar(f.getVar());
Enumeration options = f.options();
Hashtable optionsHash = new Hashtable();
while (options != null && options.hasMoreElements()) {
XDataFieldOption xdfo = (XDataFieldOption)options.nextElement();
String valueStr = xdfo.getValue();
if (valueStr == null || valueStr.equals(""))
valueStr = xdfo.getData();
String labelStr = xdfo.getLabel();
if (labelStr == null || labelStr.equals(""))
labelStr = valueStr;
optionsHash.put(labelStr, valueStr);
}
JComboBox comboBox = (JComboBox) textFields.get(f.getVar());
if (comboBox == null) return;
String labelStr = (String) comboBox.getSelectedItem();
if (labelStr == null) return;
xdFieldBuilder.addValue((String)optionsHash.get(labelStr));
try { xdBuilder.addField(new XDataField(xdFieldBuilder)); }
catch (InstantiationException e4) {
return;
}
}
else if ("list-multi".equals(f.getType())) {
xdFieldBuilder.setVar(f.getVar());
Enumeration options = f.options();
Hashtable optionsHash = new Hashtable();
while (options != null && options.hasMoreElements()) {
XDataFieldOption xdfo = (XDataFieldOption)options.nextElement();
String labelStr = xdfo.getLabel();
if (labelStr == null || labelStr.equals(""))
labelStr = xdfo.getValue();
optionsHash.put(labelStr, xdfo.getValue());
}
JList list = (JList) textFields.get(f.getVar());
if (list == null) return;
Object[] selectedLabels = list.getSelectedValues();
ListModel model = list.getModel();
for (int i=0; i<selectedLabels.length; i++)
xdFieldBuilder.addValue((String)optionsHash.get((String)selectedLabels[i]));
try { xdBuilder.addField(new XDataField(xdFieldBuilder)); }
catch (InstantiationException e4) {
return;
}
}
else if ("boolean".equals(f.getType())) {
xdFieldBuilder.setVar(f.getVar());
JCheckBox checkBox = (JCheckBox) textFields.get(f.getVar());
if (checkBox == null) return;
xdFieldBuilder.addValue(checkBox.isSelected()? "1" : "0");
try { xdBuilder.addField(new XDataField(xdFieldBuilder)); }
catch (InstantiationException e4) {
return;
}
}
else if ("fixed".equals(f.getType())) {
}
else if ("jid-single".equals(f.getType())) {
xdFieldBuilder.setVar(f.getVar());
JTextField txtField = (JTextField) textFields.get(f.getVar());
if (txtField == null) return;
JID jid = new JID(txtField.getText());
if (jid == null) return;
xdFieldBuilder.addValue(jid.toString());
try { xdBuilder.addField(new XDataField(xdFieldBuilder)); }
catch (InstantiationException e4) {
return;
}
}
else if ("jid-multi".equals(f.getType())) {
xdFieldBuilder.setVar(f.getVar());
JList list = (JList) textFields.get(f.getVar());
if (list == null) return;
Enumeration jidEnum = ((DefaultListModel)list.getModel()).elements();
while (jidEnum != null && jidEnum.hasMoreElements())
xdFieldBuilder.addValue(jidEnum.nextElement().toString());
try { xdBuilder.addField(new XDataField(xdFieldBuilder)); }
catch (InstantiationException e4) {
return;
}
}
// else takes it as text-single
else { //if ("text-single".equals(f.getType()) || "text-private".equals(f.getType())) {
xdFieldBuilder.setVar(f.getVar());
JTextField txtField = (JTextField) textFields.get(f.getVar());
if (txtField == null) return;
xdFieldBuilder.addValue(txtField.getText());
try { xdBuilder.addField(new XDataField(xdFieldBuilder)); }
catch (InstantiationException e4) {
return;
}
}
}
try { resultXData = new XData(xdBuilder); }
catch (InstantiationException e4) {
return;
}
setVisible(false);
}
else if (value.equals(cancelButton)) {
XDataBuilder xdBuilder = new XDataBuilder();
xdBuilder.setType("cancel");
try { resultXData = new XData(xdBuilder); }
catch (InstantiationException e4) {
return;
}
setVisible(false);
}
}
}
});
}
protected void addJIDMulti(XDataField f,
Hashtable textFields, Vector fields,
BSRosterBean _rosterBean) {
final BSRosterBean rosterBean = _rosterBean;
GridBagConstraints gridBagConstraints;
JPanel panel = new JPanel(new GridBagLayout());
final JList recipientList = new JList(new DefaultListModel());
recipientList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
recipientList.setVisibleRowCount(3);
JScrollPane recipientScrollPane = new JScrollPane(recipientList);
gridBagConstraints = new GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridheight = 3;
gridBagConstraints.weightx = 1;
gridBagConstraints.weighty = 0.1;
gridBagConstraints.fill = GridBagConstraints.BOTH;
panel.add(recipientScrollPane, gridBagConstraints);
JButton addJIDButton = new JButton("Add JID");
gridBagConstraints = new GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 1;
gridBagConstraints.weighty = 0.1;
gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
panel.add(addJIDButton, gridBagConstraints);
addJIDButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Enumeration jids = (rosterBean != null)? rosterBean.entries():
new Vector().elements();
BSChooseJIDDialog dlg = new BSChooseJIDDialog(frame, "Add JID", jids);
dlg.show();
if (dlg.jid != null)
addJIDIntoList(dlg.jid, recipientList);
}
});
JButton addGroupButton = new JButton("Add group");
gridBagConstraints = new GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 2;
gridBagConstraints.weighty = 0.1;
gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
panel.add(addGroupButton, gridBagConstraints);
addGroupButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Iterator groups = (rosterBean != null)? rosterBean.getGroups():
new TreeSet().iterator();
BSChooseGroupDialog dlg = new BSChooseGroupDialog(frame, "Add group", groups);
dlg.show();
if (dlg.group != null)
addGroupIntoList(dlg.group, recipientList, rosterBean);
}
});
JButton removeJIDsButton = new JButton("Remove");
gridBagConstraints = new GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 3;
gridBagConstraints.weighty = 0.1;
gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
panel.add(removeJIDsButton, gridBagConstraints);
removeJIDsButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
DefaultListModel lm = (DefaultListModel) recipientList.getModel();
Object[] delJids = recipientList.getSelectedValues();
for (int i=0; i<delJids.length; i++)
lm.removeElement(delJids[i]);
recipientList.clearSelection();
recipientList.revalidate();
}
});
Enumeration vals = f.values();
while (vals != null && vals.hasMoreElements()) {
JID jid = new JID((String)vals.nextElement());
if (jid != null)
addJIDIntoList(jid, recipientList);
}
if (f.getDesc() != null)
recipientList.setToolTipText(f.getDesc());
fields.addElement(panel);
textFields.put(f.getVar(), recipientList);
}
/** Adds jid into list */
public void addJIDIntoList(JID jid, JList list) {
DefaultListModel lm = (DefaultListModel)list.getModel();
if (!lm.contains(jid)) {
lm.addElement(jid);
list.revalidate();
}
}
/** Adds group into list */
public void addGroupIntoList(String group, JList list,
BSRosterBean rosterBean) {
if (rosterBean == null) return;
Enumeration jidEnum = rosterBean.getJIDsInGroup(group);
addJIDsIntoList(jidEnum, list);
}
/** Adds all jids from jidList into list */
public void addJIDsIntoList(Enumeration jidList, JList list) {
DefaultListModel lm = (DefaultListModel)list.getModel();
// for all from jidList
while (jidList.hasMoreElements()) {
JID jid = (JID) jidList.nextElement();
if (!lm.contains(jid)) {
lm.addElement(jid);
}
}
list.revalidate();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -