Tomas Jelinek has uploaded a new change for review. Change subject: webadmin: added images main tab ......................................................................
webadmin: added images main tab Change-Id: I0e16d8f160964e51a8abf2c5888f6bd096cbd026 Signed-off-by: Tomas Jelinek <[email protected]> --- A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/template/ImageGeneralModelForm.java 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/image/ImageGeneralModel.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImageListModel.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/ImageModule.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/MainTabImagePresenter.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/image/ImageSubTabPanelPresenter.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/image/SubTabImageGeneralPresenter.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabImageView.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/image/ImageSubTabPanelView.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/image/SubTabImageGeneralView.java 16 files changed, 458 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/42/12442/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/template/ImageGeneralModelForm.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/template/ImageGeneralModelForm.java new file mode 100644 index 0000000..ad85190 --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/template/ImageGeneralModelForm.java @@ -0,0 +1,27 @@ +package org.ovirt.engine.ui.common.widget.uicommon.template; + +import org.ovirt.engine.ui.common.CommonApplicationConstants; +import org.ovirt.engine.ui.common.uicommon.model.ModelProvider; +import org.ovirt.engine.ui.uicommonweb.models.image.ImageGeneralModel; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.editor.client.SimpleBeanEditorDriver; + +public class ImageGeneralModelForm extends TemplateBasedGeneralModelForm<ImageGeneralModel> { + + interface Driver extends SimpleBeanEditorDriver<ImageGeneralModel, ImageGeneralModelForm> { + Driver driver = GWT.create(Driver.class); + } + + public ImageGeneralModelForm(ModelProvider<ImageGeneralModel> modelProvider, + CommonApplicationConstants constants) { + super(modelProvider, constants); + } + + @Override + protected SimpleBeanEditorDriver<ImageGeneralModel, ImageGeneralModelForm> getInitializedDriver() { + Driver.driver.initialize(this); + return Driver.driver; + } + +} 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 851028b..9da5c97 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 @@ -38,6 +38,7 @@ import org.ovirt.engine.ui.uicommonweb.models.storage.StorageListModel; import org.ovirt.engine.ui.uicommonweb.models.tags.TagListModel; import org.ovirt.engine.ui.uicommonweb.models.tags.TagModel; +import org.ovirt.engine.ui.uicommonweb.models.templates.ImageListModel; import org.ovirt.engine.ui.uicommonweb.models.templates.InstanceTypeListModel; import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateListModel; import org.ovirt.engine.ui.uicommonweb.models.users.UserListModel; @@ -792,6 +793,7 @@ private SearchableListModel diskList; private SearchableListModel networkList; private SearchableListModel instanceTypeList; + private SearchableListModel imageList; private void InitItems() { @@ -837,6 +839,9 @@ instanceTypeList = new InstanceTypeListModel(); list.add(instanceTypeList); + imageList = new ImageListModel(); + list.add(imageList); + setItems(list); roleListModel = new RoleListModel(); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/image/ImageGeneralModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/image/ImageGeneralModel.java new file mode 100644 index 0000000..ff46a6e --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/image/ImageGeneralModel.java @@ -0,0 +1,7 @@ +package org.ovirt.engine.ui.uicommonweb.models.image; + +import org.ovirt.engine.ui.uicommonweb.models.templates.TamplateBasedGeneralModel; + +public class ImageGeneralModel extends TamplateBasedGeneralModel { + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImageListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImageListModel.java new file mode 100644 index 0000000..858226d --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImageListModel.java @@ -0,0 +1,61 @@ +package org.ovirt.engine.ui.uicommonweb.models.templates; + +import org.ovirt.engine.core.common.businessentities.ImageType; +import org.ovirt.engine.core.common.interfaces.SearchType; +import org.ovirt.engine.core.common.queries.SearchParameters; +import org.ovirt.engine.core.common.queries.VdcQueryType; +import org.ovirt.engine.ui.uicommonweb.models.EntityModel; +import org.ovirt.engine.ui.uicommonweb.models.ISupportSystemTreeContext; +import org.ovirt.engine.ui.uicommonweb.models.image.ImageGeneralModel; +import org.ovirt.engine.ui.uicompat.ConstantsManager; +import org.ovirt.engine.ui.uicompat.ObservableCollection; + +public class ImageListModel extends BaseTemplateDerivedListModel<ImageType> implements ISupportSystemTreeContext { + + public ImageListModel() { + super(ConstantsManager.getInstance().getConstants().imagesTitle()); + + setDefaultSearchString("Template:type = IMAGE"); //$NON-NLS-1$ + setSearchString(getDefaultSearchString()); + } + + @Override + protected String extractNameFromEntity(ImageType entity) { + return entity.getName(); + } + + @Override + protected VdcQueryType getEntityExportDomain() { + // TODO get instance types from export domain + return VdcQueryType.GetVmsFromExportDomain; + } + + @Override + protected void sendWarningForNonExportableDisks(ImageType entity) { + // no op + } + + @Override + protected String getListName() { + return "ImageListModel"; //$NON-NLS-1$ + } + + @Override + protected void SyncSearch() { + // for now - just to get at least the blank template + SearchParameters tempVar = new SearchParameters("Template:", SearchType.VmTemplate); //$NON-NLS-1$ + tempVar.setMaxCount(getSearchPageSize()); + super.SyncSearch(VdcQueryType.Search, tempVar); + } + + @Override + protected void InitDetailModels() { + super.InitDetailModels(); + + ObservableCollection<EntityModel> list = new ObservableCollection<EntityModel>(); + list.add(new ImageGeneralModel()); + + setDetailModels(list); + } + +} 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 1dbafbd..628c265 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 @@ -76,6 +76,9 @@ @DefaultStringValue("Instance Types") String instanceTypesMainTabLabel(); + @DefaultStringValue("Images") + String imageMainTabLabel(); + @DefaultStringValue("Pools") String poolMainTabLabel(); @@ -520,6 +523,9 @@ @DefaultStringValue("General") String instanceTypeGeneralSubTabLabel(); + @DefaultStringValue("General") + String imageGeneralSubTabLabel(); + @DefaultStringValue("Virtual Machines") String templateVmSubTabLabel(); 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 45a9111..f94edc0 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 @@ -5,11 +5,13 @@ import org.ovirt.engine.core.common.businessentities.AuditLog; import org.ovirt.engine.core.common.businessentities.DbUser; import org.ovirt.engine.core.common.businessentities.Disk; +import org.ovirt.engine.core.common.businessentities.ImageType; import org.ovirt.engine.core.common.businessentities.InstanceType; import org.ovirt.engine.core.common.businessentities.Quota; import org.ovirt.engine.core.common.businessentities.QuotaStorage; import org.ovirt.engine.core.common.businessentities.QuotaVdsGroup; import org.ovirt.engine.core.common.businessentities.Snapshot; +import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VM; @@ -17,7 +19,6 @@ import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.event_subscriber; import org.ovirt.engine.core.common.businessentities.permissions; -import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.storage_pool; import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; @@ -64,6 +65,7 @@ import org.ovirt.engine.ui.uicommonweb.models.hosts.HostInterfaceListModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostListModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostVmListModel; +import org.ovirt.engine.ui.uicommonweb.models.image.ImageGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.instanceType.InstanceTypeGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkClusterListModel; import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkGeneralModel; @@ -93,6 +95,7 @@ import org.ovirt.engine.ui.uicommonweb.models.storage.StorageVmListModel; import org.ovirt.engine.ui.uicommonweb.models.storage.TemplateBackupModel; import org.ovirt.engine.ui.uicommonweb.models.storage.VmBackupModel; +import org.ovirt.engine.ui.uicommonweb.models.templates.ImageListModel; import org.ovirt.engine.ui.uicommonweb.models.templates.InstanceTypeListModel; import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateDiskListModel; import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateEventListModel; @@ -134,6 +137,7 @@ 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.MainTabHostPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabImagePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabInstanceTypePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabNetworkPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabPoolPresenter; @@ -178,6 +182,8 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostInterfacePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostPermissionPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostVmPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.image.ImageSubTabPanelPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.image.SubTabImageGeneralPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.instanceType.InstanceTypeSubTabPanelPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.instanceType.SubTabInstanceTypeGeneralPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.network.NetworkSubTabPanelPresenter; @@ -303,6 +309,10 @@ MainModelProvider<VM, VmListModel> getMainTabVirtualMachineModelProvider(); MainModelProvider<InstanceType, InstanceTypeListModel> getMainTabInstanceTypeModelProvider(); + + MainModelProvider<ImageType, ImageListModel> getMainTabImageModelProvider(); + + AsyncProvider<MainTabImagePresenter> getMainTabImagePresenterProvider(); AsyncProvider<MainTabInstanceTypePresenter> getMainTabInstanceTypePresenterProvider(); @@ -559,6 +569,13 @@ DetailModelProvider<InstanceTypeListModel, InstanceTypeGeneralModel> getSubTabInstanceTypeGeneralModelProvider(); + // Image Type + AsyncProvider<ImageSubTabPanelPresenter> getImageTabPanelPresenter(); + + AsyncProvider<SubTabImageGeneralPresenter> getSubTabImageGeneralPresenter(); + + DetailModelProvider<ImageListModel, ImageGeneralModel> getSubTabImageGeneralModelProvider(); + // User AsyncProvider<UserSubTabPanelPresenter> getUserSubTabPanelPresenter(); 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 5a4fffd..1b5a86e 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 @@ -92,6 +92,7 @@ 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.MainTabHostPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabImagePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabInstanceTypePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabNetworkPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabPoolPresenter; @@ -136,6 +137,8 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostInterfacePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostPermissionPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostVmPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.image.ImageSubTabPanelPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.image.SubTabImageGeneralPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.instanceType.InstanceTypeSubTabPanelPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.instanceType.SubTabInstanceTypeGeneralPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.network.NetworkSubTabPanelPresenter; @@ -281,6 +284,7 @@ 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.MainTabHostView; +import org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabImageView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabInstanceTypesView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabNetworkView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabPoolView; @@ -325,6 +329,8 @@ import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostInterfaceView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostPermissionView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostVmView; +import org.ovirt.engine.ui.webadmin.section.main.view.tab.image.ImageSubTabPanelView; +import org.ovirt.engine.ui.webadmin.section.main.view.tab.image.SubTabImageGeneralView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.instanceType.InstanceTypeSubTabPanelView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.instanceType.SubTabInstanceTypeGeneralView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.network.NetworkSubTabPanelView; @@ -467,6 +473,10 @@ MainTabInstanceTypePresenter.ViewDef.class, MainTabInstanceTypesView.class, MainTabInstanceTypePresenter.ProxyDef.class); + bindPresenter(MainTabImagePresenter.class, + MainTabImagePresenter.ViewDef.class, + MainTabImageView.class, + MainTabImagePresenter.ProxyDef.class); bindPresenter(MainTabUserPresenter.class, MainTabUserPresenter.ViewDef.class, MainTabUserView.class, @@ -744,6 +754,17 @@ SubTabInstanceTypeGeneralView.class, SubTabInstanceTypeGeneralPresenter.ProxyDef.class); + // Image + bindPresenter(ImageSubTabPanelPresenter.class, + ImageSubTabPanelPresenter.ViewDef.class, + ImageSubTabPanelView.class, + ImageSubTabPanelPresenter.ProxyDef.class); + + bindPresenter(SubTabImageGeneralPresenter.class, + SubTabImageGeneralPresenter.ViewDef.class, + SubTabImageGeneralView.class, + SubTabImageGeneralPresenter.ProxyDef.class); + // User bindPresenter(UserSubTabPanelPresenter.class, UserSubTabPanelPresenter.ViewDef.class, 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 699dcd9..80dede6 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 @@ -7,6 +7,7 @@ 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.HostModule; +import org.ovirt.engine.ui.webadmin.gin.uicommon.ImageModule; import org.ovirt.engine.ui.webadmin.gin.uicommon.InstanceTypeModule; import org.ovirt.engine.ui.webadmin.gin.uicommon.NetworkModule; import org.ovirt.engine.ui.webadmin.gin.uicommon.PoolModule; @@ -62,6 +63,7 @@ install(new DiskModule()); install(new NetworkModule()); install(new InstanceTypeModule()); + install(new ImageModule()); // SystemTreeModel bind(SystemTreeModelProvider.class).asEagerSingleton(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ImageModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ImageModule.java new file mode 100644 index 0000000..056c090 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ImageModule.java @@ -0,0 +1,47 @@ +package org.ovirt.engine.ui.webadmin.gin.uicommon; + +import org.ovirt.engine.core.common.businessentities.ImageType; +import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; +import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider; +import org.ovirt.engine.ui.common.uicommon.model.DetailTabModelProvider; +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.Model; +import org.ovirt.engine.ui.uicommonweb.models.image.ImageGeneralModel; +import org.ovirt.engine.ui.uicommonweb.models.templates.ImageListModel; +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 ImageModule extends AbstractGinModule { + + @Provides + @Singleton + public MainModelProvider<ImageType, ImageListModel> getImageListProvider(ClientGinjector ginjector) { + return new MainTabModelProvider<ImageType, ImageListModel>(ginjector, ImageListModel.class) { + + @Override + public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(ImageListModel source, + UICommand lastExecutedCommand, + Model windowModel) { + return super.getModelPopup(source, lastExecutedCommand, windowModel); + } + }; + } + + @Provides + @Singleton + public DetailModelProvider<ImageListModel, ImageGeneralModel> getInstanceTypeGeneralProvider(ClientGinjector ginjector) { + return new DetailTabModelProvider<ImageListModel, ImageGeneralModel>(ginjector, + ImageListModel.class, + ImageGeneralModel.class); + } + + @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 565b0da..4f820b3 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 @@ -23,6 +23,8 @@ public static final String instanceTypesMainTabPlace = "instanceTypes"; //$NON-NLS-1$ + public static final String imageMainTabPlace = "image"; //$NON-NLS-1$ + public static final String poolMainTabPlace = "pools"; //$NON-NLS-1$ public static final String templateMainTabPlace = "templates"; //$NON-NLS-1$ @@ -205,6 +207,10 @@ public static final String instanceTypeGeneralSubTabPlace = instanceTypesMainTabPlace + SUB_TAB_PREFIX + "general"; //$NON-NLS-1$ + // Image + public static final String imageGeneralSubTabPlace = imageMainTabPlace + SUB_TAB_PREFIX + + "general"; //$NON-NLS-1$ + // User public static final String userGeneralSubTabPlace = userMainTabPlace + SUB_TAB_PREFIX diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabImagePresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabImagePresenter.java new file mode 100644 index 0000000..a620c82 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabImagePresenter.java @@ -0,0 +1,67 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.tab; + +import java.util.List; +import org.ovirt.engine.core.common.businessentities.ImageType; + +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.templates.ImageListModel; +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 MainTabImagePresenter extends AbstractMainTabWithDetailsPresenter<ImageType, ImageListModel, MainTabImagePresenter.ViewDef, MainTabImagePresenter.ProxyDef> { + + @GenEvent + public static class ImageSelectionChange { + + List<ImageType> selectedItems; + + } + + @Inject + public MainTabImagePresenter(EventBus eventBus, + ViewDef view, + ProxyDef proxy, + PlaceManager placeManager, + MainModelProvider<ImageType, ImageListModel> modelProvider) { + super(eventBus, view, proxy, placeManager, modelProvider); + } + + @ProxyCodeSplit + @NameToken(ApplicationPlaces.imageMainTabPlace) + public interface ProxyDef extends TabContentProxyPlace<MainTabImagePresenter> { + } + + public interface ViewDef extends AbstractMainTabWithDetailsPresenter.ViewDef<ImageType> { + } + + @TabInfo(container = MainTabPanelPresenter.class) + static TabData getTabData(ClientGinjector ginjector) { + return new ModelBoundTabData(ginjector.getApplicationConstants().imageMainTabLabel(), 13, + ginjector.getMainTabImageModelProvider()); + } + + @Override + protected void fireTableSelectionChangeEvent() { + ImageSelectionChangeEvent.fire(this, getSelectedItems()); + } + + @Override + protected PlaceRequest getMainTabRequest() { + return new PlaceRequest(ApplicationPlaces.imageMainTabPlace); + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/image/ImageSubTabPanelPresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/image/ImageSubTabPanelPresenter.java new file mode 100644 index 0000000..ca1cfa3 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/image/ImageSubTabPanelPresenter.java @@ -0,0 +1,37 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.tab.image; + +import org.ovirt.engine.ui.common.presenter.DynamicTabContainerPresenter.DynamicTabPanel; +import org.ovirt.engine.ui.webadmin.section.main.presenter.AbstractSubTabPanelPresenter; + +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.event.shared.GwtEvent.Type; +import com.google.inject.Inject; +import com.gwtplatform.mvp.client.RequestTabsHandler; +import com.gwtplatform.mvp.client.TabView; +import com.gwtplatform.mvp.client.annotations.ContentSlot; +import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; +import com.gwtplatform.mvp.client.annotations.RequestTabs; +import com.gwtplatform.mvp.client.proxy.Proxy; +import com.gwtplatform.mvp.client.proxy.RevealContentHandler; + +public class ImageSubTabPanelPresenter extends AbstractSubTabPanelPresenter<ImageSubTabPanelPresenter.ViewDef, ImageSubTabPanelPresenter.ProxyDef> { + + @ProxyCodeSplit + public interface ProxyDef extends Proxy<ImageSubTabPanelPresenter> { + } + + public interface ViewDef extends TabView, DynamicTabPanel { + } + + @RequestTabs + public static final Type<RequestTabsHandler> TYPE_RequestTabs = new Type<RequestTabsHandler>(); + + @ContentSlot + public static final Type<RevealContentHandler<?>> TYPE_SetTabContent = new Type<RevealContentHandler<?>>(); + + @Inject + public ImageSubTabPanelPresenter(EventBus eventBus, ViewDef view, ProxyDef proxy) { + super(eventBus, view, proxy, TYPE_SetTabContent, TYPE_RequestTabs); + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/image/SubTabImageGeneralPresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/image/SubTabImageGeneralPresenter.java new file mode 100644 index 0000000..c3e5863 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/image/SubTabImageGeneralPresenter.java @@ -0,0 +1,62 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.tab.image; + +import org.ovirt.engine.core.common.businessentities.ImageType; +import org.ovirt.engine.ui.common.presenter.AbstractSubTabPresenter; +import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider; +import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData; +import org.ovirt.engine.ui.uicommonweb.models.image.ImageGeneralModel; +import org.ovirt.engine.ui.uicommonweb.models.templates.ImageListModel; +import org.ovirt.engine.ui.webadmin.gin.ClientGinjector; +import org.ovirt.engine.ui.webadmin.place.ApplicationPlaces; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; +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.ProxyEvent; +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.RevealContentEvent; +import com.gwtplatform.mvp.client.proxy.TabContentProxyPlace; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.ImageSelectionChangeEvent; + +public class SubTabImageGeneralPresenter extends AbstractSubTabPresenter<ImageType, ImageListModel, ImageGeneralModel, SubTabImageGeneralPresenter.ViewDef, SubTabImageGeneralPresenter.ProxyDef> { + + @ProxyCodeSplit + @NameToken(ApplicationPlaces.imageGeneralSubTabPlace) + public interface ProxyDef extends TabContentProxyPlace<SubTabImageGeneralPresenter> { + } + + public interface ViewDef extends AbstractSubTabPresenter.ViewDef<ImageType> { + } + + @TabInfo(container = ImageSubTabPanelPresenter.class) + static TabData getTabData(ClientGinjector ginjector) { + return new ModelBoundTabData(ginjector.getApplicationConstants().imageGeneralSubTabLabel(), 0, + ginjector.getSubTabImageGeneralModelProvider()); + } + + @Inject + public SubTabImageGeneralPresenter(EventBus eventBus, ViewDef view, ProxyDef proxy, + PlaceManager placeManager, DetailModelProvider<ImageListModel, ImageGeneralModel> modelProvider) { + super(eventBus, view, proxy, placeManager, modelProvider); + } + + @Override + protected void revealInParent() { + RevealContentEvent.fire(this, ImageSubTabPanelPresenter.TYPE_SetTabContent, this); + } + + @Override + protected PlaceRequest getMainTabRequest() { + return new PlaceRequest(ApplicationPlaces.imageMainTabPlace); + } + + @ProxyEvent + public void onTemplateSelectionChange(ImageSelectionChangeEvent event) { + updateMainTabSelection(event.getSelectedItems()); + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabImageView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabImageView.java new file mode 100644 index 0000000..cbc10e1 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabImageView.java @@ -0,0 +1,43 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.tab; + +import org.ovirt.engine.core.common.businessentities.ImageType; +import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; +import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; +import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; +import org.ovirt.engine.ui.uicommonweb.models.templates.ImageListModel; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.ApplicationResources; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabImagePresenter; +import org.ovirt.engine.ui.webadmin.section.main.view.AbstractMainTabWithDetailsTableView; + +import com.google.gwt.core.client.GWT; +import com.google.inject.Inject; + +public class MainTabImageView extends AbstractMainTabWithDetailsTableView<ImageType, ImageListModel> implements MainTabImagePresenter.ViewDef { + + interface ViewIdHandler extends ElementIdHandler<MainTabImageView> { + ViewIdHandler idHandler = GWT.create(ViewIdHandler.class); + } + + @Inject + public MainTabImageView(MainModelProvider<ImageType, ImageListModel> modelProvider, + ApplicationResources resources, ApplicationConstants constants) { + super(modelProvider); + ViewIdHandler.idHandler.generateAndSetIds(this); + initTable(resources, constants); + initWidget(getTable()); + } + + void initTable(ApplicationResources resources, ApplicationConstants constants) { + getTable().enableColumnResizing(); + + TextColumnWithTooltip<ImageType> nameColumn = new TextColumnWithTooltip<ImageType>() { + @Override + public String getValue(ImageType object) { + return object.getName(); + } + }; + getTable().addColumn(nameColumn, constants.namePool(), "150px"); //$NON-NLS-1$ + + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/image/ImageSubTabPanelView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/image/ImageSubTabPanelView.java new file mode 100644 index 0000000..2020e49 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/image/ImageSubTabPanelView.java @@ -0,0 +1,26 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.tab.image; + +import org.ovirt.engine.ui.common.view.AbstractTabPanelView; +import org.ovirt.engine.ui.common.widget.tab.AbstractTabPanel; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.image.ImageSubTabPanelPresenter; +import org.ovirt.engine.ui.webadmin.widget.tab.SimpleTabPanel; + +public class ImageSubTabPanelView extends AbstractTabPanelView implements ImageSubTabPanelPresenter.ViewDef { + + private final SimpleTabPanel tabPanel = new SimpleTabPanel(); + + public ImageSubTabPanelView() { + initWidget(getTabPanel()); + } + + @Override + protected Object getContentSlot() { + return ImageSubTabPanelPresenter.TYPE_SetTabContent; + } + + @Override + protected AbstractTabPanel getTabPanel() { + return tabPanel; + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/image/SubTabImageGeneralView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/image/SubTabImageGeneralView.java new file mode 100644 index 0000000..a9f23b0 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/image/SubTabImageGeneralView.java @@ -0,0 +1,23 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.tab.image; + +import org.ovirt.engine.core.common.businessentities.ImageType; +import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider; +import org.ovirt.engine.ui.common.widget.uicommon.template.ImageGeneralModelForm; +import org.ovirt.engine.ui.uicommonweb.models.image.ImageGeneralModel; +import org.ovirt.engine.ui.uicommonweb.models.templates.ImageListModel; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.image.SubTabImageGeneralPresenter; +import org.ovirt.engine.ui.webadmin.section.main.view.tab.template.AbstractSubTabTemplateBasedGeneralView; + +import com.google.gwt.editor.client.Editor; +import com.google.inject.Inject; + +public class SubTabImageGeneralView extends AbstractSubTabTemplateBasedGeneralView<ImageType, ImageListModel, ImageGeneralModel> implements SubTabImageGeneralPresenter.ViewDef, Editor<ImageGeneralModel> { + + @Inject + public SubTabImageGeneralView(DetailModelProvider<ImageListModel, ImageGeneralModel> modelProvider, + ApplicationConstants constants) { + super(modelProvider, constants, new ImageGeneralModelForm(modelProvider, constants)); + } + +} -- To view, visit http://gerrit.ovirt.org/12442 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0e16d8f160964e51a8abf2c5888f6bd096cbd026 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Tomas Jelinek <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
