1 package com.quantum.properties;
 
   3 import java.sql.SQLException;
 
   5 import com.quantum.ImageStore;
 
   6 import com.quantum.Messages;
 
   7 import com.quantum.model.Column;
 
   8 import com.quantum.model.Entity;
 
   9 import com.quantum.model.NotConnectedException;
 
  11 import org.eclipse.jface.viewers.ILabelProviderListener;
 
  12 import org.eclipse.jface.viewers.ITableLabelProvider;
 
  13 import org.eclipse.jface.viewers.TableViewer;
 
  14 import org.eclipse.swt.SWT;
 
  15 import org.eclipse.swt.graphics.Image;
 
  16 import org.eclipse.swt.layout.GridData;
 
  17 import org.eclipse.swt.widgets.Composite;
 
  18 import org.eclipse.swt.widgets.Table;
 
  19 import org.eclipse.swt.widgets.TableColumn;
 
  21 public class ColumnPropertyPage extends BaseEntityPropertyPage {
 
  23         protected void createInformationArea(Composite composite) {
 
  24         if (!Entity.SEQUENCE_TYPE.equals(getEntity().getType())) {
 
  26                                 Column[] columns = getEntity().getColumns();
 
  28                         Table table = new Table(composite, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
 
  29                     table.setHeaderVisible(true);
 
  30                     GridData gridData = new GridData(GridData.FILL_BOTH);
 
  31                     gridData.horizontalSpan = 2;
 
  32                     table.setLayoutData(gridData);
 
  33                     for (int i = 0, length = 7; i < length; i++) {
 
  34                         TableColumn column = new TableColumn(table, SWT.NONE);
 
  35                         column.setText(Messages.getString(getClass(), "column" + i));
 
  38                         TableViewer viewer = new TableViewer(table);
 
  39                     setTableContents(viewer, columns);
 
  40                     setColumnWidths(table);
 
  41                         } catch (NotConnectedException e) {
 
  42                                 createErrorMessage(composite, e);
 
  43                         } catch (SQLException e) {
 
  44                                 createErrorMessage(composite, e);
 
  45                         } catch (RuntimeException e) {
 
  46                                 createErrorMessage(composite, e);
 
  51     private void setTableContents(TableViewer viewer, Column[] columns) {
 
  52                 viewer.setContentProvider(new BasicContentProvider());
 
  54                 viewer.setLabelProvider(new ITableLabelProvider() {
 
  56                         public Image getColumnImage(Object element, int columnIndex) {
 
  57                                 if (columnIndex == 0 && element instanceof Column) {
 
  58                                         return ((Column) element).isPrimaryKey() 
 
  59                                                         ? ImageStore.getImage(ImageStore.KEYCOLUMN) 
 
  60                                                         : ImageStore.getImage(ImageStore.COLUMN);
 
  65                         public String getColumnText(Object element, int columnIndex) {
 
  67                                 if (element instanceof Column) {
 
  68                                         Column column = (Column) element;
 
  69                                         switch (columnIndex) {
 
  71                                                 label = column.getName();
 
  74                                                 label = column.getTypeName();
 
  77                                                 label = String.valueOf(column.getSize());
 
  80                                                 label = String.valueOf(column.getNumberOfFractionalDigits());
 
  83                                                 label = column.isPrimaryKey() 
 
  84                                                         ? Messages.getString(ColumnPropertyPage.class, "true") 
 
  85                                                         : Messages.getString(ColumnPropertyPage.class, "false");
 
  88                                                 label = column.isNullable() 
 
  89                                                         ? Messages.getString(ColumnPropertyPage.class, "true") 
 
  90                                                         : Messages.getString(ColumnPropertyPage.class, "false");
 
  93                                                 label = column.getRemarks();
 
  99                                 return label == null ? "" : label;
 
 101                         public void addListener(ILabelProviderListener listener) {
 
 103                         public void dispose() {
 
 105                         public boolean isLabelProperty(Object element, String property) {
 
 108                         public void removeListener(ILabelProviderListener listener) {
 
 112                 viewer.setInput(columns);