Kanagaraj M has uploaded a new change for review. Change subject: webadmin:[WIP] volumes tab - clickable icon ......................................................................
webadmin:[WIP] volumes tab - clickable icon . Change-Id: I49331d1b21cd43a9c2b9b0251ceb34fdb016aaf8 Signed-off-by: Kanagaraj M <kmayi...@redhat.com> --- 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/VolumeActivityActionCell.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityColumn.java R frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityStatusCell.java 4 files changed, 116 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/74/19574/1 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 b7dd836..64a0609 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 @@ -23,6 +23,7 @@ import org.ovirt.engine.ui.webadmin.widget.action.WebAdminButtonDefinition; import org.ovirt.engine.ui.webadmin.widget.action.WebAdminMenuBarButtonDefinition; import org.ovirt.engine.ui.webadmin.widget.table.column.VolumeActivityColumn; +import org.ovirt.engine.ui.webadmin.widget.table.column.VolumeActivityStatusCell; import org.ovirt.engine.ui.webadmin.widget.table.column.VolumeStatusColumn; import com.google.gwt.core.client.GWT; @@ -113,7 +114,12 @@ }; getTable().addColumn(transportColumn, constants.transportTypesVolume(), "150px"); //$NON-NLS-1$ - getTable().addColumn(new VolumeActivityColumn(), constants.activitiesOnVolume(), "100px"); //$NON-NLS-1$ + getTable().addColumn(new VolumeActivityColumn(new VolumeActivityStatusCell() { + @Override + public UICommand resolveCommand() { + return getMainModel().getStatusRebalanceCommand(); + } + }), constants.activitiesOnVolume(), "100px"); //$NON-NLS-1$ getTable().addActionButton(new WebAdminButtonDefinition<GlusterVolumeEntity>(constants.newVolume()) { @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityActionCell.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityActionCell.java new file mode 100644 index 0000000..6dbdc04 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityActionCell.java @@ -0,0 +1,80 @@ +package org.ovirt.engine.ui.webadmin.widget.table.column; + +import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; +import org.ovirt.engine.ui.uicommonweb.ICommandTarget; +import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.ApplicationResources; +import org.ovirt.engine.ui.webadmin.ApplicationTemplates; +import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider; + +import com.google.gwt.cell.client.AbstractCell; +import com.google.gwt.cell.client.ValueUpdater; +import com.google.gwt.core.client.Scheduler.ScheduledCommand; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.EventTarget; +import com.google.gwt.dom.client.NativeEvent; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.google.gwt.user.client.ui.AbstractImagePrototype; +import com.google.gwt.user.client.ui.MenuBar; +import com.google.gwt.user.client.ui.MenuItem; + +public abstract class VolumeActivityActionCell extends AbstractCell<GlusterVolumeEntity> { + + ApplicationResources resources = ClientGinjectorProvider.getApplicationResources(); + + ApplicationConstants constants = ClientGinjectorProvider.getApplicationConstants(); + + ApplicationTemplates applicationTemplates = ClientGinjectorProvider.getApplicationTemplates(); + + MenuBar menu = new MenuBar(); + public VolumeActivityActionCell() { + super("click"); //$NON-NLS-1$ + menu.addItem(new MenuItem("Start", new ScheduledCommand() { //$NON-NLS-1$ + @Override + public void execute() { + + } + })); + } + + @Override + public void render(Context context, GlusterVolumeEntity volume, SafeHtmlBuilder sb) { + ImageResource image = resources.downImage(); + SafeHtml activityImageHtml = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(image).getHTML()); + sb.append(applicationTemplates.image(activityImageHtml)); + } + + public void onBrowserEvent(Context context, + Element parent, + GlusterVolumeEntity value, + NativeEvent event, + ValueUpdater<GlusterVolumeEntity> valueUpdater) { + super.onBrowserEvent(context, parent, value, event, valueUpdater); + // Handle the click event. + if ("click".equals(event.getType())) { //$NON-NLS-1$ + // Ignore clicks that occur outside of the outermost element. + EventTarget eventTarget = event.getEventTarget(); + if (parent.getFirstChildElement().isOrHasChild(Element.as(eventTarget))) { + resolveCommand().execute(value); + } + } + } + + public UICommand resolveCommand() { + return new UICommand("Menu", new ICommandTarget() { + @Override + public void executeCommand(UICommand uiCommand, Object... parameters) { + + } + + @Override + public void executeCommand(UICommand command) { + + } + }); + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityColumn.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityColumn.java index 1156512..1d48d3f 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityColumn.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityColumn.java @@ -6,8 +6,8 @@ public class VolumeActivityColumn extends Column<GlusterVolumeEntity, GlusterVolumeEntity> { - public VolumeActivityColumn() { - super(new VolumeActivityCell()); + public VolumeActivityColumn(VolumeActivityStatusCell cell) { + super(cell); } @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityCell.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityStatusCell.java similarity index 70% rename from frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityCell.java rename to frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityStatusCell.java index c658b2f..dc432c7 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityCell.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityStatusCell.java @@ -2,25 +2,34 @@ import org.ovirt.engine.core.common.asynctasks.gluster.GlusterTaskType; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; +import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.webadmin.ApplicationConstants; import org.ovirt.engine.ui.webadmin.ApplicationResources; import org.ovirt.engine.ui.webadmin.ApplicationTemplates; import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider; import com.google.gwt.cell.client.AbstractCell; +import com.google.gwt.cell.client.ValueUpdater; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.EventTarget; +import com.google.gwt.dom.client.NativeEvent; import com.google.gwt.resources.client.ImageResource; import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.safehtml.shared.SafeHtmlUtils; import com.google.gwt.user.client.ui.AbstractImagePrototype; -public class VolumeActivityCell extends AbstractCell<GlusterVolumeEntity> { +public abstract class VolumeActivityStatusCell extends AbstractCell<GlusterVolumeEntity> { ApplicationResources resources = ClientGinjectorProvider.getApplicationResources(); ApplicationConstants constants = ClientGinjectorProvider.getApplicationConstants(); ApplicationTemplates applicationTemplates = ClientGinjectorProvider.getApplicationTemplates(); + + public VolumeActivityStatusCell() { + super("click"); //$NON-NLS-1$ + } @Override public void render(Context context, GlusterVolumeEntity volume, SafeHtmlBuilder sb) { @@ -66,4 +75,21 @@ } } + public void onBrowserEvent(Context context, + Element parent, + GlusterVolumeEntity value, + NativeEvent event, + ValueUpdater<GlusterVolumeEntity> valueUpdater) { + super.onBrowserEvent(context, parent, value, event, valueUpdater); + // Handle the click event. + if ("click".equals(event.getType())) { //$NON-NLS-1$ + // Ignore clicks that occur outside of the outermost element. + EventTarget eventTarget = event.getEventTarget(); + if (parent.getFirstChildElement().isOrHasChild(Element.as(eventTarget))) { + resolveCommand().execute(value); + } + } + } + + public abstract UICommand resolveCommand(); } -- To view, visit http://gerrit.ovirt.org/19574 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I49331d1b21cd43a9c2b9b0251ceb34fdb016aaf8 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