1 package com.xaraya.wizard;
3 import org.eclipse.jface.viewers.IStructuredSelection;
4 import org.eclipse.jface.wizard.WizardPage;
5 import org.eclipse.swt.SWT;
6 import org.eclipse.swt.layout.GridData;
7 import org.eclipse.swt.layout.GridLayout;
8 import org.eclipse.swt.widgets.Button;
9 import org.eclipse.swt.widgets.Composite;
10 import org.eclipse.swt.widgets.Event;
11 import org.eclipse.swt.widgets.Group;
12 import org.eclipse.swt.widgets.Label;
13 import org.eclipse.swt.widgets.Listener;
14 import org.eclipse.swt.widgets.Text;
16 public class XarayaModuleFilePage extends WizardPage implements Listener
19 IStructuredSelection selection;
22 private Text modversionid;
23 private Text modversionversion;
24 private Text modversiondescription;
25 private Text modversionofficial;
26 private Text modversionauthor;
27 private Text modversioncontact;
28 private Text modversionsecurityschema;
29 private Text modversionclass;
30 private Text modversioncategory;
32 private Button officialButton;
33 private Button xarUserApi;
34 private Button xarUserGui;
35 private Button xarAdminApi;
36 private Button xarAdminGui;
38 public XarayaModuleFilePage(String argument) {
40 setTitle(XarayaModuleMessages.getString("Xaraya.label.module"));
41 setDescription(XarayaModuleMessages.getString("Xaraya.label.details"));
42 setPageComplete(false);
45 public void createControl(Composite parent) {
46 // create the composite to hold the widgets
48 Composite composite = new Composite(parent, SWT.NULL);
49 // create the desired layout for this wizard page
50 GridLayout gl = new GridLayout();
53 composite.setLayout(gl);
54 Group detailsgrp = new Group(composite, SWT.NULL);
55 detailsgrp.setText(XarayaModuleMessages.getString("Xaraya.label.detailsgrp")/*"Module details"*/);
56 detailsgrp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
57 detailsgrp.setLayout(new GridLayout());
59 new Label (detailsgrp, SWT.NONE).setText(XarayaModuleMessages.getString("Xaraya.label.modversionid")/*"modversionid"*/);
60 modversionid = new Text(detailsgrp, SWT.BORDER);
61 modversionid.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
62 modversionid.addListener(SWT.KeyUp, this);
63 modversionid.setFocus();
64 new Label (detailsgrp, SWT.NONE).setText(XarayaModuleMessages.getString("Xaraya.label.modversionversion")/*"modversionversion"*/);
65 modversionversion = new Text(detailsgrp, SWT.BORDER);
66 modversionversion.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
67 modversionversion.addListener(SWT.KeyUp, this);
68 new Label (detailsgrp, SWT.NONE).setText(XarayaModuleMessages.getString("Xaraya.label.modversionDescription")/*"modversionDescription"*/);
69 modversiondescription = new Text(detailsgrp, SWT.BORDER);
70 modversiondescription.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
71 modversiondescription.addListener(SWT.KeyUp, this);
72 // new Label (detailsgrp, SWT.NONE).setText(XarayaModuleMessages.getString("Xaraya.label.modversionofficial")/*"modversionofficial"*/);
73 // modversionofficial = new Text(detailsgrp, SWT.BORDER);
74 // modversionofficial.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
75 // modversionofficial.addListener(SWT.KeyUp, this);
76 new Label (detailsgrp, SWT.NONE).setText(XarayaModuleMessages.getString("Xaraya.label.modversionauthor")/*"modversionauthor"*/);
77 modversionauthor = new Text(detailsgrp, SWT.BORDER);
78 modversionauthor.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
79 modversionauthor.addListener(SWT.KeyUp, this);
80 new Label (detailsgrp, SWT.NONE).setText(XarayaModuleMessages.getString("Xaraya.label.modversioncontact")/*"modversioncontact"*/);
81 modversioncontact = new Text(detailsgrp, SWT.BORDER);
82 modversioncontact.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
83 modversioncontact.addListener(SWT.KeyUp, this);
84 new Label (detailsgrp, SWT.NONE).setText(XarayaModuleMessages.getString("Xaraya.label.modversionsecurityschema")/*"modversionsecurityschema"*/);
85 modversionsecurityschema = new Text(detailsgrp, SWT.BORDER);
86 modversionsecurityschema.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
87 modversionsecurityschema.addListener(SWT.KeyUp, this);
88 new Label (detailsgrp, SWT.NONE).setText(XarayaModuleMessages.getString("Xaraya.label.modversionclass")/*"modversionclass"*/);
89 modversionclass = new Text(detailsgrp, SWT.BORDER);
90 modversionclass.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
91 modversionclass.addListener(SWT.KeyUp, this);
92 new Label (detailsgrp, SWT.NONE).setText(XarayaModuleMessages.getString("Xaraya.label.modversioncategory")/*"modversioncategory"*/);
93 modversioncategory = new Text(detailsgrp, SWT.BORDER);
94 modversioncategory.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
95 modversioncategory.addListener(SWT.KeyUp, this);
97 Composite compo = new Composite(composite, SWT.NONE);
98 gl = new GridLayout();
100 gl.numColumns = ncol;
103 //Group officialgrp = new Group(composite, SWT.NONE);
104 Group officialgrp = new Group(compo, SWT.NONE);
105 officialgrp.setText(XarayaModuleMessages.getString("Xaraya.label.officialgrp")/*"Module details"*/);
106 officialgrp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
107 officialgrp.setLayout(new GridLayout());
109 officialButton = new Button(officialgrp, SWT.CHECK);
110 officialButton.setText(XarayaModuleMessages.getString("Xaraya.label.official"));
111 gd = new GridData(GridData.FILL_HORIZONTAL);
112 //gd.horizontalSpan = ncol;
113 officialButton.setLayoutData(gd);
114 officialButton.setSelection(false);
116 //Group autoGensgrp = new Group(composite, SWT.NONE);
117 Group autoGensgrp = new Group(compo, SWT.NONE);
118 autoGensgrp.setText(XarayaModuleMessages.getString("Xaraya.label.autoGensgrp"));
119 autoGensgrp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
120 autoGensgrp.setLayout(new GridLayout());
122 xarUserApi = new Button(autoGensgrp, SWT.CHECK);
123 xarUserApi.setText(XarayaModuleMessages.getString("Xaraya.label.xarUserApi"));
124 gd = new GridData(GridData.FILL_HORIZONTAL);
125 gd.horizontalSpan = ncol;
126 xarUserApi.setLayoutData(gd);
127 xarUserApi.setSelection(false);
128 xarUserGui = new Button(autoGensgrp, SWT.CHECK);
129 xarUserGui.setText(XarayaModuleMessages.getString("Xaraya.label.xarUserGui"));
130 gd = new GridData(GridData.FILL_HORIZONTAL);
131 gd.horizontalSpan = ncol;
132 xarUserGui.setLayoutData(gd);
133 xarUserGui.setSelection(false);
134 xarAdminApi = new Button(autoGensgrp, SWT.CHECK);
135 xarAdminApi.setText(XarayaModuleMessages.getString("Xaraya.label.xarAdminApi"));
136 gd = new GridData(GridData.FILL_HORIZONTAL);
137 gd.horizontalSpan = ncol;
138 xarAdminApi.setLayoutData(gd);
139 xarAdminApi.setSelection(false);
140 xarAdminGui = new Button(autoGensgrp, SWT.CHECK);
141 xarAdminGui.setText(XarayaModuleMessages.getString("Xaraya.label.xarAdminGui"));
142 gd = new GridData(GridData.FILL_HORIZONTAL);
143 gd.horizontalSpan = ncol;
144 xarAdminGui.setLayoutData(gd);
145 xarAdminGui.setSelection(false);
147 // set the composite as the control for this page
148 setControl(composite);
152 private void addListeners()
154 officialButton.addListener(SWT.Selection, this);
155 xarUserApi.addListener(SWT.Selection, this);
156 xarUserGui.addListener(SWT.Selection, this);
157 xarAdminApi.addListener(SWT.Selection, this);
158 xarAdminGui.addListener(SWT.Selection, this);
161 public void handleEvent(Event event) {
162 setPageComplete(validatePage());
165 // public boolean canFlipToNextPage()
167 // if (getErrorMessage() != null) return false;
168 // if (isPageComplete() && validatePage()) {
169 // saveDataToModel();
174 public boolean canFinish(){
175 if (isPageComplete() /*&& validatePage()*/) {
184 private boolean validateText(Text input){
185 String buf = input.getText();
187 && (buf.trim().length() >0)) return true;
190 public boolean isNumeric(Text input) {
191 //there is something in the field to check..
192 StringBuffer buf = new StringBuffer(input.getText());
193 for (int i=0; i < buf.length(); i++){
194 if (!( Character.isDigit(buf.charAt(i)) //is it a number
195 || (buf.charAt(i) == '.') //is it a decimal point
196 || (buf.charAt(i) == '_'))) //is it an under_score (incase of 1_2)
202 private boolean validatePage() {
203 StringBuffer buf = new StringBuffer();
204 if (!validateText(modversionid)) buf.append("Id field incomplete");
205 else if (!isNumeric(modversionid)) buf.append("Id field must be numeric");
206 else if (!validateText(modversionversion)) buf.append("Version field incomplete");
207 else if (!isNumeric(modversionversion)) buf.append("Version must be numeric");
208 else if (!validateText(modversiondescription)) buf.append("Description field incomplete");
209 else if (!validateText(modversionauthor)) buf.append("Author field incomplete");
210 else if (!validateText(modversioncontact)) buf.append("Contact field incomplete");
211 else if (!validateText(modversionsecurityschema)) buf.append("Security schema field incomplete");
212 else if (!validateText(modversionclass)) buf.append("Class field incomplete");
213 else if (!validateText(modversioncategory)) buf.append("Category field incomplete");
214 if (buf.length() == 0) {
215 //setErrorMessage("Module ready for creation");
216 setErrorMessage(null);
219 setErrorMessage(buf.toString());
223 public void saveDataToModel()
225 XarayaVersionModel.setModversionid(modversionid.getText());
226 XarayaVersionModel.setModversionversion(modversionversion.getText());
227 XarayaVersionModel.setModversiondescription(modversiondescription.getText());
228 XarayaVersionModel.setModversionauthor(modversionauthor.getText());
229 XarayaVersionModel.setModversioncontact(modversioncontact.getText());
230 XarayaVersionModel.setModversionsecurityschema(modversionsecurityschema.getText());
231 XarayaVersionModel.setModversionclass(modversionclass.getText());
232 XarayaVersionModel.setModversioncategory(modversioncategory.getText());
233 XarayaVersionModel.setUserApi(xarUserApi.getSelection());
234 XarayaVersionModel.setUserGui(xarUserGui.getSelection());
235 XarayaVersionModel.setAdminApi(xarAdminApi.getSelection());
236 XarayaVersionModel.setAdminGui(xarAdminGui.getSelection());
237 XarayaVersionModel.setModversionofficial(
238 (officialButton.getSelection()) ? "1" : "0");
239 XarayaVersionModel.setModversionadmin(
240 (xarAdminGui.getSelection()) ? "1" : "0" );
241 XarayaVersionModel.setModversionuser(
242 (xarUserGui.getSelection()) ? "1" : "0" );