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
