X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/properties/ColumnPropertyPage.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/properties/ColumnPropertyPage.java new file mode 100644 index 0000000..21d37f9 --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/properties/ColumnPropertyPage.java @@ -0,0 +1,114 @@ +package com.quantum.properties; + +import java.sql.SQLException; + +import com.quantum.Messages; +import com.quantum.QuantumPlugin; +import com.quantum.model.Column; +import com.quantum.model.Entity; +import com.quantum.model.NotConnectedException; + +import org.eclipse.jface.viewers.ILabelProviderListener; +import org.eclipse.jface.viewers.ITableLabelProvider; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.TableColumn; + +public class ColumnPropertyPage extends BaseEntityPropertyPage { + + protected void createInformationArea(Composite composite) { + if (!Entity.SEQUENCE_TYPE.equals(getEntity().getType())) { + try { + Column[] columns = getEntity().getColumns(); + + Table table = new Table(composite, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER); + table.setHeaderVisible(true); + GridData gridData = new GridData(GridData.FILL_BOTH); + gridData.horizontalSpan = 2; + table.setLayoutData(gridData); + for (int i = 0, length = 7; i < length; i++) { + TableColumn column = new TableColumn(table, SWT.NONE); + column.setText(Messages.getString(getClass(), "column" + i)); + } + + TableViewer viewer = new TableViewer(table); + setTableContents(viewer, columns); + setColumnWidths(table); + } catch (NotConnectedException e) { + createErrorMessage(composite, e); + } catch (SQLException e) { + createErrorMessage(composite, e); + } catch (RuntimeException e) { + createErrorMessage(composite, e); + } + } + } + + private void setTableContents(TableViewer viewer, Column[] columns) { + viewer.setContentProvider(new BasicContentProvider()); + + viewer.setLabelProvider(new ITableLabelProvider() { + + public Image getColumnImage(Object element, int columnIndex) { + if (columnIndex == 0 && element instanceof Column) { + return ((Column) element).isPrimaryKey() + ? QuantumPlugin.getImage("keycolumn.gif") + : QuantumPlugin.getImage("column.gif"); + } else { + return null; + } + } + public String getColumnText(Object element, int columnIndex) { + String label = null; + if (element instanceof Column) { + Column column = (Column) element; + switch (columnIndex) { + case 0: + label = column.getName(); + break; + case 1: + label = column.getTypeName(); + break; + case 2: + label = String.valueOf(column.getSize()); + break; + case 3: + label = String.valueOf(column.getNumberOfFractionalDigits()); + break; + case 4: + label = column.isPrimaryKey() + ? Messages.getString(ColumnPropertyPage.class, "true") + : Messages.getString(ColumnPropertyPage.class, "false"); + break; + case 5: + label = column.isNullable() + ? Messages.getString(ColumnPropertyPage.class, "true") + : Messages.getString(ColumnPropertyPage.class, "false"); + break; + case 6: + label = column.getRemarks(); + break; + default: + } + } + + return label == null ? "" : label; + } + public void addListener(ILabelProviderListener listener) { + } + public void dispose() { + } + public boolean isLabelProperty(Object element, String property) { + return false; + } + public void removeListener(ILabelProviderListener listener) { + } + }); + + viewer.setInput(columns); + } +} \ No newline at end of file