1 package com.proalpha.pds.ui.wizards.wizardpages;
4 import java.util.Collections;
5 import java.util.HashMap;
6 import java.util.LinkedHashMap;
8 import org.eclipse.core.runtime.FileLocator;
9 import org.eclipse.core.runtime.Path;
10 import org.eclipse.core.runtime.Platform;
11 import org.eclipse.jface.dialogs.IDialogPage;
12 import org.eclipse.jface.resource.ImageDescriptor;
13 import org.eclipse.jface.window.Window;
14 import org.eclipse.jface.wizard.WizardPage;
15 import org.eclipse.swt.SWT;
16 import org.eclipse.swt.events.ModifyEvent;
17 import org.eclipse.swt.events.ModifyListener;
18 import org.eclipse.swt.events.SelectionAdapter;
19 import org.eclipse.swt.events.SelectionEvent;
20 import org.eclipse.swt.layout.GridData;
21 import org.eclipse.swt.layout.GridLayout;
22 import org.eclipse.swt.widgets.Button;
23 import org.eclipse.swt.widgets.Composite;
24 import org.eclipse.swt.widgets.Label;
25 import org.eclipse.swt.widgets.Text;
27 import com.openedge.pdt.project.ui.ResourceSelectionDialog;
28 import com.proalpha.pds.paconnector.repository.RepositoryDelegate;
29 import com.proalpha.pds.paconnector.repository.RepositoryInformations;
30 import com.proalpha.pds.templates.data.GeneratorSettingsConstans;
31 import com.proalpha.pds.ui.Activator;
41 private Text businessEntityObjectText;
43 private Button masterDataValidationToggle;
45 private Text businessEntityProxyText;
47 private Button createRepositoryEntryToggle;
49 private Button getChangesToggle;
51 private Button readOnlyToggle;
53 private Button recursiveStructureToggle;
55 private Text dataAccessObjectText;
57 private Text dsNameText;
70 super(
"DatasetDefinitionFilePropertyPage");
72 URL url = FileLocator.find(Platform.getBundle(
Activator.PLUGIN_ID),
new Path(
"icons/pA-logox72.png"),
73 Collections.emptyMap());
75 setImageDescriptor(ImageDescriptor.createFromURL(url));
76 this.repositoryInformations = repositoryInformations;
78 setTitle(configuration.getWizardTitle());
79 setDescription(configuration.getWizardDescription());
94 Composite container =
new Composite(parent, SWT.NULL);
95 GridLayout layout =
new GridLayout();
96 container.setLayout(layout);
97 layout.numColumns = 3;
99 label =
new Label(container, SWT.NONE);
100 label.setText(
"Dataset Name:");
101 GridData ttNameTextLData =
new GridData();
102 ttNameTextLData.grabExcessHorizontalSpace =
true;
103 ttNameTextLData.horizontalAlignment = GridData.FILL;
104 ttNameTextLData.horizontalSpan = 2;
105 dsNameText =
new Text(container, SWT.SINGLE | SWT.BORDER);
106 dsNameText.setLayoutData(ttNameTextLData);
107 dsNameText.setToolTipText(
"Dataset Name");
108 dsNameText.addModifyListener(
new ModifyListener() {
109 public void modifyText(ModifyEvent e) {
113 label =
new Label(container, SWT.NONE);
114 label.setText(
"Business Entity Object:");
115 GridData businessEntityObjectTextLData =
new GridData();
116 businessEntityObjectTextLData.grabExcessHorizontalSpace =
true;
117 businessEntityObjectTextLData.horizontalAlignment = GridData.FILL;
118 businessEntityObjectText =
new Text(container, SWT.SINGLE | SWT.BORDER);
119 businessEntityObjectText.setLayoutData(businessEntityObjectTextLData);
120 businessEntityObjectText.addModifyListener(
new ModifyListener() {
121 public void modifyText(ModifyEvent e) {
125 btnBEO =
new Button(container, SWT.PUSH | SWT.CENTER);
126 GridData btnBEOLData =
new GridData();
127 btnBEOLData.grabExcessHorizontalSpace =
true;
128 btnBEOLData.horizontalAlignment = GridData.FILL;
129 btnBEO.setLayoutData(btnBEOLData);
130 btnBEO.setText(
"Browse");
131 btnBEO.addSelectionListener(
new SelectionAdapter() {
133 public void widgetSelected(SelectionEvent e) {
134 handleBrowse(businessEntityObjectText);
137 label =
new Label(container, SWT.NONE);
138 label.setText(
"Data Access Object:");
139 GridData daoTextLData =
new GridData();
140 daoTextLData.horizontalAlignment = GridData.FILL;
141 daoTextLData.grabExcessHorizontalSpace =
true;
142 dataAccessObjectText =
new Text(container, SWT.SINGLE | SWT.BORDER);
143 dataAccessObjectText.setLayoutData(daoTextLData);
144 dataAccessObjectText.addModifyListener(
new ModifyListener() {
145 public void modifyText(ModifyEvent e) {
149 btnDAO =
new Button(container, SWT.PUSH | SWT.CENTER);
150 GridData btnDAOLData =
new GridData();
151 btnDAOLData.horizontalAlignment = GridData.FILL;
152 btnDAOLData.grabExcessHorizontalSpace =
true;
153 btnDAO.setLayoutData(btnDAOLData);
154 btnDAO.setText(
"Browse");
155 btnDAO.addSelectionListener(
new SelectionAdapter() {
157 public void widgetSelected(SelectionEvent e) {
158 handleBrowse(dataAccessObjectText);
161 label =
new Label(container, SWT.NONE);
162 label.setText(
"Business Entity Proxy:");
163 GridData businessEntityProxyTextLData =
new GridData();
164 businessEntityProxyTextLData.grabExcessHorizontalSpace =
true;
165 businessEntityProxyTextLData.horizontalAlignment = GridData.FILL;
166 businessEntityProxyText =
new Text(container, SWT.SINGLE | SWT.BORDER);
167 businessEntityProxyText.setLayoutData(businessEntityProxyTextLData);
168 businessEntityProxyText.addModifyListener(
new ModifyListener() {
169 public void modifyText(ModifyEvent e) {
173 btnBEProxy =
new Button(container, SWT.PUSH | SWT.CENTER);
174 btnBEProxy.setText(
"Browse");
175 GridData button1LData =
new GridData();
176 button1LData.horizontalAlignment = GridData.FILL;
177 button1LData.grabExcessHorizontalSpace =
true;
178 button1LData.heightHint = 23;
179 btnBEProxy.setLayoutData(button1LData);
180 btnBEProxy.addSelectionListener(
new SelectionAdapter() {
182 public void widgetSelected(SelectionEvent evt) {
183 handleBrowse(businessEntityProxyText);
186 label =
new Label(container, SWT.NONE);
187 masterDataValidationToggle =
new Button(container, SWT.CHECK | SWT.LEFT);
188 GridData masterDataValidationToggleLData =
new GridData();
189 masterDataValidationToggleLData.horizontalAlignment = GridData.FILL;
190 masterDataValidationToggleLData.horizontalSpan = 2;
191 masterDataValidationToggleLData.grabExcessHorizontalSpace =
true;
192 masterDataValidationToggle.setLayoutData(masterDataValidationToggleLData);
193 masterDataValidationToggle.setText(
"Master Data Validation");
194 label =
new Label(container, SWT.NONE);
195 recursiveStructureToggle =
new Button(container, SWT.CHECK | SWT.LEFT);
196 GridData recursiveStructureToggleLData =
new GridData();
197 recursiveStructureToggleLData.horizontalAlignment = GridData.FILL;
198 recursiveStructureToggleLData.grabExcessHorizontalSpace =
true;
199 recursiveStructureToggleLData.horizontalSpan = 2;
200 recursiveStructureToggle.setLayoutData(recursiveStructureToggleLData);
201 recursiveStructureToggle.setText(
"Recursive Structure");
202 label =
new Label(container, SWT.NONE);
203 readOnlyToggle =
new Button(container, SWT.CHECK | SWT.LEFT);
204 GridData readOnlyToggleLData =
new GridData();
205 readOnlyToggleLData.horizontalAlignment = GridData.FILL;
206 readOnlyToggleLData.grabExcessHorizontalSpace =
true;
207 readOnlyToggleLData.horizontalSpan = 2;
208 readOnlyToggle.setLayoutData(readOnlyToggleLData);
209 readOnlyToggle.setText(
"Read Only");
210 label =
new Label(container, SWT.NONE);
211 getChangesToggle =
new Button(container, SWT.CHECK | SWT.LEFT);
212 GridData getChangesToggleLData =
new GridData();
213 getChangesToggleLData.horizontalAlignment = GridData.FILL;
214 getChangesToggleLData.grabExcessHorizontalSpace =
true;
215 getChangesToggleLData.horizontalSpan = 2;
216 getChangesToggle.setLayoutData(getChangesToggleLData);
217 getChangesToggle.setText(
"Get Changes");
218 label =
new Label(container, SWT.NONE);
219 createRepositoryEntryToggle =
new Button(container, SWT.CHECK | SWT.LEFT);
220 GridData createRepositoryEntryToggleLData =
new GridData();
221 createRepositoryEntryToggleLData.horizontalSpan = 2;
222 createRepositoryEntryToggle.setLayoutData(createRepositoryEntryToggleLData);
223 createRepositoryEntryToggle.setText(
"Create Repository Entry");
226 setControl(container);
229 private void handleBrowse(Text textObject) {
231 ResourceSelectionDialog dialog =
new ResourceSelectionDialog(getShell(),
"Please select Object");
233 if (dialog.getReturnCode() == Window.OK) {
234 textObject.setText(dialog.getResource().getName());
242 private void dialogChanged() {
244 String dsName = dsNameText.getText();
245 String beo = businessEntityObjectText.getText();
246 String dao = dataAccessObjectText.getText();
247 String bep = businessEntityProxyText.getText();
253 if (!(dsName.startsWith(
"ds"))) {
254 updateStatus(
"Dataset Name should begin with 'ds'");
262 if (beo.equals(
"")) {
263 updateStatus(
"Business Entity Object is empty");
268 updateStatus(
"Business Entity Object is unknown to Repository Manager");
272 if (!(repositoryInformations.isInstanceOfClass(beo,
"Business Entity Object").equals(
"yes"))) {
273 updateStatus(
"Business Entity Object should be member of Class \"Business Entity Object\"");
283 if (dao.equals(
"")) {
284 String daoTemp = beo.substring(0, 2) +
"j" + beo.substring(3);
286 dataAccessObjectText.setText(daoTemp);
287 dao = dataAccessObjectText.getText();
295 if (dao.equals(
"")) {
296 updateStatus(
"Data Access Object is empty");
301 updateStatus(
"Data Access Object is unknown to Repository Manager");
305 if (!(repositoryInformations.isInstanceOfClass(dao,
"Data Access Object")).equals(
"yes")) {
306 updateStatus(
"Data Access Object should be member of Class \"Data Access Object\"");
315 if (!bep.equals(
"")) {
317 updateStatus(
"Business Entity Proxy is unknown to Repository Manager");
321 if (!(repositoryInformations.isInstanceOfClass(bep,
"Business Entity Proxy")).equals(
"yes")) {
322 updateStatus(
"Business Entity Proxy should be member of Class \"Business Entity Proxy\"");
332 wizardMainPage.setFileDescriptionText(
"Definition of Dataset " + dsName);
342 private void updateStatus(String message) {
343 setErrorMessage(message);
344 setPageComplete(message ==
null);
350 private void initialize() {
351 dsNameText.setText(
"ds");
352 masterDataValidationToggle.setSelection(
true);
353 readOnlyToggle.setSelection(
false);
354 recursiveStructureToggle.setSelection(
false);
355 getChangesToggle.setSelection(
true);
356 createRepositoryEntryToggle.setSelection(
true);
357 recursiveStructureToggle.setVisible(
false);
360 public void setWizardMainPage(WizardMainPage wizardMainPage) {
361 this.wizardMainPage = wizardMainPage;
371 public HashMap<String, Object> getSettings() {
372 HashMap<String, Object> wizardSettings =
new HashMap<>();
374 wizardSettings.put(GeneratorSettingsConstans.DATASET_NAME,
this.getDSName());
375 wizardSettings.put(GeneratorSettingsConstans.BUSINESS_ENTITY_OBJECT,
this.getBusinessEntityObject());
376 wizardSettings.put(GeneratorSettingsConstans.DATA_ACCESS_OBJECT,
this.getDataAccessObject());
377 wizardSettings.put(GeneratorSettingsConstans.BUSINESS_ENTITY_PROXY,
this.getBusinessEntityProxy());
378 wizardSettings.put(GeneratorSettingsConstans.MASTER_DATA_VALIDATION,
379 (
this.getMasterDataValidation() ?
"true" :
"false"));
380 wizardSettings.put(
"RecursiveStructure", (this.getRecursiveStructure() ?
"true" :
"false"));
381 wizardSettings.put(GeneratorSettingsConstans.READ_ONLY, (
this.getReadOnly() ?
"true" :
"false"));
382 wizardSettings.put(GeneratorSettingsConstans.GET_CHANGES, (
this.getGetChanges() ?
"true" :
"false"));
384 return wizardSettings;
387 private String getBusinessEntityProxy() {
389 if (this.businessEntityProxyText.getText().equals(
"")) {
393 return repositoryInformations.getRelativePath(this.businessEntityProxyText.getText()) +
"/"
394 + this.businessEntityProxyText.getText();
397 private boolean getGetChanges() {
398 return this.getChangesToggle.getSelection();
401 private boolean getReadOnly() {
402 return this.readOnlyToggle.getSelection();
405 private boolean getRecursiveStructure() {
406 return this.recursiveStructureToggle.getSelection();
409 private boolean getMasterDataValidation() {
410 return this.masterDataValidationToggle.getSelection();
413 private String getDataAccessObject() {
414 return repositoryInformations.getRelativePath(this.dataAccessObjectText.getText()) +
"/"
415 + this.dataAccessObjectText.getText();
418 private String getBusinessEntityObject() {
419 return repositoryInformations.getRelativePath(this.businessEntityObjectText.getText()) +
"/"
420 + this.businessEntityObjectText.getText();
423 private String getDSName() {
424 return dsNameText.getText();
427 public boolean getCreateDataset() {
428 return this.createRepositoryEntryToggle.getSelection();
void createControl(Composite parent)
DatasetDefinitionFilePropertyPage(LinkedHashMap< String, WizardMainPageConfiguration > config, RepositoryDelegate repositoryDelegate, RepositoryInformations repositoryInformations)
void fillRepositoryCache()