KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > terracotta > dso > wizards > InstallWizardPage


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

4 package org.terracotta.dso.wizards;
5
6 import java.awt.Frame JavaDoc;
7 import java.awt.event.ActionEvent JavaDoc;
8 import java.awt.event.ActionListener JavaDoc;
9 import java.io.File JavaDoc;
10
11 import javax.swing.JFileChooser JavaDoc;
12
13 import org.eclipse.jface.wizard.WizardPage;
14 import org.eclipse.swt.SWT;
15 import org.eclipse.swt.awt.SWT_AWT;
16 import org.eclipse.swt.widgets.Composite;
17
18 import org.dijon.Button;
19 import org.dijon.Container;
20 import org.dijon.DictionaryResource;
21 import org.dijon.TextField;
22
23 import org.terracotta.dso.TcPlugin;
24
25 /**
26  * This is not currently being used but if we decide the plugin needs to support
27  * an external release package, as opposed to the release BEING the plugin, we
28  * would need this.
29  */

30
31 public class InstallWizardPage extends WizardPage {
32   private Frame JavaDoc m_frame;
33   private TextField m_installDirField;
34   private Button m_browseButton;
35   
36   private static final String JavaDoc PAGE_NAME = "TerracottaInstallDirectoryWizardPage";
37   private static final String JavaDoc PAGE_TITLE = "Specify Terracotta Installation Directory";
38   private static final String JavaDoc PAGE_DESC = "Please specify the location of your Terracotta installation.";
39   
40   public InstallWizardPage() {
41     super(PAGE_NAME);
42     
43     setTitle(PAGE_TITLE);
44     setDescription(PAGE_DESC);
45   }
46
47   public void createControl(Composite parent) {
48     DictionaryResource topRes = TcPlugin.getDefault().getResources();
49     Container panel = (Container)topRes.resolve("PropertyPanel");
50     Composite composite = new Composite(parent, SWT.EMBEDDED);
51
52     m_frame = SWT_AWT.new_Frame(composite);
53     m_frame.add(panel);
54     
55     m_installDirField = (TextField)panel.findComponent("TCInstallDirField");
56     m_installDirField.addActionListener(new ActionListener JavaDoc() {
57       public void actionPerformed(ActionEvent JavaDoc ae) {
58         final File JavaDoc file = new File JavaDoc(m_installDirField.getText());
59         
60         getShell().getDisplay().asyncExec(new Runnable JavaDoc() {
61           public void run() {
62             String JavaDoc err = null;
63             
64             if(!file.exists()) {
65               err = "Directory does not exist.";
66             }
67
68             setErrorMessage(err);
69           
70             getContainer().updateMessage();
71             getContainer().updateButtons();
72           }
73         });
74       }
75     });
76     
77     m_browseButton = (Button)panel.findComponent("BrowseButton");
78     m_browseButton.addActionListener(new ActionListener JavaDoc() {
79       public void actionPerformed(ActionEvent JavaDoc ae) {
80         String JavaDoc title = "Browse for Terracotta installation";
81         JFileChooser JavaDoc chooser = new JFileChooser JavaDoc();
82         
83         chooser.setDialogTitle(title);
84         chooser.setCurrentDirectory(new File JavaDoc(m_installDirField.getText()));
85         chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
86         
87         int returnVal = chooser.showOpenDialog(m_frame);
88         if(returnVal == JFileChooser.APPROVE_OPTION) {
89           File JavaDoc f = chooser.getSelectedFile();
90           
91           m_installDirField.setText(f.getAbsolutePath());
92         }
93       
94         getShell().getDisplay().asyncExec(new Runnable JavaDoc() {
95           public void run() {
96             getContainer().updateMessage();
97             getContainer().updateButtons();
98           }
99         });
100       }
101     });
102     
103     setControl(composite);
104   }
105   
106   public boolean isPageComplete() {
107     File JavaDoc file = new File JavaDoc(m_installDirField.getText());
108     return file.exists() && file.isDirectory();
109   }
110   
111   public boolean canFinish() {
112     return isPageComplete();
113   }
114   
115   public String JavaDoc getInstallDir() {
116     return m_installDirField.getText();
117   }
118 }
119
Popular Tags