@Override public boolean select(Viewer viewer, Object parentElement, Object element) { LogicalTask task = (LogicalTask) element; if (searching) { String filter = searchAction.getText().toLowerCase(); String summary = task.getSummary().toLowerCase(); if (summary.indexOf(filter) == -1) { return false; } } int severityType = task.getSeverityType(); if (!showEnhancements.isChecked() && severityType == 1) { return false; } if (!showBugs.isChecked() && severityType == 2) { return false; } if (!showAmbiguous.isChecked() && severityType == 3) { return false; } boolean allFixed = task.isAllFixed(); if (!showOpen.isChecked() && !allFixed) { return false; } if (!showFixed.isChecked() && allFixed) { return false; } return true; }
@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); } } } } }