Index: /ossiedev/branches/jsnyder/ComponentProject/src/edu/vt/ossie/editors/OWDEditor.java
===================================================================
--- /ossiedev/branches/jsnyder/ComponentProject/src/edu/vt/ossie/editors/OWDEditor.java	(revision 7295)
+++ /ossiedev/branches/jsnyder/ComponentProject/src/edu/vt/ossie/editors/OWDEditor.java	(revision 7301)
@@ -19,5 +19,4 @@
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.part.EditorPart;
-import org.eclipse.ui.texteditor.IElementStateListener;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IMenuListener;
@@ -38,9 +37,7 @@
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
 import org.eclipse.swt.widgets.Tree;
 import org.python.core.Py;
 import org.python.core.PyList;
-import org.python.core.PyObject;
 import edu.vt.ossie.OWDPlugin;
 import edu.vt.ossie.jyinterface.interfaces.MainFrame;
@@ -48,4 +45,5 @@
 import edu.vt.ossie.views.ResourceTreeLabelProvider;
 import edu.vt.ossie.views.ResourceTreeContentProvider.TreeNode;
+import edu.vt.ossie.wavedev.*;
 
 public class OWDEditor
@@ -107,7 +105,5 @@
                         public void widgetSelected(SelectionEvent event)
                         {
-                            System.out.println("button pressed");
-                            PyList results = mainFrame().loadResources();
-                            availableResourcesTreeViewer.setInput(results);
+                            refreshResources();
                         }
                     });
@@ -122,10 +118,4 @@
                 availableResourcesTreeViewer.setLabelProvider(
                     new ResourceTreeLabelProvider());
-                availableResourcesTreeViewer.setInput(
-                    mainFrame().loadResources());
-
-                final Action addToWaveform = new Action("Add to Waveform")
-                {
-                };
 
                 final Action addToNode = new Action("Add to Node")
@@ -156,8 +146,20 @@
                                 if (!node.hasChildren())
                                 {
-                                    
-                                    mgr.add(new AddToWaveformAction(node.data()));
-                                    mgr.add(addToNode);
-                                    mgr.add(addToPlatform);
+                                    if ("Components".equals(
+                                            node.parent().getName()))
+                                    {
+                                        mgr.add(new AddToWaveformAction(
+                                            node.data()));
+                                    }
+                                    else if ("Devices".equals(
+                                        node.parent().getName()))
+                                    {
+                                        mgr.add(addToNode);
+                                    }
+                                    else if ("Nodes".equals(
+                                        node.parent().getName()))
+                                    {
+                                        mgr.add(addToPlatform);
+                                    }
                                     mgr.add(new DoxygenAction(node.data()));
                                 }
@@ -182,10 +184,10 @@
             }
             {
-            	activeWaveformTree = new Tree(mainWindow, SWT.NONE);
+            	activeWaveformTree = new Tree(mainWindow, SWT.BORDER);
 				activeWaveformTree.setBounds(257, 30, 490, 149);
 				activeWaveformTreeViewer = new TreeViewer(activeWaveformTree);
 				activeWaveformTreeViewer.setContentProvider(new ResourceTreeContentProvider());
 				activeWaveformTreeViewer.setLabelProvider(new ResourceTreeLabelProvider());
-				
+
             }
             {
@@ -200,4 +202,9 @@
         scroller.setMinSize(mainWindow.computeSize(SWT.DEFAULT, SWT.DEFAULT));
         scroller.setContent(mainWindow);
+
+        // Load the trees
+        refreshResources();
+        refreshWaveform();
+        refreshPlatform();
 	}
 
@@ -302,8 +309,21 @@
 
     // ----------------------------------------------------------
-    public PyObject getActiveWavefrom()
-    {
-        if(activeWaveform == null)
-            activeWaveform = mainFrame().getActiveWaveform();
+    public void refreshResources()
+    {
+        System.out.println("Refreshing resources tree");
+        availableResourcesTreeViewer.setInput(
+            wavedevFactory().toArrayOfWrappedElements(
+                mainFrame().loadResources()));
+    }
+
+
+    // ----------------------------------------------------------
+    public Waveform getActiveWaveform()
+    {
+        if (activeWaveform == null)
+        {
+            activeWaveform = (Waveform)wavedevFactory()
+                .wrap(mainFrame().getActiveWaveform());
+        }
         return activeWaveform;
     }
@@ -311,9 +331,28 @@
 
     // ----------------------------------------------------------
-    public PyObject getActivePlatform()
-    {
-        if(activePlatform == null)
-            activePlatform = mainFrame().getActivePlatform();
+    public void refreshWaveform()
+    {
+        System.out.println("Refreshing waveform tree");
+        activeWaveformTreeViewer.setInput(getActiveWaveform());
+    }
+
+
+    // ----------------------------------------------------------
+    public PyWrapper getActivePlatform()
+    {
+        if (activePlatform == null)
+        {
+            activePlatform = wavedevFactory().wrap(
+                mainFrame.getActivePlatform());
+        }
         return activePlatform;
+    }
+
+
+    // ----------------------------------------------------------
+    public void refreshPlatform()
+    {
+        System.out.println("Refreshing platform tree");
+        // deployedNodesTreeViewer.setInput(getActivePlatform());
     }
 
@@ -401,4 +440,6 @@
             System.out.println("OWDEditor: loading file " + fileName);
             mainFrame().loadProject(Py.newString(fileName));
+            activeWaveform = null;
+            activePlatform = null;
             initializeTitle(input);
         }
@@ -460,9 +501,21 @@
 
     // ----------------------------------------------------------
+    private Factory wavedevFactory()
+    {
+        if (wavedevFactory == null)
+        {
+            wavedevFactory = new Factory(OWDPlugin.getInterpreter());
+        }
+        return wavedevFactory;
+    }
+
+
+
+    // ----------------------------------------------------------
     private static abstract class ComponentAction
         extends Action
     {
         // ----------------------------------------------------------
-        public ComponentAction(String name, PyObject subject)
+        public ComponentAction(String name, PyWrapper subject)
         {
             super(name);
@@ -470,5 +523,5 @@
         }
 
-        protected PyObject subject;
+        protected PyWrapper subject;
     }
 
@@ -479,5 +532,5 @@
     {
         // ----------------------------------------------------------
-        public DoxygenAction(PyObject subject)
+        public DoxygenAction(PyWrapper subject)
         {
             super("Display Doxygen", subject);
@@ -488,26 +541,25 @@
         public void run()
         {
-            mainFrame().displayDoxygen(subject);
-        }
-    }
-    
+            mainFrame().displayDoxygen(subject.pyObject());
+        }
+    }
+
     private class AddToWaveformAction
     	extends ComponentAction
     {
 
-		public AddToWaveformAction(PyObject subject) 
+		public AddToWaveformAction(PyWrapper subject)
 		{
 			super("Add to Waveform", subject);
 			// TODO Auto-generated constructor stub
 		}
-		
+
 		public void run()
 		{
 			System.out.println("here");
-			mainFrame.addComponentToActiveWaveform(subject);
-			activeWaveformTreeViewer.setInput(mainFrame.getActiveWaveform());
-			
+			mainFrame.addComponentToActiveWaveform(subject.pyObject());
+			refreshWaveform();
 		}
-    	
+
    	}
 
@@ -558,6 +610,7 @@
 
     private MainFrame  mainFrame;
-    private PyObject   activeWaveform;
-    private PyObject   activePlatform;
+    private Waveform   activeWaveform;
+    private PyWrapper  activePlatform;
     private Image      titleImage;
+    private Factory    wavedevFactory;
 }
