package org.reldb.dbrowser.ui.content.rel.view; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; import org.eclipse.swt.widgets.ToolBar; import org.reldb.dbrowser.ui.content.rel.DbTreeItem; import org.reldb.dbrowser.ui.content.rel.DbTreeTab; import org.reldb.dbrowser.ui.content.rel.RelPanel; import org.reldb.rel.client.Attribute; import org.reldb.rel.client.Tuple; import org.reldb.rel.client.Tuples; import org.reldb.rel.client.Heading; public class QueryTable extends DbTreeTab { private CTabFolder parent; public QueryTable(RelPanel parent, DbTreeItem item) { super(parent, item); this.parent = parent.getTabFolder(); refresh(); ready(); } public ToolBar getToolBar(Composite parent) { return new VarViewEditorToolbar(parent, this).getToolBar(); } protected Tuples getTuples() { return relPanel.getConnection().getTuples(dbTreeItem.getName()); } public void refresh() { Table table = new Table(parent, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION); table.setLinesVisible(true); table.setHeaderVisible(true); Tuples tuples = getTuples(); Heading heading = tuples.getHeading(); if (heading != null) for (Attribute attribute: heading.toArray()) { TableColumn column = new TableColumn(table, SWT.NONE); column.setText(attribute.getName()); column.setToolTipText(attribute.getType().toString()); } for (Tuple tuple: tuples) { TableItem item = new TableItem(table, SWT.NONE); for (int i=0; i<heading.getCardinality(); i++) item.setText(i, tuple.getAttributeValue(i).toString()); } for (int i=0; i<table.getColumnCount(); i++) table.getColumn(i).pack(); setControl(table); } }