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