Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Added functionality to Providers tab
......................................................................

webadmin: Added functionality to Providers tab

Added EXTREMELY BASIC command implementations to add and remove
providers.

Change-Id: Iab47b6896c752bf867fb4eb6efe3935497eeb138
Signed-off-by: Lior Vernia <lver...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderListModel.java
A 
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/gin/PresenterModule.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ProviderModule.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/provider/ProviderPopupPresenterWidget.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ProviderPopupView.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ProviderPopupView.ui.xml
8 files changed, 283 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/27/11127/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 4f48857..2cde4e9 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
@@ -3,6 +3,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.ovirt.engine.core.common.action.ProviderParameters;
+import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.mode.ApplicationMode;
 import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
@@ -45,9 +47,17 @@
     }
 
     public void add() {
+        if (getWindow() != null)
+        {
+            return;
+        }
+
+        final ProviderModel providerModel = new ProviderModel(this);
+        setWindow(providerModel);
     }
 
     public void remove() {
+        Frontend.RunAction(VdcActionType.RemoveProvider, new 
ProviderParameters((Provider) getSelectedItem()));
     }
 
     @Override
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
new file mode 100644
index 0000000..7a95ee8
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderModel.java
@@ -0,0 +1,124 @@
+package org.ovirt.engine.ui.uicommonweb.models.providers;
+
+import org.ovirt.engine.core.common.action.ProviderParameters;
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.businessentities.Provider;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.compat.StringHelper;
+import org.ovirt.engine.ui.frontend.Frontend;
+import org.ovirt.engine.ui.uicommonweb.UICommand;
+import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
+import org.ovirt.engine.ui.uicommonweb.models.ListModel;
+import org.ovirt.engine.ui.uicommonweb.models.Model;
+import org.ovirt.engine.ui.uicompat.ConstantsManager;
+
+public class ProviderModel extends Model
+{
+    private EntityModel privateName;
+    private EntityModel privateDescription;
+    private EntityModel privateUrl;
+    private final ListModel sourceListModel;
+
+    public ProviderModel(ListModel sourceListModel)
+    {
+        this.sourceListModel = sourceListModel;
+
+        setName(new EntityModel());
+        setDescription(new EntityModel());
+        setUrl(new EntityModel());
+
+        
setTitle(ConstantsManager.getInstance().getConstants().addProviderTitle());
+        setHashName("add_provider"); //$NON-NLS-1$
+
+        UICommand tempVar = new UICommand("OnSave", this); //$NON-NLS-1$
+        tempVar.setTitle(ConstantsManager.getInstance().getConstants().ok());
+        tempVar.setIsDefault(true);
+        getCommands().add(tempVar);
+        UICommand tempVar2 = new UICommand("Cancel", this); //$NON-NLS-1$
+        
tempVar2.setTitle(ConstantsManager.getInstance().getConstants().cancel());
+        tempVar2.setIsCancel(true);
+        getCommands().add(tempVar2);
+    }
+
+    public EntityModel getName()
+    {
+        return privateName;
+    }
+
+    private void setName(EntityModel value)
+    {
+        privateName = value;
+    }
+
+    public EntityModel getDescription()
+    {
+        return privateDescription;
+    }
+
+    private void setDescription(EntityModel value)
+    {
+        privateDescription = value;
+    }
+
+    public EntityModel getUrl()
+    {
+        return privateUrl;
+    }
+
+    private void setUrl(EntityModel value)
+    {
+        privateUrl = value;
+    }
+
+    public ListModel getSourceListModel() {
+        return sourceListModel;
+    }
+
+    public boolean Validate()
+    {
+        return true;
+    }
+
+    protected void postSaveAction(Guid networkGuid, boolean succeeded) {
+        if (succeeded)
+        {
+            cancel();
+        }
+        StopProgress();
+    }
+
+    private void cancel() {
+        sourceListModel.setWindow(null);
+        sourceListModel.setConfirmWindow(null);
+    }
+
+    public void onSave()
+    {
+        if (!Validate())
+        {
+            return;
+        }
+
+        Provider provider = new Provider();
+        provider.setName((String) privateName.getEntity());
+        provider.setDescription((String) privateDescription.getEntity());
+        provider.setApiAddress((String) privateUrl.getEntity());
+        Frontend.RunAction(VdcActionType.AddProvider, new 
ProviderParameters(provider));
+        cancel();
+    }
+
+    @Override
+    public void ExecuteCommand(UICommand command)
+    {
+        super.ExecuteCommand(command);
+
+        if (StringHelper.stringsEqual(command.getName(), "OnSave")) 
//$NON-NLS-1$
+        {
+            onSave();
+        }
+        else if (StringHelper.stringsEqual(command.getName(), "Cancel")) 
//$NON-NLS-1$
+        {
+            cancel();
+        }
+    }
+}
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 793aad8..62bb438 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
@@ -1724,4 +1724,7 @@
 
     @DefaultStringValue("Import")
     String importNetworksTitle();
