package net.sf.taverna.t2.activities.xpath.ui.config; | |
import java.awt.GridBagConstraints; | |
import java.awt.GridBagLayout; | |
import java.awt.Insets; | |
import javax.swing.BorderFactory; | |
import javax.swing.JLabel; | |
import javax.swing.JPanel; | |
import javax.swing.JTextField; | |
/** | |
* Auxiliary class that creates a JPanel with two labels and two text fields. | |
* | |
* It can be used to be placed into a dialog made by JOptionPane to get two | |
* input values, not just one. | |
* | |
* @author Sergejs Aleksejevs | |
*/ | |
public class TwoFieldQueryPanel extends JPanel { | |
private JTextField tfFirstValue; | |
private JTextField tfSecondValue; | |
public TwoFieldQueryPanel(String firstFieldName, String secondFieldName) { | |
this(null, firstFieldName, null, secondFieldName, null); | |
} | |
public TwoFieldQueryPanel(String message, String firstFieldName, | |
String secondFieldName) { | |
this(message, firstFieldName, null, secondFieldName, null); | |
} | |
public TwoFieldQueryPanel(String firstFieldName, | |
String firstFieldDefaultValue, String secondFieldName, | |
String secondFieldDefaultValue) { | |
this(null, firstFieldName, firstFieldDefaultValue, secondFieldName, | |
secondFieldDefaultValue); | |
} | |
public TwoFieldQueryPanel(String message, String firstFieldName, | |
String firstFieldDefaultValue, String secondFieldName, | |
String secondFieldDefaultValue) { | |
super(); | |
this.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); | |
this.setLayout(new GridBagLayout()); | |
GridBagConstraints c = new GridBagConstraints(); | |
c.gridx = 0; | |
c.gridy = 0; | |
c.weightx = 0; | |
c.fill = GridBagConstraints.HORIZONTAL; | |
c.anchor = GridBagConstraints.WEST; | |
c.insets = new Insets(3, 5, 3, 5); | |
if (message != null && message.length() > 0) { | |
c.gridwidth = 2; | |
c.insets = new Insets(5, 5, 15, 5); | |
this.add(new JLabel(message), c); | |
c.gridwidth = 1; | |
c.gridx = 0; | |
c.gridy++; | |
c.insets = new Insets(3, 5, 3, 5); | |
} | |
this.add(new JLabel(firstFieldName), c); | |
c.gridx++; | |
c.weightx = 1.0; | |
tfFirstValue = new JTextField(20); | |
if (firstFieldDefaultValue != null) { | |
tfFirstValue.setText(firstFieldDefaultValue); | |
} | |
tfFirstValue.selectAll(); | |
tfFirstValue.requestFocusInWindow(); | |
this.add(tfFirstValue, c); | |
c.gridx = 0; | |
c.gridy++; | |
c.weightx = 0; | |
this.add(new JLabel(secondFieldName), c); | |
c.gridx++; | |
c.weightx = 1.0; | |
tfSecondValue = new JTextField(20); | |
if (secondFieldDefaultValue != null) { | |
tfSecondValue.setText(secondFieldDefaultValue); | |
} | |
tfSecondValue.selectAll(); | |
this.add(tfSecondValue, c); | |
} | |
/** | |
* @return Trimmed value from the first text field. Guaranteed to be | |
* non-null. | |
*/ | |
public String getFirstValue() { | |
return (tfFirstValue.getText().trim()); | |
} | |
/** | |
* @return Trimmed value from the second text field. Guaranteed to be | |
* non-null. | |
*/ | |
public String getSecondValue() { | |
return (tfSecondValue.getText().trim()); | |
} | |
} |