001 /**
002 *
003 */
004 package edu.wisc.ssec.mcidasv.servermanager;
005
006 import java.awt.BorderLayout;
007 import java.awt.FlowLayout;
008 import java.awt.event.ActionListener;
009 import java.awt.event.ActionEvent;
010
011 import javax.swing.JButton;
012 import javax.swing.JCheckBox;
013 import javax.swing.JDialog;
014 import javax.swing.JLabel;
015 import javax.swing.JPanel;
016 import javax.swing.JTextField;
017 import javax.swing.SwingUtilities;
018 import javax.swing.border.EmptyBorder;
019 import javax.swing.event.DocumentListener;
020 import javax.swing.event.DocumentEvent;
021
022 import org.slf4j.Logger;
023 import org.slf4j.LoggerFactory;
024
025 import net.miginfocom.swing.MigLayout;
026
027 /**
028 *
029 *
030 */
031 public class ImportUrl extends JDialog implements ActionListener {
032
033 protected static final String CMD_DEFAULT_ACCOUNTING = "use_default_accounting";
034 protected static final String CMD_IMPORT = "import";
035 protected static final String CMD_CANCEL = "cancel";
036
037 private TabbedAddeManager serverManagerGui;
038 private EntryStore serverManager;
039
040 private static final Logger logger = LoggerFactory.getLogger(ImportUrl.class);
041
042 private JLabel userLabel;
043 private JLabel projLabel;
044 private JCheckBox acctBox;
045 private JTextField mctableField;
046 private JTextField userField;
047 private JTextField projField;
048 private JButton okButton;
049 private JButton cancelButton;
050
051 private final JPanel contentPanel = new JPanel();
052
053
054 /**
055 * Create the dialog.
056 */
057 public ImportUrl() {
058 initComponents();
059 }
060
061 public ImportUrl(final EntryStore serverManager, final TabbedAddeManager serverManagerGui) {
062 this.serverManager = serverManager;
063 this.serverManagerGui = serverManagerGui;
064 initComponents();
065 }
066
067 public void initComponents() {
068 setTitle("Import from URL");
069 setBounds(100, 100, 450, 215);
070 getContentPane().setLayout(new BorderLayout());
071 contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
072 getContentPane().add(contentPanel, BorderLayout.CENTER);
073 contentPanel.setLayout(new MigLayout("", "[][grow]", "[][][][]"));
074
075 JLabel mctableLabel = new JLabel("MCTABLE.TXT URL:");
076 contentPanel.add(mctableLabel, "cell 0 0,alignx trailing");
077
078 mctableField = new JTextField();
079 contentPanel.add(mctableField, "cell 1 0,growx");
080 mctableField.getDocument().addDocumentListener(new DocumentListener() {
081 public void changedUpdate(final DocumentEvent e) {
082 int len = mctableField.getText().trim().length();
083 // okButton.setEnabled(mctableField.getText().trim().length() > 0);
084 okButton.setEnabled(len > 0);
085 logger.trace("len={}", len);
086 }
087 public void insertUpdate(final DocumentEvent e) {}
088 public void removeUpdate(final DocumentEvent e) {}
089 });
090
091 acctBox = new JCheckBox("Use default accounting?");
092 acctBox.addActionListener(new ActionListener() {
093 public void actionPerformed(ActionEvent e) {
094 boolean selected = acctBox.isSelected();
095 userLabel.setEnabled(!selected);
096 userField.setEnabled(!selected);
097 projLabel.setEnabled(!selected);
098 projField.setEnabled(!selected);
099 }
100 });
101 acctBox.setSelected(true);
102 contentPanel.add(acctBox, "cell 1 1");
103
104 userLabel = new JLabel("Username:");
105 userLabel.setEnabled(!acctBox.isSelected());
106 contentPanel.add(userLabel, "cell 0 2,alignx trailing");
107
108 userField = new JTextField();
109 contentPanel.add(userField, "cell 1 2,growx");
110 userField.setColumns(4);
111 userField.setEnabled(!acctBox.isSelected());
112
113 projLabel = new JLabel("Project #:");
114 projLabel.setEnabled(!acctBox.isSelected());
115 contentPanel.add(projLabel, "cell 0 3,alignx trailing");
116
117 projField = new JTextField();
118 contentPanel.add(projField, "cell 1 3,growx");
119 projField.setColumns(4);
120 projField.setEnabled(!acctBox.isSelected());
121
122 {
123 JPanel buttonPane = new JPanel();
124 buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
125 getContentPane().add(buttonPane, BorderLayout.SOUTH);
126 {
127 okButton = new JButton("Import MCTABLE.TXT");
128 okButton.setActionCommand(CMD_IMPORT);
129 okButton.addActionListener(this);
130 buttonPane.add(okButton);
131 // getRootPane().setDefaultButton(okButton);
132 }
133 {
134 cancelButton = new JButton("Cancel");
135 cancelButton.setActionCommand(CMD_CANCEL);
136 cancelButton.addActionListener(this);
137 buttonPane.add(cancelButton);
138 }
139 }
140
141 }
142
143
144
145 public void actionPerformed(final ActionEvent e) {
146 String cmd = e.getActionCommand();
147 if (CMD_CANCEL.equals(cmd)) {
148 dispose();
149 } else if (CMD_IMPORT.equals(cmd)) {
150
151 String path = mctableField.getText().trim();
152 String user = AddeEntry.DEFAULT_ACCOUNT.getUsername();
153 String proj = AddeEntry.DEFAULT_ACCOUNT.getProject();
154 if (!acctBox.isSelected()) {
155 user = userField.getText().trim();
156 proj = projField.getText().trim();
157 }
158 logger.trace("importing: path={} user={} proj={}", new Object[] { path, user, proj});
159 if (serverManagerGui != null) {
160 serverManagerGui.importMctable(path, user, proj);
161 }
162 dispose();
163 }
164 }
165
166 /**
167 * Launch the application.
168 */
169 public static void main(String[] args) {
170 SwingUtilities.invokeLater(new Runnable() {
171 public void run() {
172 try {
173 ImportUrl dialog = new ImportUrl();
174 dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
175 dialog.setVisible(true);
176 } catch (Exception e) {
177 e.printStackTrace();
178 }
179 }
180 });
181
182 }
183 }