Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Added edit button in Providers tab
......................................................................

webadmin: Added edit button in Providers tab

Created class hierarchy for the popup models in the process for the
sake of code reuse.

Change-Id: I9ddd28b7cfb9c90b7875762efff1d6faba424475
Signed-off-by: Lior Vernia <[email protected]>
---
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/AddProviderModel.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/EditProviderModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ProviderModule.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabProviderView.java
8 files changed, 77 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/94/14694/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/AddProviderModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/AddProviderModel.java
new file mode 100644
index 0000000..4dfa72b
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/AddProviderModel.java
@@ -0,0 +1,15 @@
+package org.ovirt.engine.ui.uicommonweb.models.providers;
+
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.businessentities.Provider;
+import org.ovirt.engine.ui.uicompat.ConstantsManager;
+
+public class AddProviderModel extends ProviderModel {
+
+    public AddProviderModel(ProviderListModel sourceListModel) {
+        super(sourceListModel, VdcActionType.AddProvider, new Provider());
+        
setTitle(ConstantsManager.getInstance().getConstants().addProviderTitle());
+        setHashName("add_provider"); //$NON-NLS-1$
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/EditProviderModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/EditProviderModel.java
new file mode 100644
index 0000000..41abbf5
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/EditProviderModel.java
@@ -0,0 +1,16 @@
+package org.ovirt.engine.ui.uicommonweb.models.providers;
+
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.businessentities.Provider;
+import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
+import org.ovirt.engine.ui.uicompat.ConstantsManager;
+
+public class EditProviderModel extends ProviderModel {
+
+    public EditProviderModel(SearchableListModel sourceListModel, Provider 
provider) {
+        super(sourceListModel, VdcActionType.UpdateProvider, provider);
+        
setTitle(ConstantsManager.getInstance().getConstants().editProviderTitle());
+        setHashName("edit_provider"); //$NON-NLS-1$
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderListModel.java
index 45a1b31..0d1f03d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderListModel.java
@@ -26,9 +26,11 @@
 public class ProviderListModel extends ListWithDetailsModel implements 
ISupportSystemTreeContext {
 
     private static final String CMD_ADD = "Add"; //$NON-NLS-1$
+    private static final String CMD_EDIT = "Edit"; //$NON-NLS-1$
     private static final String CMD_REMOVE = "Remove"; //$NON-NLS-1$
 
     private UICommand addCommand;
+    private UICommand editCommand;
     private UICommand removeCommand;
 
     private SystemTreeItemModel systemTreeSelectedItem;
@@ -43,6 +45,7 @@
         setAvailableInModes(ApplicationMode.VirtOnly);
 
         setAddCommand(new UICommand(CMD_ADD, this));
+        setEditCommand(new UICommand(CMD_EDIT, this));
         setRemoveCommand(new UICommand(CMD_REMOVE, this));
 
         UpdateActionAvailability();
@@ -57,6 +60,14 @@
 
     private void setAddCommand(UICommand value) {
         addCommand = value;
+    }
+
+    public UICommand getEditCommand() {
+        return editCommand;
+    }
+
+    private void setEditCommand(UICommand value) {
+        editCommand = value;
     }
 
     public UICommand getRemoveCommand() {
@@ -117,6 +128,7 @@
         List tempVar = getSelectedItems();
         List selectedItems = (tempVar != null) ? tempVar : new ArrayList();
 
+        getEditCommand().setIsExecutionAllowed(selectedItems.size() == 1);
         getRemoveCommand().setIsExecutionAllowed(selectedItems.size() > 0);
     }
 
@@ -149,7 +161,14 @@
         if (getWindow() != null) {
             return;
         }
-        setWindow(new ProviderModel(this));
+        setWindow(new AddProviderModel(this));
+    }
+
+    private void edit() {
+        if (getWindow() != null) {
+            return;
+        }
+        setWindow(new EditProviderModel(this, (Provider) getSelectedItem()));
     }
 
     private void remove() {
@@ -169,6 +188,8 @@
 
         if (command == getAddCommand()) {
             add();
+        } else if (command == getEditCommand()) {
+            edit();
         } else if (command == getRemoveCommand()) {
             remove();
         }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderModel.java
index 2bfaea5..fbbc924 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderModel.java
@@ -20,6 +20,8 @@
     private static final String CMD_CANCEL = "Cancel"; //$NON-NLS-1$
 
     private final SearchableListModel sourceListModel;
+    private final VdcActionType action;
+    private final Provider provider;
 
     private EntityModel privateName;
     private EntityModel privateDescription;
@@ -49,15 +51,14 @@
         privateUrl = value;
     }
 
-    public ProviderModel(SearchableListModel sourceListModel) {
+    public ProviderModel(SearchableListModel sourceListModel, VdcActionType 
action, Provider provider) {
         this.sourceListModel = sourceListModel;
+        this.action = action;
+        this.provider = provider;
 
-        setName(new EntityModel());
-        setDescription(new EntityModel());
-        setUrl(new EntityModel());
-
-        
setTitle(ConstantsManager.getInstance().getConstants().addProviderTitle());
-        setHashName("add_provider"); //$NON-NLS-1$
+        setName(new EntityModel(provider.getName()));
+        setDescription(new EntityModel(provider.getDescription()));
+        setUrl(new EntityModel(provider.getUrl()));
 
         UICommand tempVar = new UICommand(CMD_SAVE, this);
         tempVar.setTitle(ConstantsManager.getInstance().getConstants().ok());
@@ -82,11 +83,10 @@
             return;
         }
 
-        Provider provider = new Provider();
         provider.setName((String) privateName.getEntity());
         provider.setDescription((String) privateDescription.getEntity());
         provider.setUrl((String) privateUrl.getEntity());
-        Frontend.RunAction(VdcActionType.AddProvider, new 
ProviderParameters(provider),
+        Frontend.RunAction(action, new ProviderParameters(provider),
                 new IFrontendActionAsyncCallback() {
 
                     @Override
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
index 97f5704..bc3e49c 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
@@ -1842,4 +1842,7 @@
 
     @DefaultStringValue("Add Provider")
     String addProviderTitle();
+
+    @DefaultStringValue("Edit Provider")
+    String editProviderTitle();
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
index 80ab88b..bd1f31c 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
@@ -2638,6 +2638,9 @@
     @DefaultStringValue("Add")
     String addProvider();
 
+    @DefaultStringValue("Edit")
+    String editProvider();
+
     @DefaultStringValue("Remove")
     String removeProvider();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ProviderModule.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ProviderModule.java
index 3216eb4..95cc7d4 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ProviderModule.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ProviderModule.java
@@ -34,7 +34,8 @@
             public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> 
getModelPopup(ProviderListModel source,
                     UICommand lastExecutedCommand, Model windowModel) {
 
-                if (lastExecutedCommand == getModel().getAddCommand()) {
+                if (lastExecutedCommand == getModel().getAddCommand()
+                        || lastExecutedCommand == getModel().getEditCommand()) 
{
                     return providerPopupProvider.get();
                 } else {
                     return super.getModelPopup(source, lastExecutedCommand, 
windowModel);
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabProviderView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabProviderView.java
index 355c3a5..8f2614d 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabProviderView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabProviderView.java
@@ -71,6 +71,13 @@
             }
         });
 
+        getTable().addActionButton(new 
WebAdminButtonDefinition<Provider>(constants.editProvider()) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getMainModel().getEditCommand();
+            }
+        });
+
         getTable().addActionButton(new 
WebAdminButtonDefinition<Provider>(constants.removeProvider()) {
             @Override
             protected UICommand resolveCommand() {


--
To view, visit http://gerrit.ovirt.org/14694
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9ddd28b7cfb9c90b7875762efff1d6faba424475
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Lior Vernia <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to