+    
+    @DefaultStringValue("Add Provider")
+    String addProviderTitle();
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
index 429df95..3d822ce 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
@@ -52,6 +52,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.host.SetupNetworksManagementPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.pool.PoolEditPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.pool.PoolNewPopupPresenterWidget;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.provider.ProviderPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.provider.DiscoverNetworkPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.quota.ChangeQuotaPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.quota.EditQuotaClusterPopupPresenterWidget;
@@ -237,6 +238,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.host.SetupNetworksManagementPopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.pool.PoolEditPopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.pool.PoolNewPopupView;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.provider.ProviderPopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.provider.DiscoverNetworkPopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.quota.ChangeQuotaPopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.quota.EditQuotaClusterPopupView;
@@ -863,7 +865,6 @@
                 SubTabProviderNetworkView.class,
                 SubTabProviderNetworkPresenter.ProxyDef.class);
 
-
         // Main section: popups
 
         // Permissions
@@ -1171,6 +1172,10 @@
                 EditNetworkPopupView.class);
 
         // Provider
+        bindPresenterWidget(ProviderPopupPresenterWidget.class,
+                ProviderPopupPresenterWidget.ViewDef.class,
+                ProviderPopupView.class);
+
         bindPresenterWidget(DiscoverNetworkPopupPresenterWidget.class,
                 DiscoverNetworkPopupPresenterWidget.ViewDef.class,
                 DiscoverNetworkPopupView.class);
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 a113e0e..52ad562 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
@@ -16,6 +16,7 @@
 import org.ovirt.engine.ui.uicommonweb.models.providers.ProviderListModel;
 import 
org.ovirt.engine.ui.uicommonweb.models.providers.ProviderNetworkListModel;
 import org.ovirt.engine.ui.webadmin.gin.ClientGinjector;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.provider.ProviderPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.provider.DiscoverNetworkPopupPresenterWidget;
 
 import com.google.gwt.inject.client.AbstractGinModule;
@@ -29,8 +30,8 @@
 
     @Provides
     @Singleton
