tuleap #368 Show full commit message when hovering the subject in the dashboard.
Change-Id: If334e764689f528bd3350c64fbe3b88cbb01a51e
Signed-off-by: Jacques Bouthillier <lmcbout@gmail.com>
diff --git a/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/UIReviewTable.java b/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/UIReviewTable.java
index 0dc0a0f..77a9c2c 100644
--- a/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/UIReviewTable.java
+++ b/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/UIReviewTable.java
@@ -20,6 +20,7 @@
import org.eclipse.egerrit.internal.dashboard.ui.commands.table.AdjustMyStarredHandler;
import org.eclipse.egerrit.internal.dashboard.ui.utils.UIUtils;
import org.eclipse.egerrit.internal.dashboard.ui.views.GerritTableView;
+import org.eclipse.egerrit.internal.model.ChangeInfo;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
@@ -152,6 +153,25 @@
TableLayout tableLayout = new TableLayout();
table.setLayout(tableLayout);
+ handleTooltipNotOnWindow(aViewer, table);
+
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+
+ MenuManager menuManager = new MenuManager();
+ Menu contextMenu = menuManager.createContextMenu(table);
+ table.setMenu(contextMenu);
+ GerritTableView.getActiveView(true).getSite().registerContextMenu(DASHBOARD_CONTEXT_MENU, menuManager, aViewer);
+ return aViewer;
+ }
+
+ /**
+ * Handle the tooltip on a the dashboard table when the operating system is not a window environment
+ *
+ * @param aViewer
+ * @param table
+ */
+ private void handleTooltipNotOnWindow(final TableViewer aViewer, final Table table) {
String os = org.eclipse.core.runtime.Platform.getOS();
// nothing to do on windows
if (!Platform.OS_WIN32.equals(os)) {
@@ -163,24 +183,41 @@
table.addListener(SWT.MouseHover, event -> {
ViewerCell viewerCell = UIUtils.getAdjustedViewerCell(event, aViewer);
if (viewerCell != null) {
+ String message = ""; //$NON-NLS-1$
int columnIndex = viewerCell.getColumnIndex();
+ message = adjustSubjectTooltip(viewerCell, columnIndex);
TableItem item = (TableItem) viewerCell.getViewerRow().getItem();
Rectangle rect = item.getBounds(columnIndex);
- tip.setMessage(item.getText(columnIndex));
+ if (message.isEmpty()) {
+ message = item.getText(columnIndex);
+ }
+ tip.setMessage(message);
Point displayPos = item.getParent().toDisplay(rect.x, rect.y);
tip.setLocation(displayPos.x, displayPos.y);
tip.setVisible(true);
}
});
}
- table.setHeaderVisible(true);
- table.setLinesVisible(true);
+ }
- MenuManager menuManager = new MenuManager();
- Menu contextMenu = menuManager.createContextMenu(table);
- table.setMenu(contextMenu);
- GerritTableView.getActiveView(true).getSite().registerContextMenu(DASHBOARD_CONTEXT_MENU, menuManager, aViewer);
- return aViewer;
+ /**
+ * Use the commit message when hovering the subject column.
+ *
+ * @param viewerCell
+ * @param columnIndex
+ * @return String
+ */
+ private String adjustSubjectTooltip(ViewerCell viewerCell, int columnIndex) {
+ String message = ""; //$NON-NLS-1$
+ if (columnIndex == ReviewTableDefinition.SUBJECT.ordinal()) {
+ Object obj = viewerCell.getElement();
+ if (obj instanceof ChangeInfo) {
+ ChangeInfo changeInfo = (ChangeInfo) obj;
+ message = changeInfo.getRevision() != null ? changeInfo.getRevision().getCommit().getMessage() : ""; //$NON-NLS-1$
+ }
+
+ }
+ return message;
}
/**
@@ -330,7 +367,7 @@
fViewer.getTable().setColumnOrder(nextTableColumn);
- restoreColumnWidth(columnOrderStored, columInTable, oldvalue, lastStoredColumnSize, nextTableColumn);
+ restoreColumnWidth(columnOrderStored, columInTable, oldvalue, lastStoredColumnSize - 1, nextTableColumn); //decrease by one to read the array
}
@@ -374,7 +411,6 @@
//Read and adjust the last column defined before the dynamic labels
//Needs to be reset to allow to see the dynamic columns in the client area
- lastStoredColumnSize--; //decrease by one to read the array
if (lastStoredColumnSize < fViewer.getTable().getColumnCount()) {
int defaultWidth = oldvalue[lastStoredColumnSize];//column before the new labels
int testCol = columnOrderStored[lastStoredColumnSize];