Unterschiede
Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.
swt-jface:treetableviewer 2007/11/13 08:04 | swt-jface:treetableviewer 2020/01/22 20:59 aktuell | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== TreeViewer mit Tabelle ====== | + | ====== TreeViewer mit Tabelle (TreeTable) ====== |
Der TreeViewer kann auch mit mehreren Spalten (Columns) verwendet werden:\\ | Der TreeViewer kann auch mit mehreren Spalten (Columns) verwendet werden:\\ | ||
{{swt-jface:jface-columntree.png|}} | {{swt-jface:jface-columntree.png|}} | ||
+ | \\ | ||
+ | \\ | ||
+ | <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> | ||
+ | \\ | ||
<code java> | <code java> | ||
+ | package com.sowas.javawiki.treetabledemo; | ||
+ | |||
+ | import java.util.ArrayList; | ||
+ | import java.util.List; | ||
+ | |||
+ | import org.eclipse.jface.viewers.ILabelProvider; | ||
+ | import org.eclipse.jface.viewers.ILabelProviderListener; | ||
+ | import org.eclipse.jface.viewers.ITableLabelProvider; | ||
+ | import org.eclipse.jface.viewers.ITreeContentProvider; | ||
+ | import org.eclipse.jface.viewers.LabelProvider; | ||
+ | import org.eclipse.jface.viewers.TreeViewer; | ||
+ | import org.eclipse.jface.viewers.Viewer; | ||
+ | import org.eclipse.swt.SWT; | ||
+ | import org.eclipse.swt.graphics.Image; | ||
+ | import org.eclipse.swt.widgets.Composite; | ||
+ | import org.eclipse.swt.widgets.Tree; | ||
+ | import org.eclipse.swt.widgets.TreeColumn; | ||
+ | import org.eclipse.ui.ISharedImages; | ||
+ | import org.eclipse.ui.PlatformUI; | ||
+ | import org.eclipse.ui.part.ViewPart; | ||
+ | |||
public class View extends ViewPart{ | public class View extends ViewPart{ | ||
- | public static final String ID = "TreeTableDemo.view"; | + | public static final String ID = "TreeTableDemo.view"; |
- | private TreeViewer m_treeViewer; | + | private TreeViewer m_treeViewer; |
- | class ViewLabelProvider extends LabelProvider implements ILabelProvider{ | + | class ViewLabelProvider extends LabelProvider implements ILabelProvider{ |
- | public String getColumnText(Object obj, int index){ | + | public String getColumnText(Object obj, int index){ |
- | return getText(obj); | + | return getText(obj); |
- | } | + | } |
- | public Image getColumnImage(Object obj, int index){ | + | public Image getColumnImage(Object obj, int index){ |
- | return getImage(obj); | + | return getImage(obj); |
- | } | + | } |
- | public Image getImage(Object obj){ | + | public Image getImage(Object obj){ |
- | return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT); | + | return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT); |
- | } | + | } |
- | } | + | } |
- | public void createPartControl(Composite parent){ | + | public void createPartControl(Composite parent){ |
- | Tree addressTree = new Tree(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); | + | Tree addressTree = new Tree(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); |
addressTree.setHeaderVisible(true); | addressTree.setHeaderVisible(true); | ||
- | m_treeViewer = new TreeViewer(addressTree); | + | m_treeViewer = new TreeViewer(addressTree); |
- | TreeColumn column1 = new TreeColumn(addressTree, SWT.LEFT); | + | TreeColumn column1 = new TreeColumn(addressTree, SWT.LEFT); |
- | addressTree.setLinesVisible(true); | + | addressTree.setLinesVisible(true); |
- | column1.setAlignment(SWT.LEFT); | + | column1.setAlignment(SWT.LEFT); |
- | column1.setText("Land/Stadt"); | + | column1.setText("Land/Stadt"); |
- | column1.setWidth(160); | + | column1.setWidth(160); |
- | TreeColumn column2 = new TreeColumn(addressTree, SWT.RIGHT); | + | TreeColumn column2 = new TreeColumn(addressTree, SWT.RIGHT); |
- | column2.setAlignment(SWT.LEFT); | + | column2.setAlignment(SWT.LEFT); |
- | column2.setText("Person"); | + | column2.setText("Person"); |
- | column2.setWidth(100); | + | column2.setWidth(100); |
- | TreeColumn column3 = new TreeColumn(addressTree, SWT.RIGHT); | + | TreeColumn column3 = new TreeColumn(addressTree, SWT.RIGHT); |
- | column3.setAlignment(SWT.LEFT); | + | column3.setAlignment(SWT.LEFT); |
- | column3.setText("m/w"); | + | column3.setText("m/w"); |
- | column3.setWidth(35); | + | column3.setWidth(35); |
- | m_treeViewer.setContentProvider(new AddressContentProvider()); | + | m_treeViewer.setContentProvider(new AddressContentProvider()); |
- | m_treeViewer.setLabelProvider(new TableLabelProvider()); | + | m_treeViewer.setLabelProvider(new TableLabelProvider()); |
- | List<City> cities = new ArrayList<City>(); | + | List<City> cities = new ArrayList<City>(); |
- | cities.add(new City()); | + | cities.add(new City()); |
- | m_treeViewer.setInput(cities); | + | m_treeViewer.setInput(cities); |
- | m_treeViewer.expandAll(); | + | m_treeViewer.expandAll(); |
- | } | + | } |
- | public void setFocus(){ | + | public void setFocus(){ |
- | m_treeViewer.getControl().setFocus(); | + | m_treeViewer.getControl().setFocus(); |
- | } | + | } |
- | class City{ | + | class City{ |
- | Street[] streets = new Street[2]; | + | Street[] streets = new Street[2]; |
- | public City(){ | + | public City(){ |
- | for (int i = 0; i < streets.length; i++) | + | for (int i = 0; i < streets.length; i++) |
- | streets[i] = new Street(this, i); | + | streets[i] = new Street(this, i); |
- | } | + | } |
- | public Street[] getStreets(){ | + | public Street[] getStreets(){ |
- | return streets; | + | return streets; |
- | } | + | } |
- | public String toString(){ | + | public String toString(){ |
- | return "Küchenhausen"; | + | return "Küchenhausen"; |
- | } | + | } |
- | } | + | } |
- | class Street{ | + | class Street{ |
- | City city; | + | City city; |
- | House[] houses = new House[2]; | + | House[] houses = new House[2]; |
- | int indx; | + | int indx; |
- | public Street(City city, int index){ | + | public Street(City city, int index){ |
- | this.city = city; | + | this.city = city; |
- | indx = index + 1; | + | indx = index + 1; |
- | for (int i = 0; i < houses.length; i++) | + | for (int i = 0; i < houses.length; i++) |
- | houses[i] = new House(this, i); | + | houses[i] = new House(this, i); |
- | } | + | } |
- | public House[] getHouses(){ | + | public House[] getHouses(){ |
- | return houses; | + | return houses; |
- | } | + | } |
- | public String toString(){ | + | public String toString(){ |
- | return "Topfdeckelstraße " + indx; | + | return "Topfdeckelstraße " + indx; |
- | } | + | } |
- | } | + | } |
- | class House{ | + | class House{ |
- | Street street; | + | Street street; |
- | int indx; | + | int indx; |
- | public House(Street street, int i){ | + | public House(Street street, int i){ |
- | this.street = street; | + | this.street = street; |
- | indx = i + 1; | + | indx = i + 1; |
- | } | + | } |
- | public String toString(){ | + | public String toString(){ |
- | return "Haus " + indx; | + | return "Haus " + indx; |
- | } | + | } |
- | public String getPerson(){ | + | public String getPerson(){ |
- | if (street.toString().equals("Topfdeckelstraße 1")){ | + | if (street.toString().equals("Topfdeckelstraße 1")){ |
- | if (indx == 1) | + | if (indx == 1) |
- | return "Hugo Hüpfer"; | + | return "Hugo Hüpfer"; |
- | return "Sabine Springer"; | + | return "Sabine Springer"; |
- | } | + | } |
- | if (indx == 1) | + | if (indx == 1) |
- | return "Leo Löffel"; | + | return "Leo Löffel"; |
- | return "Marta Messer"; | + | return "Marta Messer"; |
- | } | + | } |
- | public String getSex(){ | + | public String getSex(){ |
- | if (indx == 1) | + | if (indx == 1) |
- | return "m"; | + | return "m"; |
- | return "w"; | + | return "w"; |
- | } | + | } |
- | } | + | } |
- | class AddressContentProvider implements ITreeContentProvider{ | + | class AddressContentProvider implements ITreeContentProvider{ |
- | public Object[] getChildren(Object parentElement){ | + | public Object[] getChildren(Object parentElement){ |
- | if (parentElement instanceof List) | + | if (parentElement instanceof List) |
- | return ((List<?>) parentElement).toArray(); | + | return ((List<?>) parentElement).toArray(); |
- | if (parentElement instanceof City) | + | if (parentElement instanceof City) |
- | return ((City) parentElement).getStreets(); | + | return ((City) parentElement).getStreets(); |
- | if (parentElement instanceof Street) | + | if (parentElement instanceof Street) |
- | return ((Street) parentElement).getHouses(); | + | return ((Street) parentElement).getHouses(); |
- | return new Object[0]; | + | return new Object[0]; |
- | } | + | } |
- | public Object getParent(Object element){ | + | public Object getParent(Object element){ |
- | if (element instanceof Street) | + | if (element instanceof Street) |
- | return ((Street) element).city; | + | return ((Street) element).city; |
- | if (element instanceof House) | + | if (element instanceof House) |
- | return ((House) element).street; | + | return ((House) element).street; |
- | return null; | + | return null; |
- | } | + | } |
- | public boolean hasChildren(Object element){ | + | public boolean hasChildren(Object element){ |
- | if (element instanceof List) | + | if (element instanceof List) |
- | return ((List<?>) element).size() > 0; | + | return ((List<?>) element).size() > 0; |
- | if (element instanceof City) | + | if (element instanceof City) |
- | return ((City) element).getStreets().length > 0; | + | return ((City) element).getStreets().length > 0; |
- | if (element instanceof Street) | + | if (element instanceof Street) |
- | return ((Street) element).getHouses().length > 0; | + | return ((Street) element).getHouses().length > 0; |
- | return false; | + | return false; |
- | } | + | } |
- | public Object[] getElements(Object kundenstaemme){ | + | public Object[] getElements(Object cities){ |
- | return getChildren(kundenstaemme); | + | // cities ist das, was oben in setInput(..) gesetzt wurde. |
- | } | + | return getChildren(cities); |
+ | } | ||
- | public void dispose(){ | + | public void dispose(){ |
- | } | + | } |
- | public void inputChanged(Viewer viewer, Object oldInput, Object newInput){ | + | public void inputChanged(Viewer viewer, Object oldInput, Object newInput){ |
- | } | + | } |
- | } | + | } |
- | class TableLabelProvider implements ITableLabelProvider{ | + | class TableLabelProvider implements ITableLabelProvider{ |
- | public Image getColumnImage(Object element, int columnIndex){ | + | public Image getColumnImage(Object element, int columnIndex){ |
- | return null; | + | return null; |
- | } | + | } |
- | public String getColumnText(Object element, int columnIndex){ | + | public String getColumnText(Object element, int columnIndex){ |
- | switch (columnIndex){ | + | switch (columnIndex){ |
- | case 0: return element.toString(); | + | case 0: return element.toString(); |
- | case 1: | + | case 1: |
- | if (element instanceof House) | + | if (element instanceof House) |
- | return ((House)element).getPerson(); | + | return ((House)element).getPerson(); |
- | case 2: | + | case 2: |
- | if (element instanceof House) | + | if (element instanceof House) |
- | return ((House)element).getSex(); | + | return ((House)element).getSex(); |
- | } | + | } |
- | return null; | + | return null; |
- | } | + | } |
- | public void addListener(ILabelProviderListener listener){ | + | public void addListener(ILabelProviderListener listener){ |
- | } | + | } |
- | public void dispose(){ | + | public void dispose(){ |
- | } | + | } |
- | public boolean isLabelProperty(Object element, String property){ | + | public boolean isLabelProperty(Object element, String property){ |
- | return false; | + | return false; |
- | } | + | } |
- | public void removeListener(ILabelProviderListener listener){ | + | public void removeListener(ILabelProviderListener listener){ |
- | } | + | } |
- | + | } | |
- | } | + | } |
</code> | </code> | ||
+ | \\ | ||
+ | [[http://www.fotostacker.de|{{:fotostacker2.png|FotoStacker}}]]FotoStacker, Fotos für Ihre Website\\ | ||
+ | |||