Unterschiede
Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.
swt-jface:table 2007/10/11 13:59 | swt-jface:table 2020/01/22 20:59 aktuell | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Table in ScrolledForm ====== | + | [[swt-jface:swt-jface|Java - SWT/JFace]]\\ |
- | org.eclipse.swt.widgets.Table\\ | + | ====== Table ====== |
- | org.eclipse.ui.forms.widgets.ScrolledForm | + | //org.eclipse.swt.widgets.Table//\\ |
- | <code java> | + | {{:swt-jface:table.png|}}\\ |
- | public void createControl(Composite parent){ | + | \\ |
- | Composite composite = new Composite(parent, SWT.NULL); | + | <html> |
+ | <script type="text/javascript"><!-- | ||
+ | google_ad_client="pub-9681858985507948"; | ||
+ | google_ad_width = 468; | ||
+ | google_ad_height = 60; | ||
+ | google_ad_format = "468x60_as"; | ||
+ | google_ad_type = "text"; | ||
+ | google_ad_channel = ""; | ||
+ | google_color_border = "cccccc"; | ||
+ | google_color_bg = "FFFFFF"; | ||
+ | google_color_link = "1d2d8c"; | ||
+ | google_color_text = "000000"; | ||
+ | google_color_url = "1d2d8c"; | ||
+ | //--> | ||
+ | </script> | ||
+ | <script type="text/javascript" | ||
+ | src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> | ||
+ | </script> | ||
+ | </html> | ||
+ | \\ | ||
- | //ScrolledForm initialisieren: | + | Einfaches Beispiel für eine Tabelle.\\ |
- | scrolledForm = getFormToolkit().createScrolledForm(composite); | + | (Basis ist wieder die [[eclipse-rcp::source-example-application|Source-Beispiel-Applikation]]; die dort vorhandene Klasse MyEditorPage muss nur durch die Klasse MyEditorPageTable ersetzt werden.)\\ |
- | scrolledForm.setExpandHorizontal(false); | + | <code> |
- | scrolledForm.getBody().setLayout(new GridLayout()); | + | package com.sowas.javawiki.rcpbaseapplication; |
- | //Tabelle mit ScrolledForm als parent erzeugen: | + | import java.util.ArrayList; |
- | table = getFormToolkit().createTable(scrolledForm.getBody(), SWT.NONE); | + | |
- | setControl(composite); | + | 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.BORDER); | ||
+ | GridData gridData = new GridData(GridData.FILL_BOTH); | ||
+ | gridData.heightHint = 100; | ||
+ | table.setLayoutData(gridData); | ||
+ | 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); | ||
+ | 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("Apfel", "Anton")); | ||
+ | addresses.add(new Address("Hüpfer", "Hugo")); | ||
+ | addresses.add(new Address("Frosch", "Frodo")); | ||
+ | addresses.add(new Address("Kaninchen", "Sabinchen")); | ||
+ | addresses.add(new Address("Topfdeckel", "Teo")); | ||
+ | addresses.add(new Address("Traurig", "Trude")); | ||
+ | addresses.add(new Address("Warmer", "Werner")); | ||
+ | } | ||
+ | |||
+ | 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; | ||
+ | } | ||
+ | } | ||
</code> | </code> | ||
+ | \\ | ||
+ | Flags für die Tabellenerstellung:\\ | ||
+ | **SWT.SINGLE** - Es kann immer eine Tabellenzeile zur Zeit selektiert werden\\ | ||
+ | **SWT.MULTI** - Es können mehrere Tabellenzeilen gleichzeitig selektiert sein\\ | ||
+ | **SWT.CHECK** - Plaziert eine Check-Box am Anfang jeder Zeile\\ | ||
+ | **SWT.FULL_SELECTION** - Die ganze selektierte Zeile wird eingefärbt\\ | ||
+ | **SWT.HIDE_SELECTION** - Selektierte Zeilen/Zellen werden nicht eingefärbt\\ |