Kanagaraj M has uploaded a new change for review. Change subject: webadmin:[WIP] Adding Gluster Geo-Replication Main tab ......................................................................
webadmin:[WIP] Adding Gluster Geo-Replication Main tab A new main tab 'Geo Replication' is added and it will be visible if the user selects a gluster supported cluster in the System Tree. This will be avaialble in Gluster supported modes and will be hidden in Virt mode. Change-Id: I9fd6bc884054a590f42d5888c7532529cd06ccb7 Signed-off-by: Kanagaraj M <kmayi...@redhat.com> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/georep/GeoReplicationListModel.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/ManagedComponents.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/UiCommonModule.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/GeoReplicationModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabGeoReplicationPresenter.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabGeoReplicationView.java 11 files changed, 191 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/28/9528/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java index ae966fe..eea2143 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java @@ -36,6 +36,7 @@ import org.ovirt.engine.ui.uicommonweb.models.events.AlertListModel; import org.ovirt.engine.ui.uicommonweb.models.events.EventListModel; import org.ovirt.engine.ui.uicommonweb.models.events.TaskListModel; +import org.ovirt.engine.ui.uicommonweb.models.gluster.georep.GeoReplicationListModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostListModel; import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkListModel; import org.ovirt.engine.ui.uicommonweb.models.pools.PoolListModel; @@ -546,6 +547,8 @@ volumeList.setIsAvailable(false); } + geoReplicationList.setIsAvailable(model.getType() == SystemTreeItemType.Cluster_Gluster); + storageList.setIsAvailable(model.getType() == SystemTreeItemType.DataCenter || model.getType() == SystemTreeItemType.Cluster || model.getType() == SystemTreeItemType.Cluster_Gluster || model.getType() == SystemTreeItemType.Host @@ -782,6 +785,7 @@ private SearchableListModel volumeList; private SearchableListModel diskList; private SearchableListModel networkList; + private SearchableListModel geoReplicationList; private void InitItems() { @@ -829,6 +833,9 @@ networkList = new NetworkListModel(); list.add(networkList); + geoReplicationList = new GeoReplicationListModel(); + list.add(geoReplicationList); + setItems(list); roleListModel = new RoleListModel(); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/georep/GeoReplicationListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/georep/GeoReplicationListModel.java new file mode 100644 index 0000000..363a12f --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/georep/GeoReplicationListModel.java @@ -0,0 +1,25 @@ +package org.ovirt.engine.ui.uicommonweb.models.gluster.georep; + +import org.ovirt.engine.core.common.mode.ApplicationMode; +import org.ovirt.engine.ui.uicommonweb.models.ListWithDetailsModel; +import org.ovirt.engine.ui.uicompat.ConstantsManager; + +public class GeoReplicationListModel extends ListWithDetailsModel { + + public GeoReplicationListModel() { + setTitle(ConstantsManager.getInstance().getConstants().geoReplicationTitle()); + + setDefaultSearchString("GeoReplication:"); //$NON-NLS-1$ + setSearchString(getDefaultSearchString()); + setAvailableInModes(ApplicationMode.GlusterOnly); + + getSearchNextPageCommand().setIsAvailable(true); + getSearchPreviousPageCommand().setIsAvailable(true); + } + + @Override + protected String getListName() { + return "GeoReplicationListModel"; //$NON-NLS-1$ + } + +} 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 8d22841..35c61af 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 @@ -180,6 +180,9 @@ @DefaultStringValue("Volumes") String volumesTitle(); + @DefaultStringValue("Geo Replication") + String geoReplicationTitle(); + @DefaultStringValue("Create Volume") String createVolumeTitle(); 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 333ee6b..cffefa0 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 @@ -88,6 +88,9 @@ @DefaultStringValue("Volumes") String volumeMainTabLabel(); + @DefaultStringValue("Geo Replication") + String geoReplicationMainTabLabel(); + @DefaultStringValue("Summary") String volumeGeneralSubTabLabel(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java index 05da0a7..e0a0398 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java @@ -55,6 +55,7 @@ import org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeEventListModel; import org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeParameterListModel; +import org.ovirt.engine.ui.uicommonweb.models.gluster.georep.GeoReplicationListModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostEventListModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostHooksListModel; @@ -127,6 +128,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabDataCenterPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabDiskPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabEventPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabGeoReplicationPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabHostPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabNetworkPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabPoolPresenter; @@ -668,4 +670,10 @@ AsyncProvider<SubTabNetworkPermissionPresenter> getSubTabNetworkPermissionPresenter(); SearchableDetailModelProvider<permissions, NetworkListModel, PermissionListModel> getSubTabNetworkPermissionModelProvider(); + + // Geo-Replication + + AsyncProvider<MainTabGeoReplicationPresenter> getMainTabGeoReplicationPresenter(); + + MainModelProvider<GlusterVolumeEntity, GeoReplicationListModel> getMainTabGeoReplicationModelProvider(); } 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 7dcc87a..ce7c984 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 @@ -87,6 +87,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabDataCenterPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabDiskPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabEventPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabGeoReplicationPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabHostPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabNetworkPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabPoolPresenter; @@ -264,6 +265,7 @@ import org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabDataCenterView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabDiskView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabEventView; +import org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabGeoReplicationView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabHostView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabNetworkView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabPoolView; @@ -465,6 +467,10 @@ MainTabDiskPresenter.ViewDef.class, MainTabDiskView.class, MainTabDiskPresenter.ProxyDef.class); + bindPresenter(MainTabGeoReplicationPresenter.class, + MainTabGeoReplicationPresenter.ViewDef.class, + MainTabGeoReplicationView.class, + MainTabGeoReplicationPresenter.ProxyDef.class); // Main section: sub tabs diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/UiCommonModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/UiCommonModule.java index b234dc2..b03defc 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/UiCommonModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/UiCommonModule.java @@ -6,6 +6,7 @@ import org.ovirt.engine.ui.webadmin.gin.uicommon.DataCenterModule; import org.ovirt.engine.ui.webadmin.gin.uicommon.DiskModule; import org.ovirt.engine.ui.webadmin.gin.uicommon.EventModule; +import org.ovirt.engine.ui.webadmin.gin.uicommon.GeoReplicationModule; import org.ovirt.engine.ui.webadmin.gin.uicommon.HostModule; import org.ovirt.engine.ui.webadmin.gin.uicommon.NetworkModule; import org.ovirt.engine.ui.webadmin.gin.uicommon.PoolModule; @@ -60,6 +61,7 @@ install(new VolumeModule()); install(new DiskModule()); install(new NetworkModule()); + install(new GeoReplicationModule()); // SystemTreeModel bind(SystemTreeModelProvider.class).asEagerSingleton(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/GeoReplicationModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/GeoReplicationModule.java new file mode 100644 index 0000000..369fe9f --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/GeoReplicationModule.java @@ -0,0 +1,45 @@ +package org.ovirt.engine.ui.webadmin.gin.uicommon; + +import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; +import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; +import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; +import org.ovirt.engine.ui.common.uicommon.model.MainTabModelProvider; +import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel; +import org.ovirt.engine.ui.uicommonweb.models.Model; +import org.ovirt.engine.ui.uicommonweb.models.gluster.georep.GeoReplicationListModel; +import org.ovirt.engine.ui.webadmin.gin.ClientGinjector; + +import com.google.gwt.inject.client.AbstractGinModule; +import com.google.inject.Provides; +import com.google.inject.Singleton; + +public class GeoReplicationModule extends AbstractGinModule { + + // Main List Model + + @Provides + @Singleton + public MainModelProvider<GlusterVolumeEntity, GeoReplicationListModel> getGeoReplicationListProvider(ClientGinjector ginjector) { + return new MainTabModelProvider<GlusterVolumeEntity, GeoReplicationListModel>(ginjector, + GeoReplicationListModel.class) { + @Override + public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(GeoReplicationListModel source, + UICommand lastExecutedCommand, Model windowModel) { + return super.getModelPopup(source, lastExecutedCommand, windowModel); + } + + @Override + public AbstractModelBoundPopupPresenterWidget<? extends ConfirmationModel, ?> getConfirmModelPopup(GeoReplicationListModel source, + UICommand lastExecutedCommand) { + return super.getConfirmModelPopup(source, lastExecutedCommand); + } + }; + } + + @Override + protected void configure() { + + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java index a666d41..f560257 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java @@ -39,6 +39,8 @@ public static final String networkMainTabPlace = "networks"; //$NON-NLS-1$ + public static final String geoReplicationMainTabPlace = "georep"; //$NON-NLS-1$ + // Main section: sub tabs // Important: the value after SUB_TAB_PREFIX must correspond to given UiCommon model diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabGeoReplicationPresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabGeoReplicationPresenter.java new file mode 100644 index 0000000..5a82309 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabGeoReplicationPresenter.java @@ -0,0 +1,63 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.tab; + +import java.util.List; + +import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; +import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; +import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData; +import org.ovirt.engine.ui.uicommonweb.models.gluster.georep.GeoReplicationListModel; +import org.ovirt.engine.ui.webadmin.gin.ClientGinjector; +import org.ovirt.engine.ui.webadmin.place.ApplicationPlaces; +import org.ovirt.engine.ui.webadmin.section.main.presenter.AbstractMainTabWithDetailsPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.MainTabPanelPresenter; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; +import com.gwtplatform.dispatch.annotation.GenEvent; +import com.gwtplatform.mvp.client.TabData; +import com.gwtplatform.mvp.client.annotations.NameToken; +import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; +import com.gwtplatform.mvp.client.annotations.TabInfo; +import com.gwtplatform.mvp.client.proxy.PlaceManager; +import com.gwtplatform.mvp.client.proxy.PlaceRequest; +import com.gwtplatform.mvp.client.proxy.TabContentProxyPlace; + +public class MainTabGeoReplicationPresenter extends AbstractMainTabWithDetailsPresenter<GlusterVolumeEntity, GeoReplicationListModel, MainTabGeoReplicationPresenter.ViewDef, MainTabGeoReplicationPresenter.ProxyDef> { + + @GenEvent + public static class GeoReplicationSelectionChange { + + List<GlusterVolumeEntity> selectedItems; + + } + + @ProxyCodeSplit + @NameToken(ApplicationPlaces.geoReplicationMainTabPlace) + public interface ProxyDef extends TabContentProxyPlace<MainTabGeoReplicationPresenter> { + } + + public interface ViewDef extends AbstractMainTabWithDetailsPresenter.ViewDef<GlusterVolumeEntity> { + } + + @TabInfo(container = MainTabPanelPresenter.class) + static TabData getTabData(ClientGinjector ginjector) { + return new ModelBoundTabData(ginjector.getApplicationConstants().geoReplicationMainTabLabel(), 13, + ginjector.getMainTabGeoReplicationModelProvider()); + } + + @Inject + public MainTabGeoReplicationPresenter(EventBus eventBus, ViewDef view, ProxyDef proxy, + PlaceManager placeManager, MainModelProvider<GlusterVolumeEntity, GeoReplicationListModel> modelProvider) { + super(eventBus, view, proxy, placeManager, modelProvider); + } + + @Override + protected void fireTableSelectionChangeEvent() { + VolumeSelectionChangeEvent.fire(this, getSelectedItems()); + } + + @Override + protected PlaceRequest getMainTabRequest() { + return new PlaceRequest(ApplicationPlaces.geoReplicationMainTabPlace); + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabGeoReplicationView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabGeoReplicationView.java new file mode 100644 index 0000000..4f3d182 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabGeoReplicationView.java @@ -0,0 +1,27 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.tab; + +import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; +import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; +import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; +import org.ovirt.engine.ui.uicommonweb.models.gluster.georep.GeoReplicationListModel; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabGeoReplicationPresenter; +import org.ovirt.engine.ui.webadmin.section.main.view.AbstractMainTabWithDetailsTableView; + +import com.google.gwt.core.client.GWT; +import com.google.inject.Inject; + +public class MainTabGeoReplicationView extends AbstractMainTabWithDetailsTableView<GlusterVolumeEntity, GeoReplicationListModel> implements MainTabGeoReplicationPresenter.ViewDef { + + interface ViewIdHandler extends ElementIdHandler<MainTabGeoReplicationView> { + ViewIdHandler idHandler = GWT.create(ViewIdHandler.class); + } + + @Inject + public MainTabGeoReplicationView(MainModelProvider<GlusterVolumeEntity, GeoReplicationListModel> modelProvider, + ApplicationConstants constants) { + super(modelProvider); + ViewIdHandler.idHandler.generateAndSetIds(this); + initWidget(getTable()); + } +} -- To view, visit http://gerrit.ovirt.org/9528 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9fd6bc884054a590f42d5888c7532529cd06ccb7 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Kanagaraj M <kmayi...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches