Greg Sheremeta has uploaded a new change for review. Change subject: userportal, webadmin: refactor EventHandlingCell logic ......................................................................
userportal, webadmin: refactor EventHandlingCell logic (Patch 4aa of 12) Introduced EventHandlingCellMixin and moved EventHandlingCell::handlesEvent() implementations to there. Some of them were shared -- this avoids copying and pasting code. No functional changes -- just a refactor. Change-Id: I0c242022965982723c0068d2df3db6472dba6394 Signed-off-by: Greg Sheremeta <gsher...@redhat.com> --- A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/cell/EventHandlingCellMixin.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/cell/ListModelListBoxCell.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractCheckboxColumn.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledCheckboxCell.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledRadioCell.java 5 files changed, 36 insertions(+), 24 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/38720/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/cell/EventHandlingCellMixin.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/cell/EventHandlingCellMixin.java new file mode 100644 index 0000000..4f2b1a3 --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/cell/EventHandlingCellMixin.java @@ -0,0 +1,31 @@ +package org.ovirt.engine.ui.common.widget.table.cell; + +import org.ovirt.engine.ui.uicommonweb.models.EntityModel; + +import com.google.gwt.dom.client.BrowserEvents; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.NativeEvent; +import com.google.gwt.view.client.CellPreviewEvent; + +public class EventHandlingCellMixin { + + public static boolean inputHandlesClick(CellPreviewEvent<EntityModel> event) { + NativeEvent nativeEvent = event.getNativeEvent(); + if (!BrowserEvents.CLICK.equals(nativeEvent.getType())) { + return false; + } + Element target = nativeEvent.getEventTarget().cast(); + return "input".equals(target.getTagName().toLowerCase()); //$NON-NLS-1$ + } + + public static boolean selectOptionHandlesClick(CellPreviewEvent<EntityModel> event) { + NativeEvent nativeEvent = event.getNativeEvent(); + if (!BrowserEvents.CLICK.equals(nativeEvent.getType())) { + return false; + } + Element target = nativeEvent.getEventTarget().cast(); + String tagName = target.getTagName().toLowerCase(); + return "select".equals(tagName) || "option".equals(tagName); //$NON-NLS-1$ //$NON-NLS-2$ + } + +} diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/cell/ListModelListBoxCell.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/cell/ListModelListBoxCell.java index d0890da..6fee27b 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/cell/ListModelListBoxCell.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/cell/ListModelListBoxCell.java @@ -99,13 +99,7 @@ @Override public boolean handlesEvent(CellPreviewEvent<EntityModel> event) { - NativeEvent nativeEvent = event.getNativeEvent(); - if (!BrowserEvents.CLICK.equals(nativeEvent.getType())) { - return false; - } - Element target = nativeEvent.getEventTarget().cast(); - String tagName = target.getTagName().toLowerCase(); - return "select".equals(tagName) || "option".equals(tagName); //$NON-NLS-1$ //$NON-NLS-2$ + return EventHandlingCellMixin.selectOptionHandlesClick(event); } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractCheckboxColumn.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractCheckboxColumn.java index b2aa6d4..bf27213 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractCheckboxColumn.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractCheckboxColumn.java @@ -2,31 +2,16 @@ import java.util.Comparator; -import org.ovirt.engine.ui.uicommonweb.models.EntityModel; - import com.google.gwt.cell.client.Cell.Context; import com.google.gwt.cell.client.FieldUpdater; -import com.google.gwt.dom.client.BrowserEvents; -import com.google.gwt.dom.client.Element; -import com.google.gwt.dom.client.NativeEvent; 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.view.client.CellPreviewEvent; public abstract class AbstractCheckboxColumn<T> extends AbstractColumn<T, Boolean> { private boolean centered = false; private boolean multipleSelectionAllowed = true; - - static boolean handlesEvent(CellPreviewEvent<EntityModel> event) { - NativeEvent nativeEvent = event.getNativeEvent(); - if (!BrowserEvents.CLICK.equals(nativeEvent.getType())) { - return false; - } - Element target = nativeEvent.getEventTarget().cast(); - return "input".equals(target.getTagName().toLowerCase()); //$NON-NLS-1$ - } private static final SafeHtml INPUT_CHECKBOX_DISABLED_PREFIX = SafeHtmlUtils.fromTrustedString("<input type=\"checkbox\" tabindex=\"-1\" disabled"); //$NON-NLS-1$ diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledCheckboxCell.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledCheckboxCell.java index ad62bc7..1230787 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledCheckboxCell.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledCheckboxCell.java @@ -2,6 +2,7 @@ import org.ovirt.engine.ui.common.idhandler.CellWithElementId; import org.ovirt.engine.ui.common.widget.table.cell.EventHandlingCell; +import org.ovirt.engine.ui.common.widget.table.cell.EventHandlingCellMixin; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import com.google.gwt.cell.client.CheckboxCell; @@ -23,7 +24,7 @@ @Override public boolean handlesEvent(CellPreviewEvent<EntityModel> event) { - return AbstractCheckboxColumn.handlesEvent(event); + return EventHandlingCellMixin.inputHandlesClick(event); } public void setElementIdPrefix(String elementIdPrefix) { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledRadioCell.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledRadioCell.java index 2fe1b18..eabb049 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledRadioCell.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledRadioCell.java @@ -2,6 +2,7 @@ import org.ovirt.engine.ui.common.idhandler.CellWithElementId; import org.ovirt.engine.ui.common.widget.table.cell.EventHandlingCell; +import org.ovirt.engine.ui.common.widget.table.cell.EventHandlingCellMixin; import org.ovirt.engine.ui.common.widget.table.cell.RadioboxCell; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; @@ -19,7 +20,7 @@ @Override public boolean handlesEvent(CellPreviewEvent<EntityModel> event) { - return AbstractCheckboxColumn.handlesEvent(event); + return EventHandlingCellMixin.inputHandlesClick(event); } } -- To view, visit https://gerrit.ovirt.org/38720 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0c242022965982723c0068d2df3db6472dba6394 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Greg Sheremeta <gsher...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches