modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleInfoStep.java | 119 +++++++---
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDataStep.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadRecipeStep.java | 17 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleVerificationStep.java | 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java | 2
5 files changed, 110 insertions(+), 36 deletions(-)
New commits:
commit b3befd4e8b98a26fda5ea3e165ee7991a9293f59
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Mar 18 16:14:41 2010 -0400
getting the first couple steps to work better
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleInfoStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleInfoStep.java
index 0b6d176..0397a48 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleInfoStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleInfoStep.java
@@ -29,6 +29,7 @@ import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
import org.rhq.core.domain.bundle.BundleType;
+import org.rhq.core.domain.bundle.BundleVersion;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.components.wizard.WizardStep;
import org.rhq.enterprise.gui.coregui.client.gwt.BundleGWTServiceAsync;
@@ -40,6 +41,9 @@ public class BundleInfoStep implements WizardStep {
private final BundleCreationWizard wizard;
private final BundleGWTServiceAsync bundleServer = GWTServiceLookup.getBundleService();
+ private TextItem nameTextItem;
+ private TextItem versionTextItem;
+ private TextAreaItem descriptionTextAreaItem;
public BundleInfoStep(BundleCreationWizard bundleCreationWizard) {
this.wizard = bundleCreationWizard;
@@ -52,23 +56,48 @@ public class BundleInfoStep implements WizardStep {
form.setNumCols(2);
form.setColWidths("50%", "*");
- final TextItem nameTextItem = new TextItem("name", "Name");
+ BundleVersion initialBundleVersion = wizard.getBundleVersion();
+
+ nameTextItem = new TextItem("name", "Name");
nameTextItem.setRequired(true);
- nameTextItem.addChangedHandler(new ChangedHandler() {
- public void onChanged(ChangedEvent event) {
- Object value = event.getValue();
- if (value == null) {
- value = "";
+ if (initialBundleVersion == null) {
+ nameTextItem.setValue("");
+ nameTextItem.addChangedHandler(new ChangedHandler() {
+ public void onChanged(ChangedEvent event) {
+ Object value = event.getValue();
+ if (value == null) {
+ value = "";
+ }
+ wizard.setSubtitle(value.toString());
+ wizard.setBundleName(value.toString());
+ enableNextButtonWhenAppropriate();
}
- wizard.setSubtitle(value.toString());
- wizard.setBundleName(value.toString());
- enableNextButtonWhenAppropriate();
- }
- });
-
- final TextItem versionTextItem = new TextItem("version", "Initial Version");
- versionTextItem.setValue("1.0");
- wizard.setBundleVersionString("1.0");
+ });
+ } else {
+ nameTextItem.setValue(initialBundleVersion.getName());
+ nameTextItem.setDisabled(true);
+ }
+
+ final TextItem previousVersionTextItem = new TextItem("previousVersion", "Previous Version");
+ if (initialBundleVersion == null) {
+ previousVersionTextItem.setVisible(Boolean.FALSE);
+ } else {
+ previousVersionTextItem.setValue(initialBundleVersion.getVersion());
+ previousVersionTextItem.setDisabled(true);
+ }
+
+ versionTextItem = new TextItem("version");
+ if (initialBundleVersion == null) {
+ versionTextItem.setTitle("Initial Version");
+ String versionSuggestion = "1.0";
+ versionTextItem.setValue(versionSuggestion);
+ wizard.setBundleVersionString(versionSuggestion);
+ } else {
+ versionTextItem.setTitle("New Version");
+ String versionSuggestion = autoIncrementVersion(initialBundleVersion.getVersion());
+ versionTextItem.setValue(versionSuggestion);
+ wizard.setBundleVersionString(versionSuggestion);
+ }
versionTextItem.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent event) {
Object value = event.getValue();
@@ -80,7 +109,12 @@ public class BundleInfoStep implements WizardStep {
}
});
- final TextAreaItem descriptionTextAreaItem = new TextAreaItem("description", "Description");
+ descriptionTextAreaItem = new TextAreaItem("description", "Description");
+ if (initialBundleVersion == null) {
+ descriptionTextAreaItem.setValue("");
+ } else {
+ descriptionTextAreaItem.setValue(initialBundleVersion.getDescription());
+ }
descriptionTextAreaItem.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent event) {
Object value = event.getValue();
@@ -92,26 +126,38 @@ public class BundleInfoStep implements WizardStep {
}
});
- form.setItems(nameTextItem, versionTextItem, descriptionTextAreaItem);
+ form.setItems(nameTextItem, previousVersionTextItem, versionTextItem, descriptionTextAreaItem);
- // TODO: we should get all bundle types in a drop down menu and let the user pick
- // for now assume we always get one (the filetemplate one) and use it
- bundleServer.getAllBundleTypes(new AsyncCallback<ArrayList<BundleType>>() {
- public void onSuccess(ArrayList<BundleType> result) {
- wizard.setBundleType(result.get(0));
- enableNextButtonWhenAppropriate();
- }
+ if (wizard.getBundleType() == null) {
+ // TODO: we should get all bundle types in a drop down menu and let the user pick
+ // for now assume we always get one (the filetemplate one) and use it
+ bundleServer.getAllBundleTypes(new AsyncCallback<ArrayList<BundleType>>() {
+ public void onSuccess(ArrayList<BundleType> result) {
+ wizard.setBundleType(result.get(0));
+ enableNextButtonWhenAppropriate();
+ }
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("No bundle types available", caught);
- }
- });
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("No bundle types available", caught);
+ }
+ });
+ }
+
+ enableNextButtonWhenAppropriate();
+ } else {
+ if (wizard.getBundleVersion() != null) {
+ // we are traversing back to this step - don't allow changes if we've already created the bundle version
+ nameTextItem.setDisabled(Boolean.TRUE);
+ versionTextItem.setDisabled(Boolean.TRUE);
+ descriptionTextAreaItem.setDisabled(Boolean.TRUE);
+ }
}
return form;
}
public boolean nextPage() {
- return form.validate();
+ boolean ok = form.validate();
+ return ok;
}
public String getName() {
@@ -134,4 +180,19 @@ public class BundleInfoStep implements WizardStep {
private boolean isNotEmpty(String s) {
return (s != null && s.trim().length() > 0);
}
+
+ private String autoIncrementVersion(String oldVersion) {
+ String newVersion = "1.0";
+ if (oldVersion != null && oldVersion.length() != 0) {
+ String[] parts = oldVersion.split("[^a-zA-Z0-9]");
+ String lastPart = parts[parts.length - 1];
+ try {
+ int lastNumber = Integer.parseInt(lastPart);
+ newVersion = oldVersion.substring(0, oldVersion.length() - lastPart.length()) + (lastNumber + 1);
+ } catch (NumberFormatException nfe) {
+ newVersion = oldVersion + ".1";
+ }
+ }
+ return newVersion;
+ }
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDataStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDataStep.java
index 0a0a5c2..8bb2498 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDataStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDataStep.java
@@ -22,6 +22,7 @@ import java.util.HashMap;
import java.util.Map;
import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.Img;
import com.smartgwt.client.widgets.Label;
@@ -55,6 +56,8 @@ public class BundleUploadDataStep implements WizardStep {
form = new DynamicForm();
final VLayout layout = new VLayout();
+ layout.setMargin(Integer.valueOf(20));
+ layout.setAlign(Alignment.CENTER);
bundleServer.getAllBundleVersionFilenames(this.wizard.getBundleVersion().getId(),
new AsyncCallback<HashMap<String, Boolean>>() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadRecipeStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadRecipeStep.java
index 34e410e..d7aefbe 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadRecipeStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadRecipeStep.java
@@ -20,7 +20,6 @@ package org.rhq.enterprise.gui.coregui.client.bundle.create;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.form.fields.CanvasItem;
-import com.smartgwt.client.widgets.form.fields.HiddenItem;
import com.smartgwt.client.widgets.form.fields.LinkItem;
import com.smartgwt.client.widgets.form.fields.TextAreaItem;
import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
@@ -38,6 +37,7 @@ public class BundleUploadRecipeStep implements WizardStep {
private DynamicCallbackForm form;
private final BundleCreationWizard wizard;
+ private TextAreaItem recipe;
public BundleUploadRecipeStep(BundleCreationWizard bundleCreationWizard) {
this.wizard = bundleCreationWizard;
@@ -50,9 +50,6 @@ public class BundleUploadRecipeStep implements WizardStep {
form.setNumCols(1);
form.setMargin(Integer.valueOf(20));
- HiddenItem idField = new HiddenItem("id");
- idField.setValue(1);
-
final LinkItem showUpload = new LinkItem("showUpload");
showUpload.setValue("Click To Upload A Recipe File");
showUpload.setShowTitle(false);
@@ -70,7 +67,7 @@ public class BundleUploadRecipeStep implements WizardStep {
}
});
- final TextAreaItem recipe = new TextAreaItem("recipe");
+ recipe = new TextAreaItem("recipe");
recipe.setShowTitle(false);
recipe.setRequired(true);
recipe.setWidth("*");
@@ -97,8 +94,16 @@ public class BundleUploadRecipeStep implements WizardStep {
}
});
- form.setItems(idField, showUpload, upload, recipe);
+ form.setItems(showUpload, upload, recipe);
form.hideItem("upload");
+ } else {
+ // we are traversing back to this step - don't allow the recipe to change if we've already created the bundle version
+ if (wizard.getBundleVersion() != null) {
+ recipe.setValue(wizard.getBundleVersion().getRecipe());
+ recipe.setDisabled(Boolean.TRUE);
+ form.hideItem("showUpload");
+ form.hideItem("upload");
+ }
}
return form;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleVerificationStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleVerificationStep.java
index 40fd9f9..46fe479 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleVerificationStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleVerificationStep.java
@@ -46,6 +46,11 @@ public class BundleVerificationStep implements WizardStep {
}
public Canvas getCanvas() {
+ if (canvas != null && wizard.getBundleVersion() != null) {
+ // if we've already got a persisted bundle version, don't verify it again or try to create it again
+ return canvas;
+ }
+
canvas = new VLayout();
canvas.setWidth100();
canvas.setHeight100();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java
index 5cff730..d67e38d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java
@@ -43,7 +43,7 @@ public class BundleFileUploadForm extends DynamicCallbackForm {
private String name;
public BundleFileUploadForm(BundleVersion bundleVersion, String name) {
- super("bundleFileUpload");
+ super(name);
this.bundleVersion = bundleVersion;
this.name = name;