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\\
 +

Eigene Werkzeuge
Werkzeuge

gratis Counter by GOWEB
seit 9.10.2007