-    public 
MainModelProvider<org.ovirt.engine.core.common.businessentities.Provider, 
ProviderListModel> getNetworkListProvider(ClientGinjector ginjector,
-            // final Provider<AddProviderPopupPresenterWidget> 
newNetworkPopupProvider,
+    public 
MainModelProvider<org.ovirt.engine.core.common.businessentities.Provider, 
ProviderListModel> getProviderListProvider(ClientGinjector ginjector,
+            final Provider<ProviderPopupPresenterWidget> providerPopupProvider,
             final Provider<RemoveConfirmationPopupPresenterWidget> 
removeConfirmPopupProvider) {
         return new 
MainTabModelProvider<org.ovirt.engine.core.common.businessentities.Provider, 
ProviderListModel>(ginjector,
                 ProviderListModel.class) {
@@ -38,11 +39,11 @@
             public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> 
getModelPopup(ProviderListModel source,
                     UICommand lastExecutedCommand, Model windowModel) {
 
-                // if (lastExecutedCommand == getModel().getAddCommand()) {
-                // return editNetworkPopupProvider.get();
-                // } else {
-                return super.getModelPopup(source, lastExecutedCommand, 
windowModel);
-                // }
+                if (lastExecutedCommand == getModel().getAddCommand()) {
+                    return providerPopupProvider.get();
+                } else {
+                    return super.getModelPopup(source, lastExecutedCommand, 
windowModel);
+                }
             }
 
             @Override
@@ -98,7 +99,7 @@
                 } else {
                     return super.getConfirmModelPopup(source, 
lastExecutedCommand);
                 }
-                }
+            }
         };
     }
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/provider/ProviderPopupPresenterWidget.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/provider/ProviderPopupPresenterWidget.java
new file mode 100644
index 0000000..78ee7ee
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/provider/ProviderPopupPresenterWidget.java
@@ -0,0 +1,19 @@
+package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.provider;
+
+import 
org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
+import org.ovirt.engine.ui.uicommonweb.models.providers.ProviderModel;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.inject.Inject;
+
+public class ProviderPopupPresenterWidget extends 
AbstractModelBoundPopupPresenterWidget<ProviderModel, 
ProviderPopupPresenterWidget.ViewDef> {
+
+    public interface ViewDef extends 
AbstractModelBoundPopupPresenterWidget.ViewDef<ProviderModel> {
+    }
+
+    @Inject
+    public ProviderPopupPresenterWidget(EventBus eventBus, ViewDef view) {
+        super(eventBus, view);
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ProviderPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ProviderPopupView.java
new file mode 100644
index 0000000..f2fb2dc
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ProviderPopupView.java
@@ -0,0 +1,91 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.popup.provider;
+
+import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
+import org.ovirt.engine.ui.common.idhandler.WithElementId;
+import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView;
+import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel;
+import org.ovirt.engine.ui.common.widget.editor.EntityModelTextBoxEditor;
+import org.ovirt.engine.ui.uicommonweb.models.providers.ProviderModel;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationResources;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.provider.ProviderPopupPresenterWidget;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.editor.client.SimpleBeanEditorDriver;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.resources.client.CssResource;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.inject.Inject;
+
+public class ProviderPopupView extends 
AbstractModelBoundPopupView<ProviderModel> implements 
ProviderPopupPresenterWidget.ViewDef {
+
+    interface Driver extends SimpleBeanEditorDriver<ProviderModel, 
ProviderPopupView> {
+        Driver driver = GWT.create(Driver.class);
+    }
+
+    interface ViewUiBinder extends UiBinder<SimpleDialogPanel, 
ProviderPopupView> {
+        ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
+    }
+
+    interface ViewIdHandler extends ElementIdHandler<ProviderPopupView> {
+        ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
+    }
+
+    @UiField
+    @Path(value = "name.entity")
+    @WithElementId
+    EntityModelTextBoxEditor nameEditor;
+
+    @UiField
+    @Path(value = "description.entity")
+    @WithElementId
+    EntityModelTextBoxEditor descriptionEditor;
+
+    @UiField
+    @Path(value = "url.entity")
+    @WithElementId
+    EntityModelTextBoxEditor urlEditor;
+
+    @UiField
+    Style style;
+
+    @Inject
+    public ProviderPopupView(EventBus eventBus, ApplicationResources 
resources, ApplicationConstants constants) {
+        super(eventBus, resources);
+        initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
+        ViewIdHandler.idHandler.generateAndSetIds(this);
+        localize(constants);
+        addContentStyleName(style.contentStyle());
+        Driver.driver.initialize(this);
+    }
+
+    void localize(ApplicationConstants constants) {
+        nameEditor.setLabel(constants.nameProvider());
+        descriptionEditor.setLabel(constants.descriptionProvider());
+        urlEditor.setLabel(constants.urlProvider());
+    }
+
+    @Override
+    public void edit(ProviderModel object) {
+        Driver.driver.edit(object);
+    }
+
+    @Override
+    public ProviderModel flush() {
+        return Driver.driver.flush();
+    }
+
+    @Override
+    public void focusInput() {
+        nameEditor.setFocus(true);
+    }
+
+    public void addContentStyleName(String styleName) {
+        this.asWidget().addContentStyleName(styleName);
+    }
+
+    interface Style extends CssResource {
+        String contentStyle();
+    }
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ProviderPopupView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ProviderPopupView.ui.xml
new file mode 100644
index 0000000..80542b5
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ProviderPopupView.ui.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent";>
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 
xmlns:g="urn:import:com.google.gwt.user.client.ui"
+       xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog" 
xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor">
+
+       <ui:style 
type="org.ovirt.engine.ui.webadmin.section.main.view.popup.provider.ProviderPopupView.Style">
+               .contentStyle {
+               }
+       </ui:style>
+
+       <d:SimpleDialogPanel width="450px" height="320px">
+               <d:content>
+                       <g:FlowPanel>
+                               <e:EntityModelTextBoxEditor 
ui:field="nameEditor" />
+                               <e:EntityModelTextBoxEditor 
ui:field="descriptionEditor" />
+                               <e:EntityModelTextBoxEditor 
ui:field="urlEditor" />
+                       </g:FlowPanel>
+               </d:content>
+       </d:SimpleDialogPanel>
+
+</ui:UiBinder>


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iab47b6896c752bf867fb4eb6efe3935497eeb138
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Lior Vernia <lver...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to