[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.platform.swt] Re: SWT table

Hi,

You forgot to set a layout on your shell.

shell.setLayout(new GridLayout());

Regards,
Boby

"Elemental" <ahsanfz@xxxxxxxxxxx> wrote in message
news:3680915.1129156407585.JavaMail.root@xxxxxxxxxxxxxxxxxxxx
> Hye,
>
> I have been banging my head with SWT table. I want it to appear in a
preference page. Following is the code which I modified to run as swt
application.
>
> The problem is I can't get the table to appear whatever i do. Neither as a
standlone application nor on preference page. Can someone point out what I
am doing wrong.
>
> Ahsan
>
>
>
>
> import java.util.HashMap;
> import java.util.Iterator;
> import java.util.Set;
> import java.util.Vector;
>
> import org.eclipse.jface.preference.FieldEditor;
> import org.eclipse.jface.preference.FieldEditorPreferencePage;
> import org.eclipse.jface.preference.FileFieldEditor;
> import org.eclipse.jface.preference.IPreferenceStore;
> import org.eclipse.jface.viewers.ColumnWeightData;
> import org.eclipse.jface.viewers.ILabelProviderListener;
> import org.eclipse.jface.viewers.IStructuredContentProvider;
> import org.eclipse.jface.viewers.ITableLabelProvider;
> import org.eclipse.jface.viewers.TableLayout;
> 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.GridData;
> import org.eclipse.swt.layout.GridLayout;
> import org.eclipse.swt.widgets.Composite;
> import org.eclipse.swt.widgets.Display;
> import org.eclipse.swt.widgets.Layout;
> import org.eclipse.swt.widgets.Shell;
> import org.eclipse.swt.widgets.Table;
> import org.eclipse.swt.widgets.TableColumn;
> import org.eclipse.swt.widgets.TableItem;
> import org.eclipse.ui.IWorkbench;
> import org.eclipse.ui.IWorkbenchPreferencePage;
>
> import ed.inf.proofgeneral.ProofGeneralPlugin;
> import ed.inf.proofgeneral.pgipdatastructure.BrokerStatus;
> import ed.inf.proofgeneral.sessionmanager.SessionManager;
>
> /**
>  * @author Elemental
>  *
>  */
> public class ProversPrefsPage //extends FieldEditorPreferencePage
implements IWorkbenchPreferencePage
> {
>
> private TableViewer viewer;
>
> /**
> *
> */
> public ProversPrefsPage()
> {
> }
>
> protected void createFieldEditors()
> {
> createWidgets(getFieldEditorParent());
> }
>
> public void init(IWorkbench workbench)
> {
> // TODO Auto-generated method stub
>
> }
>
> public Composite ourComposite;
> private void createWidgets(Composite parent)
> {
> ourComposite = new Composite(parent,SWT.NONE);
> GridLayout layout = new GridLayout(2,false);
> ourComposite.setLayout(layout);
> ourComposite.setFont(parent.getFont());
> layout.marginHeight = layout.marginWidth = 0;
> GridData data = new GridData(SWT.FILL,SWT.FILL, true, true );
> data.widthHint = 200;
> ourComposite.setLayoutData(data);
>
> Table proverTable = new Table(ourComposite, SWT.CENTER | SWT.BORDER |
SWT.FULL_SELECTION);
> data = new GridData(SWT.FILL,SWT.FILL, true, true );
> proverTable.setLayoutData(data);
> proverTable.setFont(parent.getFont());
> viewer = buildAndLayoutTable(proverTable);
>
> attachContentProvider(viewer);
> attachLabelProvider(viewer);
> BrokerStatus b = new BrokerStatus();
> b.addRunningProver("123","1123");
> // viewer.setInput(SessionManager.getDefault().getBrokerStatus());
> viewer.setInput(b);
> //Sample code if one wants to add a pop menu for prover actions here.
> // MenuManager popupMenu = new MenuManager();
> // IAction newRowAction = new NewRowAction();
> // popupMenu.add(newRowAction);
> // Menu menu = popupMenu.createContextMenu(table);
> // table.setMenu(menu);
> // viewer.setInput(CONTENT);
>
>
> }
>
> private void attachLabelProvider(TableViewer viewer)
> {
> viewer.setLabelProvider(new ITableLabelProvider()
> {
> public String getColumnText(Object element, int index)
> {
> switch (index)
> {
> case 0:
> return ((ProverTableItem) element).provername;
> case 1:
> return ((ProverTableItem) element).proverid;
> case 2:
> return ((ProverTableItem) element).status;
> default:
> return "";
> }
> }
>
> public Image getColumnImage(Object element, int columnIndex)
> {
> return null;
> }
>
> public void addListener(ILabelProviderListener listener)
> {
> }
>
> public void dispose()
> {
> }
>
> public boolean isLabelProperty(Object element, String property)
> {
> return false;
> }
>
> public void removeListener(ILabelProviderListener listener)
> {
> }
> });
>
> }
>
> private void attachContentProvider(TableViewer viewer)
> {
> // TODO Auto-generated method stub
> viewer.setContentProvider(new IStructuredContentProvider()
> {
> public Object[] getElements(Object input)
> {
> Vector result = new Vector();
> if (input instanceof BrokerStatus)
> {
> BrokerStatus brokerStatus = (BrokerStatus) input;
> HashMap hm = brokerStatus.getRunningprovers();
> Set keyset = hm.keySet();
> ProverTableItem tableItem;
> for (Iterator i = keyset.iterator(); i.hasNext();)
> {
> Object proverid = i.next();
> tableItem = new ProverTableItem((String)hm.get(proverid)
> ,(String)proverid
> ,"Running");
> result.add(tableItem);
> }
> hm = brokerStatus.getKnownprovers();
> keyset = hm.keySet();
> for (Iterator i = keyset.iterator(); i.hasNext();)
> {
> Object proverid = i.next();
> tableItem = new ProverTableItem((String)hm.get(proverid)
> ,"Not running yet"
> ,"Not running yet");
> result.add(tableItem);
> }
> }
> return result.toArray();
> }
>
> public void dispose()
> {
> }
>
> public void inputChanged(Viewer viewer, Object oldInput,
> Object newInput)
> {
> // TODO Auto-generated method stub
>
> }
> });
> }
>
> private TableViewer buildAndLayoutTable(Table table)
> {
> TableViewer tableViewer = new TableViewer(table);
> TableLayout layout = new TableLayout();
> layout.addColumnData(new ColumnWeightData(35, 75, true));
> layout.addColumnData(new ColumnWeightData(40, 75, true));
> layout.addColumnData(new ColumnWeightData(25, 75, true));
> table.setLayout(layout);
> TableColumn nameColumn = new TableColumn(table, SWT.CENTER);
> nameColumn.setText("Prover Name");
> TableColumn idColumn = new TableColumn(table, SWT.CENTER);
> idColumn.setText("Prover ID");
> TableColumn statusColumn = new TableColumn(table, SWT.CENTER);
> statusColumn.setText("Status");
> table.setHeaderVisible(true);
> table.setLinesVisible(true);
> return tableViewer;
> }
>
> class ProverTableItem
> {
> public String provername;
> public String proverid;
> public String status;
> public ProverTableItem( String n, String i, String s)
> {
> provername = n;
> proverid = i;
> status = s;
> }
> }
>
> public static void main(String[] args)
> {
>
> Display display = new Display();
> Shell shell = new Shell(display);
> ProversPrefsPage r = new ProversPrefsPage();
> r.createWidgets(shell);
> shell.update();
> shell.pack();
> shell.open();
> while (!shell.isDisposed())
> {
> if (!display.readAndDispatch())
> display.sleep();
> }
> display.dispose();
> }
>
>
> }