package org.eclipse.iee.editor.monitoring.views; import org.eclipse.iee.editor.IeeEditorPlugin; import org.eclipse.iee.editor.core.pad.IPadFactoryManager; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.ui.part.ViewPart; public class PadsMonitoringView extends ViewPart { /** * The ID of the view as specified by the extension. */ public static final String ID = "org.eclipse.iee.editor.monitoring.views.PadsMonitoringView"; private final IPadFactoryManager fPadManager = IeeEditorPlugin.getDefault().getPadFactoryManager(); private TableViewer fActivePadsTableViewer; private TableViewer fSuspendedPadsTableViewer; private TableViewer fTemporaryPadsTableViewer; class PadsContentProvider implements IStructuredContentProvider { @Override public Object[] getElements(Object parent) { return (Object[]) parent; } @Override public void dispose() {} @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {} } class PadsLabelProvider extends LabelProvider implements ITableLabelProvider { @Override public Image getColumnImage(Object element, int columnIndex) { return null; } @Override public String getColumnText(Object element, int columnIndex) { //Pad pad = (Pad) element; switch (columnIndex) { case 0: return (String) element; case 1: // return fPadManager.getPadById((String) element).getType(); default: return "unknown " + columnIndex; } } } public void createPartControl(Composite parent) { parent.setLayout(new FillLayout(SWT.VERTICAL)); initActivePadsTableView(parent); initSuspendedPadsTableView(parent); initTemporaryPadsTableView(parent); parent.pack(); } public void dispose() { super.dispose(); } protected void initActivePadsTableView(Composite parent) { fActivePadsTableViewer = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); final Table table = fActivePadsTableViewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); String[] columnNames = new String[] { "Active Pads", "Pad's type" }; int[] columnWidths = new int[] { 100, 100 }; int[] columnAlignments = new int[] { SWT.LEFT, SWT.LEFT }; for (int i = 0; i < columnNames.length; i++) { TableColumn tableColumn = new TableColumn(table, columnAlignments[i]); tableColumn.setText(columnNames[i]); tableColumn.setWidth(columnWidths[i]); } fActivePadsTableViewer.setContentProvider(new PadsContentProvider()); fActivePadsTableViewer.setLabelProvider(new PadsLabelProvider()); // fActivePadsTableViewer.setInput(fPadManager.getActivePads()); } protected void initSuspendedPadsTableView(Composite parent) { fSuspendedPadsTableViewer = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); final Table table = fSuspendedPadsTableViewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); String[] columnNames = new String[] { "Suspended pads", "Pad's type" }; int[] columnWidths = new int[] { 100, 100 }; int[] columnAlignments = new int[] { SWT.LEFT, SWT.LEFT }; for (int i = 0; i < columnNames.length; i++) { TableColumn tableColumn = new TableColumn(table, columnAlignments[i]); tableColumn.setText(columnNames[i]); tableColumn.setWidth(columnWidths[i]); } fSuspendedPadsTableViewer.setContentProvider(new PadsContentProvider()); fSuspendedPadsTableViewer.setLabelProvider(new PadsLabelProvider()); // fSuspendedPadsTableViewer.setInput(fPadManager.getSuspendedPads()); } protected void initTemporaryPadsTableView(Composite parent) { fTemporaryPadsTableViewer = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); final Table table = fTemporaryPadsTableViewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); String[] columnNames = new String[] { "Temporary pads", "Pad's type" }; int[] columnWidths = new int[] { 100, 100 }; int[] columnAlignments = new int[] { SWT.LEFT, SWT.LEFT }; for (int i = 0; i < columnNames.length; i++) { TableColumn tableColumn = new TableColumn(table, columnAlignments[i]); tableColumn.setText(columnNames[i]); tableColumn.setWidth(columnWidths[i]); } fTemporaryPadsTableViewer.setContentProvider(new PadsContentProvider()); fTemporaryPadsTableViewer.setLabelProvider(new PadsLabelProvider()); // fTemporaryPadsTableViewer.setInput(fPadManager.getTemporaryPads()); } /** * Passing the focus request to the viewer's control. */ public void setFocus() { fActivePadsTableViewer.getControl().setFocus(); } }