[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.platform.swt] Re: SWT table
|
Hi,
Thanks for the first reply, but no thats not the problem. I think something is wrong with my version of swt or something.
Here is another class I wrote for testing and I have set the layout for the shell there. Even put a Group to see whether anything even gets added. And then created a simple table to chk things out. Code for my application table is also there which you can comment an unchk. But both of them dont appear. Plz do have a quick look again if you see anything wrong. I am still a newbie to SWT.
I can't believe why glitches like this are haunting me.
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.Vector;
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.FillLayout;
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.Group;
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 ed.inf.proofgeneral.pgipdatastructure.BrokerStatus;
public class Testing
{
public Testing()
{
super();
// TODO Auto-generated constructor stub
}
private TableViewer buildAndLayoutTable(Table table)
{
TableViewer tableViewer = new TableViewer(table);
TableLayout layout = new TableLayout();
layout.addColumnData(new ColumnWeightData(35, 40, true));
layout.addColumnData(new ColumnWeightData(40, 50, true));
layout.addColumnData(new ColumnWeightData(25, 30, 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;
}
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
}
});
}
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
Display display = new Display();
Shell shell = new Shell(display);
FillLayout flayout = new FillLayout(SWT.VERTICAL|SWT.HORIZONTAL);
shell.setLayout(flayout);
Group group = new Group(shell,SWT.SHADOW_ETCHED_IN);
group.setText("Group Label");
Testing t = new Testing();
Composite ourComposite = new Composite(group,SWT.NONE);
GridLayout layout = new GridLayout(1,false);
ourComposite.setLayout(layout);
ourComposite.setFont(shell.getFont());
layout.marginHeight = layout.marginWidth = 10;
GridData data = new GridData(SWT.FILL,SWT.FILL, true, true );
data.widthHint = 200;
ourComposite.setLayoutData(data);
// Set up the table layout
TableLayout tablelayout = new TableLayout();
tablelayout.addColumnData(new ColumnWeightData(33, 75, true));
tablelayout.addColumnData(new ColumnWeightData(33, 75, true));
tablelayout.addColumnData(new ColumnWeightData(33, 75, true));
Table table = new Table(ourComposite, SWT.SINGLE);
table.setLayout(tablelayout);
// Add columns to the table
TableColumn column1 = new TableColumn(table, SWT.CENTER);
column1.setWidth(30);
TableColumn column2 = new TableColumn(table, SWT.CENTER);
column2.setWidth(30);
TableColumn column3 = new TableColumn(table, SWT.CENTER);
column3.setWidth(30);
TableItem item = new TableItem(table, SWT.NONE);
item.setText( new String[] { "column 1",
"column 2",
"column 3" } );
item = new TableItem(table, SWT.NONE);
item.setText( new String[] { "a", "b", "c" } );
table.setVisible(true);
table.setLinesVisible(true);
/////////////////////////////////////////////////////////////////////////////////////
/////////////////Code sample 2 Uncomment to chk///////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
// Table proverTable = new Table(ourComposite, SWT.FULL_SELECTION);
// data = new GridData(SWT.FILL,SWT.FILL, true, true );
// proverTable.setLayoutData(data);
// proverTable.setFont(shell.getFont());
// TableViewer viewer = t.buildAndLayoutTable(proverTable);
//
// t.attachContentProvider(viewer);
// t.attachLabelProvider(viewer);
// BrokerStatus b = new BrokerStatus();
// b.addRunningProver("123","1123");
//// viewer.setInput(SessionManager.getDefault().getBrokerStatus());
// viewer.setInput(b);
shell.update();
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
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;
}
}
}