Kobi Ianko has uploaded a new change for review. Change subject: webadmin: Adding Quota column to the Disk tab ......................................................................
webadmin: Adding Quota column to the Disk tab Adding a new column to the Disk tab, Quota. the new Quota column will be visible only in case the user point to a DC in the tree view, and that DC is not marked as Quota disabled. The possible value for this column is: Empty(null) - no Quota was selected for this Disk. String value - the name of the Quota selected for this Disk. Change-Id: I2332da722396a16aca9545b9ef0532ebc84d8d5e Bug-Url: https://bugzilla.redhat.com/949863 Signed-off-by: Kobi Ianko <[email protected]> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SystemTreeModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.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/section/main/presenter/tab/MainTabDiskPresenter.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java 6 files changed, 68 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/68/25068/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java index 6d35bbd..cca055a 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java @@ -50,6 +50,19 @@ } }; + public static final TextColumnWithTooltip<Disk> qoutaColumn = new TextColumnWithTooltip<Disk>() { + @Override + public String getValue(Disk object) { + + String value = null; + if (object.getDiskStorageType() == DiskStorageType.IMAGE) { + DiskImage diskImage = (DiskImage) object; + value = diskImage.getQuotaName(); + } + return value; + } + }; + public static final ImageResourceColumn<Disk> bootableDiskColumn = new ImageResourceColumn<Disk>() { @Override public ImageResource getValue(Disk object) { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SystemTreeModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SystemTreeModel.java index df4a370..184ec20 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SystemTreeModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SystemTreeModel.java @@ -447,6 +447,7 @@ storagesItem.setTitle(ConstantsManager.getInstance().getConstants().storageTitle()); storagesItem.setEntity(getDataCenters().get(count)); dataCenterItem.addChild(storagesItem); + treeItemById.put(getDataCenters().get(count).getId(), storagesItem); if (storages != null && storages.size() > 0) { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java index 815d1da..181482a 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java @@ -39,6 +39,7 @@ import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.help.HelpTag; +import org.ovirt.engine.ui.uicommonweb.models.CommonModel; import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicommonweb.models.ISupportSystemTreeContext; @@ -769,6 +770,12 @@ }, this); } else { + // Update the Quota at the corresponding DC object at the system tree. + // The DC Quota value from the tree is used at MainTabDiskView. + SystemTreeItemModel itemModel = CommonModel.getInstance().getSystemTree().getItemById(dataCenter.getId()); + StoragePool storagePool = (StoragePool) itemModel.getEntity(); + storagePool.setQuotaEnforcementType(dataCenter.getQuotaEnforcementType()); + // Otherwise use async action in order to close dialog immediately. Frontend.getInstance().runMultipleAction(VdcActionType.UpdateStoragePool, new ArrayList<VdcActionParametersBase>(Arrays.asList( 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 8dfc5bc..2f84c4f 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 @@ -2681,6 +2681,9 @@ @DefaultStringValue("ID") String idDisk(); + @DefaultStringValue("Qouta") + String qoutaDisk(); + @DefaultStringValue("Volume Format") String volumeFormatDisk(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabDiskPresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabDiskPresenter.java index 6fc4ea9..3cc4b9f 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabDiskPresenter.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabDiskPresenter.java @@ -6,6 +6,7 @@ import org.ovirt.engine.ui.common.place.PlaceRequestFactory; 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.CommonModel; import org.ovirt.engine.ui.uicommonweb.models.disks.DiskListModel; import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.IEventListener; @@ -13,6 +14,7 @@ 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 org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabDiskView; import com.google.gwt.event.shared.EventBus; import com.google.inject.Inject; @@ -42,6 +44,7 @@ public interface ViewDef extends AbstractMainTabWithDetailsPresenter.ViewDef<Disk> { IEventListener getDiskTypeChangedEventListener(); + IEventListener systemTreeChangedEventListener(); } @@ -74,6 +77,13 @@ entityChangedEvent.addListener(getView().getDiskTypeChangedEventListener()); } + Event systemTreeSelectedItemChangedEvent = + CommonModel.getInstance().getSystemTree().getSelectedItemChangedEvent(); + if (!systemTreeSelectedItemChangedEvent.getListeners().contains(getView().systemTreeChangedEventListener())) { + systemTreeSelectedItemChangedEvent.addListener(getView().systemTreeChangedEventListener()); + } + super.onReveal(); + ((MainTabDiskView) getView()).handleQuotaColumnVisibility(); } } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java index f117a455..3f4ec5e 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java @@ -2,6 +2,8 @@ import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType; +import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum; +import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; import org.ovirt.engine.ui.common.uicommon.model.CommonModelManager; import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; @@ -11,6 +13,8 @@ import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.CommonModel; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; +import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel; +import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemType; import org.ovirt.engine.ui.uicommonweb.models.disks.DiskListModel; import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; @@ -76,6 +80,33 @@ @Override public IEventListener getDiskTypeChangedEventListener() { return diskTypeChangedEventListener; + } + + final IEventListener systemTreeChangedEventListener = new IEventListener() { + @Override + public void eventRaised(Event ev, Object sender, EventArgs args) { + handleQuotaColumnVisibility(); + } + }; + + @Override + public IEventListener systemTreeChangedEventListener() { + return systemTreeChangedEventListener; + } + + private boolean isQuotaVisible; + public void handleQuotaColumnVisibility() { + isQuotaVisible = false; + SystemTreeItemModel treeItem = + (SystemTreeItemModel) CommonModel.getInstance().getSystemTree().getSelectedItem(); + if (treeItem != null + && SystemTreeItemType.DataCenter.equals(treeItem.getType())) { + StoragePool storagePool = (StoragePool) treeItem.getEntity(); + if (!QuotaEnforcementTypeEnum.DISABLED.equals(storagePool.getQuotaEnforcementType())) { + isQuotaVisible = true; + } + } + onDiskViewTypeChanged(); } void onDiskViewTypeChanged() { @@ -150,6 +181,9 @@ "100px"); //$NON-NLS-1$ getTable().ensureColumnPresent( + DisksViewColumns.qoutaColumn, constants.qoutaDisk(), (all || images || luns) && isQuotaVisible, "120px"); //$NON-NLS-1$ + + getTable().ensureColumnPresent( DisksViewColumns.descriptionColumn, constants.descriptionDisk(), all || images || luns, "90px"); //$NON-NLS-1$ } -- To view, visit http://gerrit.ovirt.org/25068 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2332da722396a16aca9545b9ef0532ebc84d8d5e Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Kobi Ianko <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
