]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.g3d/src/org/simantics/proconf/g3d/views/ScenegraphViewPart.java
Removing ancient 3d framework
[simantics/3d.git] / org.simantics.g3d / src / org / simantics / proconf / g3d / views / ScenegraphViewPart.java
diff --git a/org.simantics.g3d/src/org/simantics/proconf/g3d/views/ScenegraphViewPart.java b/org.simantics.g3d/src/org/simantics/proconf/g3d/views/ScenegraphViewPart.java
deleted file mode 100644 (file)
index 25132db..0000000
+++ /dev/null
@@ -1,610 +0,0 @@
-/*******************************************************************************\r
- * Copyright (c) 2007- VTT Technical Research Centre of Finland.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *     VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.proconf.g3d.views;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-import java.util.List;\r
-\r
-import org.eclipse.core.runtime.IAdaptable;\r
-import org.eclipse.jface.action.Action;\r
-import org.eclipse.jface.action.IMenuManager;\r
-import org.eclipse.jface.action.IToolBarManager;\r
-import org.eclipse.jface.resource.ImageDescriptor;\r
-import org.eclipse.jface.viewers.ITreeContentProvider;\r
-import org.eclipse.jface.viewers.LabelProvider;\r
-import org.eclipse.jface.viewers.TreeViewer;\r
-import org.eclipse.jface.viewers.Viewer;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.graphics.Image;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.ui.IActionBars;\r
-import org.eclipse.ui.IPartListener;\r
-import org.eclipse.ui.IWorkbenchPart;\r
-import org.eclipse.ui.IWorkbenchWindow;\r
-import org.eclipse.ui.PlatformUI;\r
-import org.eclipse.ui.part.ViewPart;\r
-import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor;\r
-import org.eclipse.ui.views.properties.IPropertyDescriptor;\r
-import org.eclipse.ui.views.properties.IPropertySource;\r
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;\r
-import org.simantics.proconf.g3d.Activator;\r
-import org.simantics.proconf.g3d.base.ThreeDimensionalEditorBase;\r
-import org.simantics.proconf.g3d.base.ThreeDimensionalEditorPart;\r
-import org.simantics.proconf.g3d.scenegraph.IGeometryNode;\r
-import org.simantics.proconf.g3d.scenegraph.IGraphicsNode;\r
-import org.simantics.proconf.g3d.scenegraph.ISelectableNode;\r
-import org.simantics.utils.ui.gfx.ImageCache;\r
-\r
-import com.jme.scene.Geometry;\r
-import com.jme.scene.Node;\r
-import com.jme.scene.SceneElement;\r
-import com.jme.scene.Spatial;\r
-import com.jme.scene.batch.GeomBatch;\r
-\r
-public class ScenegraphViewPart extends ViewPart{\r
-       \r
-       private static final ImageDescriptor GEOMETRY_IMAGE = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/geometry.png");\r
-       private static final ImageDescriptor BATCH_IMAGE = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/batch.png");\r
-       private static final ImageDescriptor NODE_IMAGE = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/node.png");\r
-               \r
-       \r
-       TreeViewer viewer;\r
-       \r
-       IPartListener listener;\r
-       \r
-       Action showJMEAction;\r
-       \r
-       @Override\r
-       public void createPartControl(Composite parent) {\r
-\r
-               viewer = new TreeViewer(parent, SWT.SINGLE | SWT.H_SCROLL| SWT.V_SCROLL);\r
-               viewer.setContentProvider(new GNScenegraphContentProvider());\r
-               viewer.setLabelProvider(new GNScenegraphLabelProvider());\r
-               getSite().setSelectionProvider(viewer);\r
-               \r
-               makeActions();\r
-               \r
-               IActionBars actionBar = getViewSite().getActionBars();\r
-               contributeToActionBars(actionBar);\r
-               \r
-               listener = new IPartListener() {\r
-                       @Override\r
-                       public void partActivated(IWorkbenchPart part) {\r
-                               if (part instanceof ThreeDimensionalEditorPart) {\r
-                                       ThreeDimensionalEditorPart p = (ThreeDimensionalEditorPart)part;\r
-                                       Object newInput = p.getEditor();\r
-                                       if (viewer.getInput() != newInput)\r
-                                               viewer.setInput(newInput);\r
-                               } else {\r
-                                       //viewer.setInput(null);\r
-                               }\r
-                               \r
-                       }\r
-                       \r
-                       @Override\r
-                       public void partBroughtToTop(IWorkbenchPart part) {\r
-\r
-                       }\r
-                       \r
-                       @Override\r
-                       public void partClosed(IWorkbenchPart part) {\r
-\r
-                       }\r
-                       \r
-                       @Override\r
-                       public void partDeactivated(IWorkbenchPart part) {\r
-\r
-                       }\r
-                       \r
-                       @Override\r
-                       public void partOpened(IWorkbenchPart part) {\r
-\r
-                       }\r
-               };\r
-               for (IWorkbenchWindow w : PlatformUI.getWorkbench().getWorkbenchWindows()) {\r
-                       w.getPartService().addPartListener(listener);\r
-                               \r
-               }\r
-               \r
-       }\r
-       \r
-       protected void makeActions() {\r
-               showJMEAction = new Action("jME",Action.AS_CHECK_BOX) {\r
-                       @Override\r
-                       public void run() {\r
-                               Object input = viewer.getInput();\r
-                               viewer.setInput(null);\r
-                               if (this.isChecked()) {\r
-                                       viewer.setContentProvider(new JMEScenegraphContentProvider());\r
-                                       viewer.setLabelProvider(new JMEScenegraphLabelProvider());\r
-                               } else {\r
-                                       viewer.setContentProvider(new GNScenegraphContentProvider());\r
-                                       viewer.setLabelProvider(new GNScenegraphLabelProvider());\r
-                               }\r
-                               viewer.setInput(input);\r
-                       }\r
-               };\r
-       }\r
-       \r
-       protected void contributeToActionBars(IActionBars bars) {\r
-               fillLocalToolBar(bars.getToolBarManager());\r
-               fillLocalPullDown(bars.getMenuManager());\r
-               bars.updateActionBars();\r
-       }\r
-\r
-       protected void fillLocalToolBar(IToolBarManager manager) {\r
-               manager.add(showJMEAction);\r
-       }\r
-\r
-       protected void fillLocalPullDown(IMenuManager manager) {\r
-\r
-       }\r
-       \r
-       @Override\r
-       public void setFocus() {\r
-               viewer.getControl().setFocus();\r
-       }\r
-       \r
-       public void dispose() {\r
-               for (IWorkbenchWindow w : PlatformUI.getWorkbench().getWorkbenchWindows()) {\r
-                       w.getPartService().removePartListener(listener);\r
-                               \r
-               }\r
-               super.dispose();\r
-       }\r
-       \r
-\r
-       private class JMEScenegraphContentProvider implements ITreeContentProvider {\r
-               @Override\r
-               public Object[] getChildren(Object parentElement) {\r
-                       if (parentElement instanceof JMEAdaptable)\r
-                               parentElement = ((JMEAdaptable)parentElement).getElement();\r
-                       \r
-                       if (parentElement instanceof Node) {\r
-                               Node n = (Node)parentElement;\r
-                               Object o[] = new Object[n.getChildren().size()];\r
-                               for (int i = 0; i < n.getChildren().size(); i++) {\r
-                                       o[i] = new JMEAdaptable(n.getChild(i));\r
-                               }\r
-                               return o;\r
-                       }\r
-                       if (parentElement instanceof Geometry) {\r
-                               Geometry g = (Geometry)parentElement;\r
-                               Object o[] = new Object[g.getBatchCount()];\r
-                               for (int i = 0 ; i < g.getBatchCount(); i++)\r
-                                       o[i] = new JMEAdaptable(g.getBatch(i));\r
-                               return o;\r
-                       }\r
-                       return null;\r
-               }\r
-               \r
-               @Override\r
-               public Object[] getElements(Object inputElement) {\r
-                       if (inputElement instanceof ThreeDimensionalEditorBase) {\r
-                               SceneElement root = ((ThreeDimensionalEditorBase)inputElement).getRenderingComponent().getRoot();\r
-                               if (root != null)\r
-                                       return new Object[]{new JMEAdaptable(root)};\r
-                       }\r
-                       return new Object[0];\r
-               }\r
-               \r
-               @Override\r
-               public Object getParent(Object element) {\r
-                       SceneElement e;\r
-                       if (element instanceof JMEAdaptable)\r
-                               e = ((JMEAdaptable)element).getElement();\r
-                       else\r
-                               e = (SceneElement)element;\r
-                       if (e instanceof Spatial) {\r
-                               Spatial s = (Spatial)e;\r
-                               return s.getParent();\r
-                       } \r
-                       if (e instanceof GeomBatch) {\r
-                               GeomBatch g = (GeomBatch)e;\r
-                               return g.getParentGeom();\r
-                       }\r
-                       return null;\r
-               }\r
-               \r
-               @Override\r
-               public boolean hasChildren(Object element) {\r
-                       if (element instanceof JMEAdaptable)\r
-                               element = ((JMEAdaptable)element).getElement();\r
-                       if (element instanceof Node) {\r
-                               Node n = (Node)element;\r
-                               if (n.getChildren() == null)\r
-                                       return false;\r
-                               return n.getChildren().size() > 0;\r
-                       }\r
-                       if (element instanceof Geometry) {\r
-                               Geometry g = (Geometry)element;\r
-                               return g.getBatchCount() > 0;\r
-                       }\r
-                       return false;\r
-               }\r
-               \r
-               @Override\r
-               public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {\r
-                       \r
-               }\r
-               \r
-               @Override\r
-               public void dispose() {\r
-                       \r
-               }\r
-       }\r
-       \r
-       private class JMEScenegraphLabelProvider extends LabelProvider {\r
-               @Override\r
-               public String getText(Object element) {\r
-                       if (element == null)\r
-                               return null;\r
-                       if (element instanceof JMEAdaptable)\r
-                               element = ((JMEAdaptable)element).getElement();\r
-                       SceneElement e = (SceneElement)element;\r
-                       return e.getName() + " : " + e.getClass();\r
-               }\r
-               \r
-               @Override\r
-               public Image getImage(Object element) {\r
-                       if (element == null)\r
-                               return null;\r
-                       if (element instanceof JMEAdaptable)\r
-                               element = ((JMEAdaptable)element).getElement();\r
-                       ImageDescriptor desc = null;\r
-                       if (element instanceof GeomBatch)\r
-                               desc = BATCH_IMAGE;\r
-                       else if (element instanceof Geometry)\r
-                               desc = GEOMETRY_IMAGE;\r
-                       else if (element instanceof Node)\r
-                               desc = NODE_IMAGE;\r
-                       else \r
-                               return null;\r
-                       return ImageCache.getInstance().getImage(desc);\r
-               }\r
-       }\r
-       \r
-       private class GNScenegraphContentProvider implements ITreeContentProvider {\r
-               @Override\r
-               public Object[] getChildren(Object parentElement) {\r
-                       if (parentElement instanceof GNAdaptable)\r
-                               parentElement = ((GNAdaptable)parentElement).getNode();\r
-                       IGraphicsNode node = (IGraphicsNode)parentElement;\r
-                       Object children[] = new Object[node.getChildren().size()];\r
-                       Iterator<IGraphicsNode> it = node.getChildren().iterator();\r
-                       for (int i = 0; i < node.getChildren().size(); i++) {\r
-                               children[i] = new GNAdaptable(it.next());\r
-                       }\r
-                       return children;\r
-               }\r
-               \r
-               @Override\r
-               public Object[] getElements(Object inputElement) {\r
-                       if (inputElement instanceof ThreeDimensionalEditorBase) {\r
-                               IGraphicsNode root = ((ThreeDimensionalEditorBase)inputElement).getScenegraphAdapter().getRootNode();\r
-                               if (root != null)\r
-                                       return new Object[]{new GNAdaptable(root)};\r
-                       }\r
-                       return new Object[0];\r
-               }\r
-               \r
-               @Override\r
-               public Object getParent(Object element) {\r
-                       if (element instanceof GNAdaptable)\r
-                               element = ((GNAdaptable)element).getNode();\r
-                       IGraphicsNode node = (IGraphicsNode)element;\r
-                       return node.getParent();\r
-               }\r
-               \r
-               @Override\r
-               public boolean hasChildren(Object element) {\r
-                       if (element instanceof GNAdaptable)\r
-                               element = ((GNAdaptable)element).getNode();\r
-                       IGraphicsNode node = (IGraphicsNode)element;\r
-                       return node.getChildren().size() > 0;\r
-               }\r
-               \r
-               @Override\r
-               public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {\r
-                       \r
-               }\r
-               \r
-               @Override\r
-               public void dispose() {\r
-                       \r
-               }\r
-       }\r
-       \r
-       private class GNScenegraphLabelProvider extends LabelProvider {\r
-               @Override\r
-               public String getText(Object element) {\r
-                       if (element instanceof GNAdaptable)\r
-                               element = ((GNAdaptable)element).getNode();\r
-                       IGraphicsNode node = (IGraphicsNode)element;\r
-                       return node.getGroup().getName() + " : " + node.getClass();\r
-               }\r
-               \r
-               @Override\r
-               public Image getImage(Object element) {\r
-                       ImageDescriptor desc = NODE_IMAGE;\r
-//                     if (element instanceof GeomBatch)\r
-//                             desc = BATCH_IMAGE;\r
-//                     else if (element instanceof Geometry)\r
-//                             desc = GEOMETRY_IMAGE;\r
-//                     else if (element instanceof Node)\r
-//                             desc = NODE_IMAGE;\r
-//                     else \r
-//                             return null;\r
-                       return ImageCache.getInstance().getImage(desc);\r
-               }\r
-       }\r
-       \r
-       private class JMEAdaptable implements IAdaptable {\r
-               SceneElement element;\r
-                               \r
-               public JMEAdaptable(SceneElement element) {\r
-                       assert (element != null);\r
-                       this.element = element;\r
-               }\r
-               \r
-               @SuppressWarnings("unchecked")\r
-               @Override\r
-               public Object getAdapter(Class adapter) {\r
-               if (adapter == IPropertySource.class) {\r
-                   return new JMEProperties(element);\r
-               }\r
-               return null;\r
-               }\r
-               \r
-               public SceneElement getElement() {\r
-                       return element;\r
-               }\r
-       }\r
-       \r
-       private class GNAdaptable implements IAdaptable {\r
-               IGraphicsNode node;\r
-                               \r
-               public GNAdaptable(IGraphicsNode node) {\r
-                       assert (node != null);\r
-                       this.node = node;\r
-               }\r
-               \r
-               @SuppressWarnings("unchecked")\r
-               @Override\r
-               public Object getAdapter(Class adapter) {\r
-               if (adapter == IPropertySource.class) {\r
-                   return new GNProperties(node);\r
-               }\r
-               return null;\r
-               }\r
-               \r
-               public IGraphicsNode getNode() {\r
-                       return node;\r
-               }\r
-       }\r
-       \r
-       private static final String NAME = "name";\r
-       private static final String CULL_MODE = "cullmode";\r
-       private static final String CULL_MODES[] = {"Inherit","Dynamic","Always","Never"};\r
-       private static final String LIGHT_MODE = "lightmode";\r
-       private static final String LIGHT_MODES[] = {"Off","Combine First","Combine Closest","Combine Recent Enabled","Inherit","Replace"};\r
-       private static final String LOCAL_CULL_MODE = "localcullmode";\r
-       private static final String LOCAL_LIGHT_MODE = "locallightmode";\r
-       private static final String LOCAL_NORMALS_MODE = "localnormalsmode";\r
-       private static final String LOCAL_RENDER_QUEUE_MODE ="localrenderqueuemode";\r
-       private static final String LOCAL_TEXTURE_COMBINE_MODE = "localtexturecombinemode";\r
-       private static final String LOCKS = "locks";\r
-       private static final String NORMALS_MODE = "normalsmode";\r
-       private static final String NORMALS_MODES[] = {"Inherit","Use Provided","Normalize Provided","Normalize if scaled","Off"};\r
-       private static final String RENDER_QUEUE_MODE = "renderqueuemode";\r
-       private static final String RENDER_QUEUE_MODES[] = {"Inherit","Skip","Opaque","Transparent","Ortho"};\r
-       private static final String TEXTURE_COMBINE_MODE = "texturecombinemode";\r
-       private static final String TEXTURE_COMBINE_MODES[] = {"Off","First","Closest","Recent enabled","Inherit","Replace"};\r
-       \r
-       private static final String BOOLEAN_VALUES[] = {"False","True"};\r
-       \r
-       private class JMEProperties implements IPropertySource {        \r
-               \r
-               SceneElement element;\r
-               \r
-               public JMEProperties(SceneElement element) {\r
-                       this.element = element;\r
-               }\r
-               \r
-               @Override\r
-               public Object getEditableValue() {\r
-                       return this;\r
-               }\r
-               \r
-               @Override\r
-               public IPropertyDescriptor[] getPropertyDescriptors() {\r
-                       List<IPropertyDescriptor> desc = new ArrayList<IPropertyDescriptor>();\r
-                       desc.add(new TextPropertyDescriptor(NAME,"Name"));\r
-                       desc.add(new ComboBoxPropertyDescriptor(CULL_MODE,"Cull Mode",CULL_MODES));\r
-                       desc.add(new ComboBoxPropertyDescriptor(LIGHT_MODE,"Light Combine Mode",LIGHT_MODES));\r
-                       desc.add(new ComboBoxPropertyDescriptor(LOCAL_CULL_MODE,"Local Cull Mode",CULL_MODES));\r
-                       desc.add(new ComboBoxPropertyDescriptor(LOCAL_LIGHT_MODE,"Local Light Combine Mode",LIGHT_MODES));\r
-                       desc.add(new ComboBoxPropertyDescriptor(LOCAL_NORMALS_MODE,"Local Normals Mode",NORMALS_MODES));\r
-                       desc.add(new ComboBoxPropertyDescriptor(LOCAL_RENDER_QUEUE_MODE,"Local Render Queue Mode",RENDER_QUEUE_MODES));\r
-                       desc.add(new ComboBoxPropertyDescriptor(LOCAL_TEXTURE_COMBINE_MODE,"Local Texture Combine Mode",TEXTURE_COMBINE_MODES));\r
-                       desc.add(new TextPropertyDescriptor(LOCKS,"Locks"));\r
-                       desc.add(new ComboBoxPropertyDescriptor(NORMALS_MODE,"Normals Mode",NORMALS_MODES));\r
-                       desc.add(new ComboBoxPropertyDescriptor(RENDER_QUEUE_MODE,"Render Queue Mode",RENDER_QUEUE_MODES));\r
-                       desc.add(new ComboBoxPropertyDescriptor(TEXTURE_COMBINE_MODE,"Texture Combine Mode",TEXTURE_COMBINE_MODES));\r
-                       return desc.toArray(new IPropertyDescriptor[desc.size()]);\r
-\r
-               }\r
-               \r
-               @Override\r
-               public Object getPropertyValue(Object id) {\r
-                       if (id == NAME) {\r
-                               return element.getName();\r
-                       } else if (id == CULL_MODE) {\r
-                               return element.getCullMode();\r
-                       } else if (id == LIGHT_MODE) {\r
-                               return element.getLightCombineMode();\r
-                       } else if (id == LOCAL_CULL_MODE) {\r
-                               return element.getLocalCullMode();\r
-                       } else if (id == LOCAL_LIGHT_MODE) {\r
-                               return element.getLocalLightCombineMode();\r
-                       } else if (id == LOCAL_NORMALS_MODE) {\r
-                               return element.getLocalNormalsMode();\r
-                       } else if (id == LOCAL_RENDER_QUEUE_MODE) {\r
-                               return element.getLocalRenderQueueMode();\r
-                       } else if (id == LOCAL_TEXTURE_COMBINE_MODE) {\r
-                               return element.getLocalTextureCombineMode();\r
-                       } else if (id == LOCKS) {\r
-                               return element.getLocks();\r
-                       } else if (id == NORMALS_MODE) {\r
-                               return element.getNormalsMode();\r
-                       } else if (id == RENDER_QUEUE_MODE) {\r
-                               return element.getRenderQueueMode();\r
-                       } else if (id == TEXTURE_COMBINE_MODE) {\r
-                               return element.getTextureCombineMode();\r
-                       }\r
-                       \r
-//                     element.getZOrder();\r
-//                     element.isCollidable();\r
-\r
-                       return null;\r
-               }\r
-               \r
-               @Override\r
-               public boolean isPropertySet(Object id) {\r
-                       return false;\r
-               }\r
-               \r
-               @Override\r
-               public void resetPropertyValue(Object id) {\r
-                       \r
-               }\r
-               \r
-               @Override\r
-               public void setPropertyValue(Object id, Object value) {\r
-                       if (id == NAME) {\r
-                               element.setName((String)value);\r
-                       } else if (id == CULL_MODE) {\r
-                               element.setCullMode((Integer)value);\r
-                       } else if (id == LIGHT_MODE) {\r
-                               element.setLightCombineMode((Integer)value);\r
-                       } else if (id == LOCAL_CULL_MODE) {\r
-                               \r
-                       } else if (id == LOCAL_LIGHT_MODE) {\r
-                               \r
-                       } else if (id == LOCAL_NORMALS_MODE) {\r
-                               \r
-                       } else if (id == LOCAL_RENDER_QUEUE_MODE) {\r
-                               \r
-                       } else if (id == LOCAL_TEXTURE_COMBINE_MODE) {\r
-                               \r
-                       } else if (id == LOCKS) {\r
-                               element.setLocks((Integer)value);\r
-                       } else if (id == NORMALS_MODE) {\r
-                               element.setNormalsMode((Integer)value);\r
-                       } else if (id == RENDER_QUEUE_MODE) {\r
-                               element.setRenderQueueMode((Integer)value);\r
-                       } else if (id == TEXTURE_COMBINE_MODE) {\r
-                               element.setTextureCombineMode((Integer)value);\r
-                       }\r
-                       \r
-               }\r
-\r
-       }\r
-       \r
-       private static final String SELECTED = "selected";\r
-       private static final String HIGHLIGHTED = "highlighted";\r
-       private static final String VISIBLE = "visible";\r
-       \r
-       private class GNProperties implements IPropertySource {\r
-               IGraphicsNode node;\r
-               \r
-               public GNProperties(IGraphicsNode node) {\r
-                       this.node = node;\r
-               }\r
-               \r
-               \r
-               @Override\r
-               public Object getEditableValue() {\r
-                       return this;\r
-               }\r
-               \r
-               @Override\r
-               public IPropertyDescriptor[] getPropertyDescriptors() {\r
-                       List<IPropertyDescriptor> desc = new ArrayList<IPropertyDescriptor>();\r
-                       if (node instanceof ISelectableNode) {\r
-                               //ISelectableNode n = (ISelectableNode)node;\r
-                               \r
-                               desc.add(new ComboBoxPropertyDescriptor(SELECTED,"Selected",BOOLEAN_VALUES));\r
-                               desc.add(new ComboBoxPropertyDescriptor(HIGHLIGHTED,"Highlighted",BOOLEAN_VALUES));\r
-                               desc.add(new ComboBoxPropertyDescriptor(VISIBLE,"Visible",BOOLEAN_VALUES));\r
-                               \r
-                       }\r
-                       return desc.toArray(new IPropertyDescriptor[desc.size()]);\r
-               }\r
-               \r
-               @Override\r
-               public Object getPropertyValue(Object id) {\r
-                       if (node instanceof ISelectableNode) {\r
-                               ISelectableNode n = (ISelectableNode)node;\r
-                               if (id == SELECTED) {\r
-                                       if (n.isSelected())\r
-                                               return 1;\r
-                                       return 0;\r
-                               } else if (id == HIGHLIGHTED) {\r
-                                       if (n.isHighlighted())\r
-                                               return 1;\r
-                                       return 0;\r
-                               } else if (id == VISIBLE) {\r
-                                       if (n.isVisible())\r
-                                               return 1;\r
-                                       return 0;\r
-                               }\r
-                       }\r
-                       if (node instanceof IGeometryNode) {\r
-                               //IGeometryNode n = (IGeometryNode)node;\r
-                       }\r
-\r
-                       return null;\r
-               }\r
-               \r
-               @Override\r
-               public boolean isPropertySet(Object id) {\r
-                       return false;\r
-               }\r
-               \r
-               @Override\r
-               public void resetPropertyValue(Object id) {\r
-\r
-               }\r
-               \r
-               @Override\r
-               public void setPropertyValue(Object id, Object value) {\r
-                       if (node instanceof ISelectableNode) {\r
-                               ISelectableNode n = (ISelectableNode)node;\r
-                               boolean b = ((Integer)value) == 1;\r
-                               if (id == SELECTED) {\r
-                                       n.setSelected(b);\r
-                               } else if (id == HIGHLIGHTED) {\r
-                                       n.setHighlighted(b);\r
-                               } else if (id == VISIBLE) {\r
-                                       n.setVisible(b);\r
-                               }\r
-                       }\r
-                       \r
-               }\r
-\r
-               \r
-       }\r
-       \r
-}\r
-       \r
-\r