Package jimm.datavision.gui

Source Code of jimm.datavision.gui.AskStringDialog

package jimm.datavision.gui;
import jimm.util.I18N;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;

/**
* A modal dialog used to ask the user for a simple string like a
* formula or parameter name.
*
* @author Jim Menard, <a href="mailto:jimm@io.com">jimm@io.com</a>
*/
public class AskStringDialog extends JDialog implements ActionListener {

protected static final int TEXT_FIELD_COLUMNS = 24;

protected String string;
protected JTextField stringField;

/**
* Constructor.
*
* @param frame parent frame
* @param title window title
* @param label string field label
*/
public AskStringDialog(java.awt.Frame frame, String title, String label) {
    this(frame, title, label, "");
}

/**
* Constructor.
*
* @param frame parent frame
* @param title window title
* @param label string field label
* @param initialString initial string value
*/
public AskStringDialog(java.awt.Frame frame, String title, String label,
           String initialString) {
    super((java.awt.Frame)null, title, true); // Modal
    buildWindow(title, label, initialString);
    pack();
    setVisible(true);
}

/**
* Returns string (or <code>null</code> if user hit Cancel).
*
* @return string (or <code>null</code> if user cancelled)
*/
public String getString() { return string; }

/**
* Builds window GUI.
*
* @param title window title
* @param labelString string field label
* @param initialString initial value of string
*/
protected void buildWindow(String title, String labelString,
         String initialString)
{
    getContentPane().setLayout(new BorderLayout());

    EditFieldLayout efl = new EditFieldLayout();
    stringField =
  efl.addTextField(labelString, initialString, TEXT_FIELD_COLUMNS);

    // OK and Cancel buttons
    JPanel buttonPanel = new JPanel();
    JButton button;

    buttonPanel.add(button = new JButton(I18N.get("GUI.ok")));
    button.addActionListener(this);
    button.setDefaultCapable(true);
    getRootPane().setDefaultButton(button);

    buttonPanel.add(button = new JButton(I18N.get("GUI.cancel")));
    button.addActionListener(this);

    getContentPane().add(efl.getPanel(), BorderLayout.CENTER);
    getContentPane().add(buttonPanel, BorderLayout.SOUTH);

    addWindowListener(new WindowAdapter() {
  public void windowClosing(WindowEvent e) {
      dispose();
  }
  });

    new FocusSetter(stringField);
}

/**
* Handles the buttons.
*
* @param e action event
*/
public void actionPerformed(ActionEvent e) {
    String cmd = e.getActionCommand();
    if (I18N.get("GUI.ok").equals(cmd)) {
  string = new String(stringField.getText());
  dispose();
    }
    else if (I18N.get("GUI.cancel").equals(cmd)) {
  dispose();
    }
}

}
TOP

Related Classes of jimm.datavision.gui.AskStringDialog

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.