Dies ist eine alte Version des Dokuments!


Table in ScrolledForm

org.eclipse.swt.widgets.Table
org.eclipse.ui.forms.widgets.ScrolledForm

public void createControl(Composite parent){
   Composite composite = new Composite(parent, SWT.NULL);
 
   //ScrolledForm initialisieren: 
   scrolledForm = getFormToolkit().createScrolledForm(composite);
   scrolledForm.setExpandHorizontal(false);
   scrolledForm.getBody().setLayout(new GridLayout());
 
   //Tabelle mit ScrolledForm als parent erzeugen:
   table = getFormToolkit().createTable(scrolledForm.getBody(), SWT.FULL_SELECTION);
 
   setControl(composite);                              
}


package com.sowas.javawiki.rcpbaseapplication;

import java.util.ArrayList;

import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
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.Label;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.editor.FormPage;
import org.eclipse.ui.forms.editor.IFormPage;
import org.eclipse.ui.forms.widgets.FormToolkit;

public class MyEditorPageTable extends FormPage implements IFormPage {
   private Table       table;
   private FormToolkit formToolkit;
   private TableViewer tableViewer;
   private Addresses   addresses;
   private String[]    columnNames = {"Nachname", "Vorname"};

   public MyEditorPageTable(FormEditor editor, String pageId, String pageTitle) {
      super(editor, pageId, pageTitle);
      
      addresses = new Addresses();
   }

   @Override
   protected void createFormContent(IManagedForm managedForm) {
      super.createFormContent(managedForm);
      Composite client = managedForm.getForm().getBody();
      client.setLayout(new GridLayout(2, false));
      formToolkit = managedForm.getToolkit();
      
      Label label = formToolkit.createLabel(client, "Tabelle:");
      GridData gdLabel = new GridData(GridData.FILL_VERTICAL);
      gdLabel.verticalAlignment = SWT.TOP;
      label.setLayoutData(gdLabel);
      
      table = formToolkit.createTable(client, SWT.NONE);
      table.setLayoutData(new GridData(GridData.FILL_BOTH));
      table.setHeaderVisible(true);
      table.setLinesVisible(true);
      int col = 0;
      TableColumn tcLastName = new TableColumn(table, SWT.LEFT, col);
      tcLastName.setText(columnNames[col]);
      col++;
      TableColumn tcFirstName = new TableColumn(table, SWT.LEFT, col);
      tcFirstName.setText(columnNames[col]);
      for (int i =0; i < table.getColumnCount(); i++)
         table.getColumn(i).pack();
      tableViewer = new TableViewer(table, SWT.BORDER|SWT.V_SCROLL);
      tableViewer.setColumnProperties(columnNames);
      tableViewer.setContentProvider(new IStructuredContentProvider() {

         @Override
         public Object[] getElements(Object inputElement) {
            System.out.println("getElements()");
            return ((Addresses)inputElement).getAddesses();
         }

         @Override
         public void dispose() {
         }

         @Override
         public void inputChanged(Viewer viewer, Object oldInput,
               Object newInput) {
         }
         
      });
      tableViewer.setLabelProvider(new ITableLabelProvider() {

         @Override
         public Image getColumnImage(Object element, int columnIndex) {
            return null;
         }

         @Override
         public String getColumnText(Object element, int columnIndex) {
            String text = "";
            Address addr = (Address) element;
            switch (columnIndex) {
               case 0: text = addr.getLastName()+"--"; break;
               case 1: text = addr.getFirstName()+"--"; break;
            }
            System.out.println(text);
            return text;
         }

         @Override
         public void addListener(ILabelProviderListener listener) {
         }

         @Override
         public void dispose() {
         }

         @Override
         public boolean isLabelProperty(Object element, String property) {
            return false;
         }

         @Override
         public void removeListener(ILabelProviderListener listener) {
         }
      });
      tableViewer.setInput(addresses);
      tableViewer.refresh();
   }
}

class Addresses {
   ArrayList<Address> addresses = new ArrayList<Address>();
   
   public Addresses() {
      addresses.add(new Address("Hüpfer", "Hugo"));
      addresses.add(new Address("Traurig", "Trude"));
   }

   public Object[] getAddesses() {
      return addresses.toArray(new Address[0]);
   }
}

class Address {
   private String strLastName;
   private String strFirstName;
   
   public Address(String strLastName, String strFirstName) {
      this.strLastName = strLastName;
      this.strFirstName = strFirstName;
   }
   public void setLastName(String strLastName) {
      this.strLastName = strLastName;
   }
   public String getLastName() {
      return strLastName;
   }
   public void setFirstName(String strFirstName) {
      this.strFirstName = strFirstName;
   }
   public String getFirstName() {
      return strFirstName;
   }
}

Eigene Werkzeuge
Werkzeuge

gratis Counter by GOWEB
seit 9.10.2007