package de.memtext.widgets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JPanel; /** * A selection panel. * On the left some text, then a textfield for the selection and right of * it a button with ... or some text which opens a selection dialog. * The selected object get be requested with getSelectedObject * */ public abstract class LabeledSelectionPanel extends JPanel implements ActionListener { private JButton btn; //private LabeledTextField fileField=new LabeledTextField(Localizer.get("file")); private LabeledTextField infoField; private Object selectedObject; public LabeledSelectionPanel(String infoText) { infoField = new LabeledTextField(infoText, ""); infoField.setEditable(false); this.add(infoField); btn = new JButton("auswählen"); this.add(btn); btn.addActionListener(this); } /** * subclasses must override to show dlg and call * setSelectedObject,setInfoText afterwards * */ public abstract void actionPerformed(ActionEvent ae); //throw new UnsupportedOperationException("see doc"); } public void setInfoText(Object txt) { infoField.setValue(txt); } public void setSelectedObject(Object sel) { selectedObject = sel; if (sel == null) infoField.setValue("nichts gewählt"); else infoField.setValue(sel); } public Object getSelectedObject() { return selectedObject; } public void setEnabled(boolean b) { infoField.setEnabled(b); btn.setEnabled(b); } public void setEditable(boolean b) { infoField.setEditable(b); } public void makeTextBoxUnselectable() { infoField.makeUnselectable(); } }