Author: xcoulon
Date: 2012-02-14 06:16:23 -0500 (Tue, 14 Feb 2012)
New Revision: 38687
Modified:
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationConfigurationWizardPage.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CustomControlDecorationUpdater.java
Log:
Fixed - JBIDE-10800 Application names mustn't contain "_" in their name
https://issues.jboss.org/browse/JBIDE-10800
Modified:
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationConfigurationWizardPage.java
===================================================================
---
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationConfigurationWizardPage.java 2012-02-14
10:41:46 UTC (rev 38686)
+++
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationConfigurationWizardPage.java 2012-02-14
11:16:23 UTC (rev 38687)
@@ -175,8 +175,7 @@
new ApplicationToSelectNameValidator(
useExistingAppBtnSelection, existingAppNameTextObservable,
existingAppsObservable);
dbc.addValidationStatusProvider(existingAppValidator);
- ControlDecorationSupport.create(existingAppValidator, SWT.LEFT | SWT.TOP);
-
+ ControlDecorationSupport.create(existingAppValidator, SWT.LEFT | SWT.TOP, null, new
CustomControlDecorationUpdater(false));
return existingAppSelectionGroup;
}
@@ -269,21 +268,17 @@
.in(dbc);
final ISWTObservableValue useExistingAppBtnSelection =
WidgetProperties.selection().observe(useExistingAppBtn);
- final ApplicationToCreateInputValidator applicationInputValidator =
- new ApplicationToCreateInputValidator(
- useExistingAppBtnSelection, applicationNameTextObservable,
selectedCartridgeComboObservable);
- dbc.addValidationStatusProvider(applicationInputValidator);
- //ControlDecorationSupport.create(applicationInputValidator, SWT.LEFT | SWT.TOP);
- ControlDecorationSupport.create(applicationInputValidator, SWT.LEFT | SWT.TOP, null,
new CustomControlDecorationUpdater());
+ final NewApplicationNameValidator newApplicationNameValidator =
+ new NewApplicationNameValidator(
+ useExistingAppBtnSelection, applicationNameTextObservable);
+ dbc.addValidationStatusProvider(newApplicationNameValidator);
+ ControlDecorationSupport.create(newApplicationNameValidator, SWT.LEFT | SWT.TOP, null,
new CustomControlDecorationUpdater());
+ final NewApplicationTypeValidator newApplicationTypeValidator =
+ new NewApplicationTypeValidator(
+ useExistingAppBtnSelection, selectedCartridgeComboObservable);
+ dbc.addValidationStatusProvider(newApplicationTypeValidator);
+ ControlDecorationSupport.create(newApplicationTypeValidator, SWT.LEFT | SWT.TOP, null,
new CustomControlDecorationUpdater());
- /*
- * final ApplicationToSelectNameValidator applicationNameValidator = new
- * ApplicationToSelectNameValidator(us applicationNameStatusObservable,
- * applicationNameTextObservable);
- * dbc.addValidationStatusProvider(applicationNameValidator);
- * ControlDecorationSupport.create(applicationNameValidator, SWT.LEFT |
- * SWT.TOP);
- */
// embeddable cartridges
Group cartridgesGroup = new Group(container, SWT.NONE);
cartridgesGroup.setText("Embeddable Cartridges");
@@ -720,7 +715,8 @@
if (!useExistingApp) {
return ValidationStatus.ok();
}
- if (existingApps != null) {
+
+ if (existingApps != null && appName != null && !appName.isEmpty()) {
for (IApplication application : pageModel.getExistingApplications()) {
if (application.getName().equalsIgnoreCase(appName)) {
return ValidationStatus.ok();
@@ -743,18 +739,15 @@
}
- class ApplicationToCreateInputValidator extends MultiValidator {
+ class NewApplicationNameValidator extends MultiValidator {
private final ISWTObservableValue useExistingAppBtnbservable;
private final ISWTObservableValue applicationNameTextObservable;
- private final ISWTObservableValue cartridgesComboObservable;
- public ApplicationToCreateInputValidator(ISWTObservableValue
useExistingAppBtnbservable,
- ISWTObservableValue applicationNameTextObservable,
- ISWTObservableValue cartridgesComboObservable) {
+ public NewApplicationNameValidator(ISWTObservableValue useExistingAppBtnbservable,
+ ISWTObservableValue applicationNameTextObservable) {
this.useExistingAppBtnbservable = useExistingAppBtnbservable;
this.applicationNameTextObservable = applicationNameTextObservable;
- this.cartridgesComboObservable = cartridgesComboObservable;
}
@Override
@@ -766,12 +759,13 @@
}
if (applicationName.isEmpty()) {
return new Status(IStatus.CANCEL, OpenShiftUIActivator.PLUGIN_ID,
- "Give a name and select a type for the application you want to
create.");
+ "Select an alphanumerical name and a type for the application to
create.");
}
-
- if (!applicationName.matches("\\S+")) {
- return new Status(IStatus.ERROR, OpenShiftUIActivator.PLUGIN_ID,
- "The application name must not contain spaces.");
+ for (int i = 0; i < applicationName.length(); ++i) {
+ if (!Character.isLetterOrDigit(applicationName.charAt(i))) {
+ return new Status(IStatus.ERROR, OpenShiftUIActivator.PLUGIN_ID,
+ "The application name must not contain spaces.");
+ }
}
for (IApplication application : pageModel.getExistingApplications()) {
if (application.getName().equalsIgnoreCase(applicationName)) {
@@ -786,6 +780,38 @@
public IObservableList getTargets() {
WritableList targets = new WritableList();
targets.add(applicationNameTextObservable);
+ return targets;
+ }
+ }
+
+ class NewApplicationTypeValidator extends MultiValidator {
+
+ private final ISWTObservableValue useExistingAppBtnbservable;
+ private final ISWTObservableValue cartridgesComboObservable;
+
+ public NewApplicationTypeValidator(ISWTObservableValue useExistingAppBtnbservable,
+ ISWTObservableValue cartridgesComboObservable) {
+ this.useExistingAppBtnbservable = useExistingAppBtnbservable;
+ this.cartridgesComboObservable = cartridgesComboObservable;
+ }
+
+ @Override
+ protected IStatus validate() {
+ final boolean useExistingApp = (Boolean) useExistingAppBtnbservable.getValue();
+ final String cartridge = (String) cartridgesComboObservable.getValue();
+ if (useExistingApp) {
+ return ValidationStatus.ok();
+ }
+ if(cartridge == null || cartridge.isEmpty()) {
+ return new Status(IStatus.CANCEL, OpenShiftUIActivator.PLUGIN_ID,
+ "Select an alphanumerical name and a type for the application to
create.");
+ }
+ return ValidationStatus.ok();
+ }
+
+ @Override
+ public IObservableList getTargets() {
+ WritableList targets = new WritableList();
targets.add(cartridgesComboObservable);
return targets;
}
Modified:
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CustomControlDecorationUpdater.java
===================================================================
---
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CustomControlDecorationUpdater.java 2012-02-14
10:41:46 UTC (rev 38686)
+++
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CustomControlDecorationUpdater.java 2012-02-14
11:16:23 UTC (rev 38687)
@@ -15,7 +15,24 @@
*/
public class CustomControlDecorationUpdater extends ControlDecorationUpdater {
+ private final boolean showRequiredDecorator;
+
/**
+ * Default constructor: provides a 'REQUIRED' decorator when the status is
CANCEL
+ */
+ public CustomControlDecorationUpdater() {
+ this(true);
+ }
+
+ /**
+ * Default constructor: provides a 'REQUIRED' decorator when the status is
CANCEL
+ */
+ public CustomControlDecorationUpdater(final boolean showRequiredDecorator) {
+ super();
+ this.showRequiredDecorator = showRequiredDecorator;
+ }
+
+ /**
* {@inheritDoc} Overrides the standard behaviour: for CANCEL status, items are
decorated with the REQUIRED
* decorator, not the ERROR one.
*/
@@ -36,7 +53,7 @@
fieldDecorationID = FieldDecorationRegistry.DEC_ERROR;
break;
case IStatus.CANCEL:
- fieldDecorationID = FieldDecorationRegistry.DEC_REQUIRED;
+ fieldDecorationID = showRequiredDecorator ? FieldDecorationRegistry.DEC_REQUIRED :
null;
break;
}