diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java index 7eb7822e8f..63948e56c9 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java @@ -45,7 +45,6 @@ import com.google.gwt.event.dom.client.KeyPressEvent; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Element; -import com.google.gwt.user.client.Event; import com.google.gwt.user.client.History; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Focusable; @@ -212,11 +211,6 @@ public abstract class AbstractPatchContentTable extends NavigationTable public abstract void display(CommentDetail comments, boolean expandComments); - @Override - protected MyFlexTable createFlexTable() { - return new DoubleClickFlexTable(); - } - @Override protected Object getRowItemKey(final Object item) { return null; @@ -366,12 +360,6 @@ public abstract class AbstractPatchContentTable extends NavigationTable return getRowItem(row) instanceof CommentList; } - /** Invoked when the user double clicks on a table cell. */ - protected abstract void onCellDoubleClick(int row, int column); - - /** Invoked when the user clicks on a table cell. */ - protected abstract void onCellSingleClick(int row, int column); - /** * Invokes createCommentEditor() with an empty string as value for the comment * parent UUID. This method is invoked by callers that want to create an @@ -658,42 +646,6 @@ public abstract class AbstractPatchContentTable extends NavigationTable new ArrayList(); } - protected class DoubleClickFlexTable extends MyFlexTable { - public DoubleClickFlexTable() { - sinkEvents(Event.ONDBLCLICK | Event.ONCLICK); - } - - @Override - public void onBrowserEvent(final Event event) { - switch (DOM.eventGetType(event)) { - case Event.ONCLICK: { - // Find out which cell was actually clicked. - final Element td = getEventTargetCell(event); - if (td == null) { - break; - } - final int row = rowOf(td); - if (getRowItem(row) != null) { - movePointerTo(row); - onCellSingleClick(rowOf(td), columnOf(td)); - return; - } - break; - } - case Event.ONDBLCLICK: { - // Find out which cell was actually clicked. - Element td = getEventTargetCell(event); - if (td == null) { - return; - } - onCellDoubleClick(rowOf(td), columnOf(td)); - return; - } - } - super.onBrowserEvent(event); - } - } - public static class NoOpKeyCommand extends NeedsSignInKeyCommand { public NoOpKeyCommand(int mask, int key, String help) { super(mask, key, help); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java index 7f23fc31cf..030965fda9 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java @@ -63,6 +63,7 @@ public class SideBySideTable extends AbstractPatchContentTable { @Override protected void onCellSingleClick(int row, int column) { + super.onCellSingleClick(row, column); if (column == 1 || column == 4) { onCellDoubleClick(row, column); } diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/UnifiedDiffTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/UnifiedDiffTable.java index 0fe0711d5a..587fc51631 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/UnifiedDiffTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/UnifiedDiffTable.java @@ -66,6 +66,7 @@ public class UnifiedDiffTable extends AbstractPatchContentTable { @Override protected void onCellSingleClick(int row, int column) { + super.onCellSingleClick(row, column); if (column == 1 || column == 2) { if (!"".equals(table.getText(row, column))) { onCellDoubleClick(row, column); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/NavigationTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/NavigationTable.java index 8d74bc3d57..3dd9b4519a 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/NavigationTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/NavigationTable.java @@ -20,6 +20,7 @@ import com.google.gwt.event.dom.client.KeyPressEvent; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Element; +import com.google.gwt.user.client.Event; import com.google.gwt.user.client.ui.HTMLTable.CellFormatter; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.ScrollPanel; @@ -34,6 +35,41 @@ import java.util.LinkedHashMap; import java.util.Map.Entry; public abstract class NavigationTable extends FancyFlexTable { + protected class MyFlexTable extends FancyFlexTable.MyFlexTable { + public MyFlexTable() { + sinkEvents(Event.ONDBLCLICK | Event.ONCLICK); + } + + @Override + public void onBrowserEvent(final Event event) { + switch (DOM.eventGetType(event)) { + case Event.ONCLICK: { + // Find out which cell was actually clicked. + final Element td = getEventTargetCell(event); + if (td == null) { + break; + } + final int row = rowOf(td); + if (getRowItem(row) != null) { + onCellSingleClick(rowOf(td), columnOf(td)); + return; + } + break; + } + case Event.ONDBLCLICK: { + // Find out which cell was actually clicked. + Element td = getEventTargetCell(event); + if (td == null) { + return; + } + onCellDoubleClick(rowOf(td), columnOf(td)); + return; + } + } + super.onBrowserEvent(event); + } + } + @SuppressWarnings("serial") private static final LinkedHashMap savedPositions = new LinkedHashMap(10, 0.75f, true) { @@ -91,6 +127,16 @@ public abstract class NavigationTable extends FancyFlexTable { } } + /** Invoked when the user double clicks on a table cell. */ + protected void onCellDoubleClick(int row, int column) { + movePointerTo(row); + } + + /** Invoked when the user clicks on a table cell. */ + protected void onCellSingleClick(int row, int column) { + onOpenRow(row); + } + protected int getCurrentRow() { return currentRow; } @@ -259,6 +305,11 @@ public abstract class NavigationTable extends FancyFlexTable { super.onUnload(); } + @Override + protected MyFlexTable createFlexTable() { + return new MyFlexTable(); + } + public class PrevKeyCommand extends KeyCommand { public PrevKeyCommand(int mask, char key, String help) { super(mask, key, help); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectsTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectsTable.java index cfc3d8ea6c..89f3ddc63a 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectsTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectsTable.java @@ -18,9 +18,6 @@ import com.google.gerrit.client.Gerrit; import com.google.gerrit.client.projects.ProjectInfo; import com.google.gerrit.client.projects.ProjectMap; import com.google.gwt.event.dom.client.KeyCodes; -import com.google.gwt.user.client.DOM; -import com.google.gwt.user.client.Element; -import com.google.gwt.user.client.Event; import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter; import java.util.Collections; @@ -47,43 +44,6 @@ public class ProjectsTable extends NavigationTable { fmt.addStyleName(0, 2, Gerrit.RESOURCES.css().dataHeader()); } - @Override - protected MyFlexTable createFlexTable() { - MyFlexTable table = new MyFlexTable() { - @Override - public void onBrowserEvent(final Event event) { - switch (DOM.eventGetType(event)) { - case Event.ONCLICK: { - // Find out which cell was actually clicked. - final Element td = getEventTargetCell(event); - if (td == null) { - break; - } - final int row = rowOf(td); - if (getRowItem(row) != null) { - ProjectsTable.this.movePointerTo(row); - return; - } - break; - } - case Event.ONDBLCLICK: { - // Find out which cell was actually clicked. - Element td = getEventTargetCell(event); - if (td == null) { - return; - } - onOpenRow(rowOf(td)); - return; - } - } - super.onBrowserEvent(event); - } - }; - - table.sinkEvents(Event.ONDBLCLICK | Event.ONCLICK); - return table; - } - @Override protected Object getRowItemKey(final ProjectInfo item) { return item.name();