1 package org
.argeo
.gis
.ui
.views
;
3 import java
.util
.ArrayList
;
4 import java
.util
.Iterator
;
7 import org
.argeo
.eclipse
.ui
.AbstractTreeContentProvider
;
8 import org
.argeo
.gis
.ui
.data
.DataStoreNode
;
9 import org
.argeo
.gis
.ui
.data
.FeatureNode
;
10 import org
.eclipse
.jface
.viewers
.DoubleClickEvent
;
11 import org
.eclipse
.jface
.viewers
.IDoubleClickListener
;
12 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
13 import org
.eclipse
.jface
.viewers
.LabelProvider
;
14 import org
.eclipse
.jface
.viewers
.TreeViewer
;
15 import org
.eclipse
.swt
.SWT
;
16 import org
.eclipse
.swt
.widgets
.Composite
;
17 import org
.eclipse
.ui
.part
.ViewPart
;
18 import org
.geotools
.data
.DataStore
;
20 public class DataStoresView
extends ViewPart
implements IDoubleClickListener
{
21 private TreeViewer viewer
;
23 private List
<DataStore
> dataStores
;
26 public void createPartControl(Composite parent
) {
27 viewer
= new TreeViewer(parent
, SWT
.MULTI
| SWT
.H_SCROLL
| SWT
.V_SCROLL
);
28 viewer
.setContentProvider(new DataStoreContentProvider());
29 viewer
.setLabelProvider(new DataStoreLabelProvider());
30 viewer
.setInput(getViewSite());
31 viewer
.addDoubleClickListener(this);
34 public void doubleClick(DoubleClickEvent event
) {
35 if (!event
.getSelection().isEmpty()) {
36 Iterator
<?
> it
= ((IStructuredSelection
) event
.getSelection())
38 while (it
.hasNext()) {
39 Object obj
= it
.next();
40 if (obj
instanceof FeatureNode
) {
41 // FeatureNode featureNode = (FeatureNode) obj;
42 // FeatureSource<SimpleFeatureType, SimpleFeature> featureSource = featureNode
43 // .getFeatureSource();
44 // IEditorPart ed = getSite().getWorkbenchWindow().getActivePage().getActiveEditor();
45 // if(ed instanceof DefaultMapEditor){
46 //// ((DefaultMapEditor)ed).addLayer(featureSource);
55 public void setFocus() {
56 viewer
.getTree().setFocus();
59 public void refresh() {
63 public void setDataStores(List
<DataStore
> dataStores
) {
64 this.dataStores
= dataStores
;
67 private class DataStoreContentProvider
extends AbstractTreeContentProvider
{
69 public Object
[] getElements(Object inputElement
) {
70 List
<DataStoreNode
> dataStoreNodes
= new ArrayList
<DataStoreNode
>();
71 // it is better to deal with OSGi reference using and iterator
72 Iterator
<DataStore
> it
= dataStores
.iterator();
74 dataStoreNodes
.add(new DataStoreNode(it
.next()));
75 return dataStoreNodes
.toArray();
80 private class DataStoreLabelProvider
extends LabelProvider
{
83 public String
getText(Object element
) {
84 return super.getText(element
);