KickJava   Java API By Example, From Geeks To Geeks.

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


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

5 package org.terracotta.dso.wizards;
6
7 import org.eclipse.core.resources.IFolder;
8 import org.eclipse.core.resources.IResource;
9 import org.eclipse.jdt.core.IJavaProject;
10 import org.eclipse.jface.wizard.WizardPage;
11 import org.eclipse.swt.SWT;
12 import org.eclipse.swt.events.SelectionAdapter;
13 import org.eclipse.swt.events.SelectionEvent;
14 import org.eclipse.swt.layout.GridData;
15 import org.eclipse.swt.layout.GridLayout;
16 import org.eclipse.swt.widgets.Button;
17 import org.eclipse.swt.widgets.Composite;
18 import org.eclipse.swt.widgets.Display;
19 import org.eclipse.swt.widgets.Group;
20 import org.eclipse.swt.widgets.Text;
21 import org.terracotta.dso.TcPlugin;
22 import org.terracotta.dso.editors.chooser.ProjectFileNavigator;
23
24 import java.awt.event.ActionEvent JavaDoc;
25 import java.awt.event.ActionListener JavaDoc;
26
27 import javax.swing.SwingUtilities JavaDoc;
28
29 public class SetupWizardPage extends WizardPage {
30   private final Display m_display;
31   private IJavaProject m_javaProject;
32   private Text m_configPathField;
33   private Button m_configFileButton;
34   private ProjectFileNavigator m_fileNavigator;
35   private Text m_serverOptionsField;
36   private Button m_resetOptionsButton;
37
38   private static final String JavaDoc PAGE_NAME = "TCSetupWizardPage";
39
40   private static final String JavaDoc PAGE_TITLE = "Terracotta Project Setup";
41
42   private static final String JavaDoc PAGE_DESC = "Specify the location of your Terracotta domain configuration file and\n"
43                                                            + "Terracotta server Java runtime options";
44
45   private static final String JavaDoc DEFAULT_CONFIG_FILENAME = TcPlugin.DEFAULT_CONFIG_FILENAME;
46   private static final String JavaDoc DEFAULT_SERVER_OPTIONS = TcPlugin.DEFAULT_SERVER_OPTIONS;
47
48   public SetupWizardPage(IJavaProject project) {
49     super(PAGE_NAME);
50
51     m_display = Display.getCurrent();
52     m_javaProject = project;
53
54     setTitle(PAGE_TITLE);
55     setDescription(PAGE_DESC);
56   }
57
58   public void createControl(Composite parent) {
59     final Composite topComp = new Composite(parent, SWT.NONE);
60     GridLayout gridLayout = new GridLayout();
61     gridLayout.numColumns = 1;
62     gridLayout.makeColumnsEqualWidth = false;
63     topComp.setLayout(gridLayout);
64     topComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
65
66     Group domainConfig = new Group(topComp, SWT.SHADOW_ETCHED_IN);
67     domainConfig.setText("Domain Configuration");
68     gridLayout = new GridLayout();
69     gridLayout.numColumns = 2;
70     domainConfig.setLayout(gridLayout);
71     domainConfig.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
72
73     m_configPathField = new Text(domainConfig, SWT.SINGLE | SWT.BORDER);
74     m_configPathField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
75     m_configPathField.setText(DEFAULT_CONFIG_FILENAME);
76
77     m_configFileButton = new Button(domainConfig, SWT.PUSH);
78     m_configFileButton.setText(" Browse... ");
79     m_configFileButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
80     m_configFileButton.addSelectionListener(new SelectionAdapter() {
81       public void widgetSelected(SelectionEvent e) {
82         if (m_fileNavigator == null) {
83           m_fileNavigator = new ProjectFileNavigator(null, "xml");
84           m_fileNavigator.setActionListener(new NavigatorListener());
85         }
86         m_fileNavigator.init(m_javaProject.getProject());
87         m_fileNavigator.center();
88         m_display.asyncExec(new Runnable JavaDoc() {
89           public void run() {
90             m_fileNavigator.setVisible(true);
91             m_fileNavigator.toFront();
92             m_fileNavigator.setAlwaysOnTop(true);
93           }
94         });
95       }
96     });
97     Group serverOptions = new Group(topComp, SWT.SHADOW_ETCHED_IN);
98     serverOptions.setText("Server Options");
99     gridLayout = new GridLayout();
100     gridLayout.numColumns = 2;
101     serverOptions.setLayout(gridLayout);
102     GridData gridData = new GridData();
103     gridData.horizontalAlignment = GridData.FILL;
104     gridData.heightHint = 60;
105     serverOptions.setLayoutData(gridData);
106
107     m_serverOptionsField = new Text(serverOptions, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL);
108     GridData gd = new GridData(GridData.FILL_BOTH);
109     m_serverOptionsField.setLayoutData(gd);
110     m_serverOptionsField.setText(DEFAULT_SERVER_OPTIONS);
111
112     m_resetOptionsButton = new Button(serverOptions, SWT.PUSH);
113     m_resetOptionsButton.setText(" Reset ");
114     m_resetOptionsButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.VERTICAL_ALIGN_BEGINNING));
115     m_resetOptionsButton.addSelectionListener(new SelectionAdapter() {
116       public void widgetSelected(SelectionEvent e) {
117         m_serverOptionsField.setText(DEFAULT_SERVER_OPTIONS);
118       }
119     });
120     setControl(topComp);
121   }
122
123   class NavigatorListener implements ActionListener JavaDoc {
124     public void actionPerformed(ActionEvent JavaDoc e) {
125       SwingUtilities.invokeLater(new Runnable JavaDoc() {
126         public void run() {
127           IResource member = m_fileNavigator.getSelectedMember();
128           if (member != null) {
129             if (member instanceof IFolder) {
130               member = ((IFolder) member).getFile(DEFAULT_CONFIG_FILENAME);
131             }
132             final IResource finalMember = member;
133             m_display.asyncExec(new Runnable JavaDoc() {
134               public void run() {
135                 m_configPathField.setText(finalMember.getProjectRelativePath().toString());
136               }
137             });
138           }
139         }
140       });
141     }
142   }
143
144   public boolean isPageComplete() {
145     return true;
146   }
147
148   public boolean canFinish() {
149     return isPageComplete();
150   }
151
152   public String JavaDoc getDomainConfigurationPath() {
153     return m_configPathField.getText();
154   }
155
156   public String JavaDoc getServerOptions() {
157     return m_serverOptionsField.getText();
158   }
159 }
160
Popular Tags