01: package com.opensymphony.workflow.designer.dialogs;
02:
03: import java.awt.*;
04: import java.awt.event.*;
05: import java.net.URL;
06: import java.net.MalformedURLException;
07: import java.io.File;
08: import javax.swing.*;
09:
10: import com.opensymphony.workflow.designer.ResourceManager;
11: import com.opensymphony.workflow.designer.UIFactory;
12: import com.opensymphony.workflow.designer.swing.FileField;
13: import com.jgoodies.forms.builder.DefaultFormBuilder;
14:
15: /**
16: * @author Hani Suleiman (hani@formicary.net)
17: * Date: Dec 25, 2003
18: * Time: 1:25:28 AM
19: */
20: public class ImportWorkflowDialog extends BaseDialog {
21: private JRadioButton web = new JRadioButton(ResourceManager
22: .getString("import.web.long"));
23: private JRadioButton file = new JRadioButton(ResourceManager
24: .getString("import.file.long"));
25: private FileField fileField = new FileField(
26: JFileChooser.FILES_AND_DIRECTORIES, false, ".xml",
27: ResourceManager.getString("descriptor.files"));
28: private JTextField webField = new JTextField();
29: private URL url;
30:
31: public ImportWorkflowDialog(Frame owner, String title, boolean modal)
32: throws HeadlessException {
33: super (owner, title, modal);
34: DefaultFormBuilder builder = UIFactory.getDialogBuilder(null,
35: getContentPane());
36: builder.append(web, webField);
37: webField.addFocusListener(new FocusAdapter() {
38: public void focusGained(FocusEvent e) {
39: web.setSelected(true);
40: }
41: });
42: builder.nextLine();
43: ButtonGroup group = new ButtonGroup();
44: group.add(web);
45: group.add(file);
46: builder.append(file, fileField);
47: fileField.getTextField().addFocusListener(new FocusAdapter() {
48: public void focusGained(FocusEvent e) {
49: file.setSelected(true);
50: }
51: });
52: fileField.addActionListener(new ActionListener() {
53: public void actionPerformed(ActionEvent e) {
54: file.setSelected(true);
55: }
56: });
57: }
58:
59: public void ok() {
60: if (web.isSelected()) {
61: try {
62: url = new URL(webField.getText());
63: super .ok();
64: return;
65: } catch (MalformedURLException e1) {
66: JOptionPane.showMessageDialog(this , ResourceManager
67: .getString("import.url.invalid",
68: new Object[] { e1.getMessage() }));
69: }
70: } else if (file.isSelected()) {
71: try {
72: File f = new File(fileField.getText());
73: if (!f.exists() || f.isDirectory()) {
74: JOptionPane.showMessageDialog(this , ResourceManager
75: .getString("import.url.file.invalid"));
76: return;
77: }
78: url = f.toURL();
79: super .ok();
80: return;
81: } catch (MalformedURLException e1) {
82: JOptionPane.showMessageDialog(this , ResourceManager
83: .getString("import.url.invalid",
84: new Object[] { e1.getMessage() }),
85: ResourceManager.getString("error"),
86: JOptionPane.ERROR_MESSAGE);
87: }
88: }
89: }
90:
91: public URL getImportURL() {
92: return url;
93: }
94: }
|