in org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/gist/GistAttachmentPart.java [162:247]
private void createAttachmentTable(FormToolkit toolkit,
final Composite attachmentsComposite) {
attachmentsTable = toolkit.createTable(attachmentsComposite, SWT.MULTI
| SWT.FULL_SELECTION);
attachmentsTable.setLinesVisible(true);
attachmentsTable.setHeaderVisible(true);
attachmentsTable.setLayout(new GridLayout());
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL)
.grab(true, false).hint(500, SWT.DEFAULT)
.applyTo(attachmentsTable);
attachmentsTable.setData(FormToolkit.KEY_DRAW_BORDER,
FormToolkit.TREE_BORDER);
for (int i = 0; i < attachmentsColumns.length; i++) {
TableColumn column = new TableColumn(attachmentsTable, SWT.LEFT, i);
column.setText(attachmentsColumns[i]);
column.setWidth(attachmentsColumnWidths[i]);
column.setMoveable(true);
if (i == 0) {
attachmentsTable.setSortColumn(column);
attachmentsTable.setSortDirection(SWT.DOWN);
}
}
// size column
attachmentsTable.getColumn(1).setAlignment(SWT.RIGHT);
TableViewer attachmentsViewer = new TableViewer(attachmentsTable);
attachmentsViewer.setUseHashlookup(true);
attachmentsViewer.setColumnProperties(attachmentsColumns);
ColumnViewerToolTipSupport.enableFor(attachmentsViewer,
ToolTip.NO_RECREATE);
attachmentsViewer.setComparator(new GistAttachmentSorter());
List<ITaskAttachment> attachmentList = new ArrayList<>(
attachments.size());
for (TaskAttribute attribute : attachments) {
ITaskAttachment taskAttachment = new TaskAttachment(getModel()
.getTaskRepository(), getModel().getTask(), attribute);
getTaskData().getAttributeMapper().updateTaskAttachment(
taskAttachment, attribute);
attachmentList.add(taskAttachment);
}
attachmentsViewer.setContentProvider(new ArrayContentProvider());
attachmentsViewer.setLabelProvider(new GistAttachmentTableLabelProvider(
getModel(), getTaskEditorPage().getAttributeEditorToolkit()) {
@Override
public String getColumnText(Object element, int columnIndex) {
if (columnIndex > 0)
columnIndex++;
return super.getColumnText(element, columnIndex);
}
@Override
public Image getColumnImage(Object element, int columnIndex) {
if (columnIndex > 0)
columnIndex++;
return super.getColumnImage(element, columnIndex);
}
});
attachmentsViewer.addOpenListener(new IOpenListener() {
@Override
public void open(OpenEvent event) {
openAttachments(event);
}
});
attachmentsViewer.addSelectionChangedListener(getTaskEditorPage());
attachmentsViewer.setInput(attachmentList.toArray());
menuManager = new MenuManager();
menuManager.setRemoveAllWhenShown(true);
menuManager.addMenuListener(new IMenuListener() {
@Override
public void menuAboutToShow(IMenuManager manager) {
TasksUiMenus.fillTaskAttachmentMenu(manager);
}
});
getTaskEditorPage().getEditorSite().registerContextMenu(ID_POPUP_MENU,
menuManager, attachmentsViewer, true);
Menu menu = menuManager.createContextMenu(attachmentsTable);
attachmentsTable.setMenu(menu);
new TableViewerSupport(attachmentsViewer, getStateFile());
}