@Override public void update(ViewerCell cell) { LogicalTask logicalTask = (LogicalTask) cell.getElement(); int columnIndex = cell.getColumnIndex(); if (columnIndex == 0) { cell.setImage(severityImages[logicalTask.getSeverityType()]); cell.setText(logicalTask.getSummary()); cell.setFont(logicalTask.getSeverityType() > 1 ? bold : null); cell.setForeground(logicalTask.isAllFixed() ? gray : null); } else { Version version = taskModel.getVersions()[columnIndex - 1]; VersionTask versionTask = logicalTask.getVersionTask(version); if (versionTask != null) { cell.setText(versionTask.getStatus()); cell.setFont(!"enhancement".equalsIgnoreCase(versionTask.getSeverity()) ? bold : null); cell.setForeground("FIXED".equalsIgnoreCase(versionTask.getResolution()) ? gray : null); cell.setBackground(logicalTask.getVersionTaskCount(version) > 1 ? red : null); } else { cell.setText(""); cell.setFont(null); cell.setForeground(null); cell.setBackground(null); } } }
@Override @SuppressWarnings("restriction") public void mouseDoubleClick(MouseEvent event) { Object element = ((IStructuredSelection) viewer.getSelection()).getFirstElement(); if (element instanceof LogicalTask) { LogicalTask logicalTask = (LogicalTask) element; ViewerCell cell = viewer.getCell(new Point(event.x, event.y)); int columnIndex = cell.getColumnIndex(); if (columnIndex != 0) { Version[] versions = taskModel.getVersions(); Version version = versions[columnIndex - 1]; for (VersionTask versionTask : logicalTask.getVersionTasks()) { if (versionTask.getVersion().equals(version)) { ITask task = versionTask.getTask(); org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal .refreshAndOpenTaskListElement(task); } } } } }