use of org.erlide.tracing.core.mvc.controller.ProcessCellModifier in project erlide_eclipse by erlang.
the class ControlPanelView method createProcessesTable.
private Composite createProcessesTable(final Composite parent) {
final Composite container = new Composite(parent, SWT.NONE);
container.setLayout(new GridLayout());
container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
final int style = SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION;
final GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
gridData.grabExcessVerticalSpace = true;
processesTableViewer = new TableViewer(container, style);
processesTableViewer.setUseHashlookup(true);
// table
final Table table = processesTableViewer.getTable();
table.setLayoutData(gridData);
table.setHeaderVisible(true);
table.setLinesVisible(true);
// columns
final String[] columnProperties = new String[ProcessColumn.values().length + ProcessFlag.values().length];
// columns: process properties
for (final ProcessColumn column : ProcessColumn.values()) {
final TableColumn tableColumn = new TableColumn(table, SWT.LEFT, column.ordinal());
tableColumn.setResizable(true);
tableColumn.setMoveable(false);
tableColumn.setWidth(column.getWidth());
tableColumn.setText(column.getName());
columnProperties[column.ordinal()] = column.name();
}
// columns: process flags
for (final ProcessFlag flag : ProcessFlag.values()) {
final TableColumn tableColumn = new TableColumn(table, SWT.CENTER, ProcessColumn.values().length + flag.ordinal());
tableColumn.setResizable(true);
tableColumn.setMoveable(false);
tableColumn.setWidth(60);
tableColumn.setText(flag.getName());
columnProperties[ProcessColumn.values().length + flag.ordinal()] = flag.name();
}
processesTableViewer.setColumnProperties(columnProperties);
// providers
processesTableViewer.setLabelProvider(new ProcessLabelProvider());
processesTableViewer.setContentProvider(new ProcessContentProvider());
// input
fillProcessesList(processesTableViewer);
processesTableViewer.setInput(TraceBackend.getInstance().getProcesses());
// editors
final CellEditor[] editors = new CellEditor[ProcessFlag.values().length + ProcessFlag.values().length];
editors[ProcessColumn.SELECTED.ordinal()] = new CheckboxCellEditor(table);
for (final ProcessFlag flag : ProcessFlag.values()) {
editors[ProcessColumn.values().length + flag.ordinal()] = new CheckboxCellEditor(table);
}
processesTableViewer.setCellEditors(editors);
processesTableViewer.setCellModifier(new ProcessCellModifier(processesTableViewer));
return container;
}
Aggregations