anmolbabu has uploaded a new change for review. Change subject: [WIP]webadmin : Volume Capacity popup ......................................................................
[WIP]webadmin : Volume Capacity popup This patch provides UI for displaying the capacities of selected volumes. Change-Id: I04151d78838c1398cff42c84104e21d61d9c7747 Signed-off-by: Anmol Babu <[email protected]> --- A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeCapacityModel.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/ApplicationTemplates.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeCapacityPopupPresenterWidget.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeCapacityPopupView.ui.xml M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/SizeIndicatorColumn.java 7 files changed, 133 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/37/22537/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeCapacityModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeCapacityModel.java new file mode 100644 index 0000000..352146d --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeCapacityModel.java @@ -0,0 +1,7 @@ +package org.ovirt.engine.ui.uicommonweb.models.gluster; + +import org.ovirt.engine.ui.uicommonweb.models.Model; + +public class VolumeCapacityModel extends Model { + +} 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 863aa00..47fc9e5 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 @@ -2567,6 +2567,9 @@ @DefaultStringValue("Remove") String removeVolume(); + @DefaultStringValue("Capacity") + String volumeCapacity(); + @DefaultStringValue("Start") String startVolume(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java index bfcfea7..6c7acab 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java @@ -20,6 +20,25 @@ SafeHtml progressBar(int progress, String text, String color); /** + * Creates a progress bar template. + * + * @param progress + * Progress value in percent. + * @param text + * Text to show within the progress bar. + * @param sizeString + * Text to show below the progress bar. + */ + + @Template( + "<div class='engine-progress-box'>" + + "<div style='background: {2}; width: {0}%; height: 100%'></div>" + + "<div class='engine-progress-text'>{1}</div></div>" + + + "<div>{3}</div>") + SafeHtml progressBarWithBottomText(int progress, String text, String color, String sizeString); + + /** * Creates a tree-item HTML * * @param imageHtml diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeCapacityPopupPresenterWidget.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeCapacityPopupPresenterWidget.java new file mode 100644 index 0000000..aca5dea --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeCapacityPopupPresenterWidget.java @@ -0,0 +1,19 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster; + +import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; +import org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeCapacityModel; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; + +public class VolumeCapacityPopupPresenterWidget extends AbstractModelBoundPopupPresenterWidget<VolumeCapacityModel, VolumeCapacityPopupPresenterWidget.ViewDef> { + + public interface ViewDef extends AbstractModelBoundPopupPresenterWidget.ViewDef<VolumeCapacityModel> { + } + + @Inject + public VolumeCapacityPopupPresenterWidget(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/gluster/VolumeCapacityPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeCapacityPopupView.ui.xml new file mode 100644 index 0000000..1c8f20d --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeCapacityPopupView.ui.xml @@ -0,0 +1,41 @@ +<?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" xmlns:w="urn:import:org.ovirt.engine.ui.common.widget"> + + <ui:style> + .generalTabTopDecorator { + background-color: #D3D3D3; + margin-bottom: 8px; + margin-top: 4px; + margin-right: 3px; + padding-top: 6px; + padding-bottom: 6px; + } + + .tablePanel { + padding: 1px; + border: 1px solid #CED8DF; + } + + </ui:style> + + <d:SimpleDialogPanel width="200px" height="400px"> + <d:content> + <g:VerticalPanel> + <e:EntityModelCellTable ui:field="volumeCapacityTable" /> + </g:VerticalPanel> + <g:FlowPanel addStyleNames="{style.generalTabTopDecorator}"> + <g:HorizontalPanel> + <g:ScrollPanel addStyleNames="{style.tablePanel}"> + <e:EntityModelCellTable ui:field="nearThresholdTable" /> + </g:ScrollPanel> + <g:ScrollPanel addStyleNames="{style.tablePanel}"> + <e:EntityModelCellTable ui:field="warningRangeTable" /> + </g:ScrollPanel> + </g:HorizontalPanel> + </g:FlowPanel> + </d:content> + </d:SimpleDialogPanel> +</ui:UiBinder> diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java index 5b0b2f6..19ebfdb 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java @@ -130,7 +130,6 @@ constants.activitiesOnVolume(), "100px"); //$NON-NLS-1$ - getTable().addActionButton(new WebAdminButtonDefinition<GlusterVolumeEntity>(constants.newVolume()) { @Override protected UICommand resolveCommand() { @@ -167,6 +166,14 @@ return getMainModel().getOptimizeForVirtStoreCommand(); } }); + + getTable().addActionButton(new WebAdminButtonDefinition<GlusterVolumeEntity>(constants.volumeCapacity()) { + + @Override + protected UICommand resolveCommand() { + return null; + } + }); } private MenuCell<GlusterTaskSupport> getRebalanceActivityMenu(ApplicationConstants constants) { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/SizeIndicatorColumn.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/SizeIndicatorColumn.java new file mode 100644 index 0000000..b2495a8 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/SizeIndicatorColumn.java @@ -0,0 +1,36 @@ +package org.ovirt.engine.ui.webadmin.widget.table.column; + +import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSizeInfo; +import org.ovirt.engine.core.common.utils.SizeConverter; +import org.ovirt.engine.core.common.utils.SizeConverter.SizeUnit; +import org.ovirt.engine.ui.common.widget.table.column.SafeHtmlColumn; +import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider; + +import com.google.gwt.safehtml.shared.SafeHtml; + +public abstract class SizeIndicatorColumn<T> extends SafeHtmlColumn<T> { + + @Override + public SafeHtml getValue(T object) { + Integer progressValue = getProgressValue(object); + + int progress = progressValue != null ? progressValue : 0; + String text = getProgressText(object); + + // Choose color by progress + String color = progress < 70 ? "#669966" : progress < 95 ? "#FF9900" : "#FF0000"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + + String sizeString = SizeConverter.autoConvert(((GlusterVolumeSizeInfo)object).getFreeSize(), SizeUnit.BYTES) + "of" + SizeConverter.autoConvert(((GlusterVolumeSizeInfo)object).getTotalSize(), SizeConverter.SizeUnit.BYTES); + return ClientGinjectorProvider.getApplicationTemplates().progressBarWithBottomText(progress, text, color, sizeString); + } + + /** + * Returns the progress value in percent ({@code null} values will be interpreted as zeroes). + */ + protected abstract Integer getProgressValue(T object); + + /** + * Returns the text to show within the progress bar. + */ + protected abstract String getProgressText(T object); +} -- To view, visit http://gerrit.ovirt.org/22537 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I04151d78838c1398cff42c84104e21d61d9c7747 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: anmolbabu <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
