add trivial view of repository path to resolver view


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@992289 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleResolverView.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleResolverView.java
index dfac116..ac7eac4 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleResolverView.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleResolverView.java
@@ -27,12 +27,15 @@
 import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
 import org.apache.felix.sigil.common.model.osgi.IPackageImport;
 import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
+import org.apache.felix.sigil.common.repository.IBundleRepository;
+import org.apache.felix.sigil.common.repository.IBundleResolver;
 import org.apache.felix.sigil.common.repository.IRepositoryManager;
 import org.apache.felix.sigil.common.repository.IResolutionMonitor;
 import org.apache.felix.sigil.common.repository.ResolutionConfig;
 import org.apache.felix.sigil.common.repository.ResolutionException;
 import org.apache.felix.sigil.eclipse.SigilCore;
 import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
+import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
 import org.apache.felix.sigil.eclipse.repository.ResolutionMonitorAdapter;
 import org.apache.felix.sigil.eclipse.ui.SigilUI;
 import org.eclipse.core.runtime.CoreException;
@@ -48,6 +51,8 @@
 import org.eclipse.swt.events.ControlAdapter;
 import org.eclipse.swt.events.ControlEvent;
 import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.IActionBars;
 import org.eclipse.ui.IPartService;
@@ -89,6 +94,8 @@
     private int lastY;
 
     private Map<String, Boolean> displayed = new HashMap<String, Boolean>();
+    private org.eclipse.swt.widgets.Label repoPath;
+    private Composite viewComposite;
 
     private class ToggleDisplayAction extends Action
     {
@@ -158,21 +165,15 @@
     public void createPartControl(Composite parent)
     {
         init();
-        createViewer(parent);
+        parent.setLayout(new FillLayout());
+        Composite composite = new Composite(parent, SWT.NONE);
+        createRepoPath(composite);
+        createViewer(composite);
+        doLayout(composite);
         createListeners();
         createMenu();
     }
 
-    private void init()
-    {
-        displayed.put(LINK_LABELS, false);
-        displayed.put(LOCAL_LINKS, false);
-        displayed.put(DEPENDENTS, false);
-        displayed.put(OPTIONAL, false);
-        displayed.put(SATISFIED, true);
-        displayed.put(UNSATISFIED, true);
-    }
-
     public BundleGraph getBundlegraph()
     {
         return (BundleGraph) viewer.getInput();
@@ -219,14 +220,30 @@
             job.cancel();
         }
 
-        job = new Job("Resolving " + current)
+        ISigilProjectModel project = findProject(element);        
+        final IRepositoryManager repository = project == null ? SigilCore.getGlobalRepositoryManager() : project.getRepositoryManager();
+        
+        StringBuilder buf = new StringBuilder();
+        
+        for (IBundleRepository rep : repository.getRepositories()) {
+            IRepositoryModel mod = SigilCore.getRepositoryModel(rep);
+            if ( buf.length() > 0 ) {
+                buf.append(" -> ");                
+            }
+            buf.append(mod.getName());
+        }
+        
+        buf.insert(0, "Repository Path: ");
+        repoPath.setText(buf.toString());
+
+        job = new Job("Resolving " + element)
         {
             @Override
             protected IStatus run(IProgressMonitor progress)
             {
                 try
                 {
-                    resolve(element, progress);
+                    resolve(element, repository.getBundleResolver(), progress);
                     return Status.OK_STATUS;
                 }
                 catch (CoreException e)
@@ -238,7 +255,7 @@
         job.schedule();
     }
 
-    private void resolve(IModelElement element, IProgressMonitor progress)
+    private void resolve(IModelElement element, IBundleResolver resolver, IProgressMonitor progress)
         throws CoreException
     {
         final BundleGraph graph = new BundleGraph();
@@ -258,9 +275,6 @@
             }
         };
 
-        ISigilProjectModel project = findProject(element);
-        IRepositoryManager repository = project.getRepositoryManager();
-
         int options = ResolutionConfig.IGNORE_ERRORS;
 
         if (isDisplayed(DEPENDENTS))
@@ -276,7 +290,7 @@
 
         try
         {
-            repository.getBundleResolver().resolve(element, config, monitor);
+            resolver.resolve(element, config, monitor);
         }
         catch (ResolutionException e)
         {
@@ -329,10 +343,29 @@
         return l;
     }
 
+    /**
+     * @param composite
+     */
+    private void createRepoPath(Composite composite)
+    {
+        repoPath = new org.eclipse.swt.widgets.Label(composite, SWT.NONE);
+    }
+
+    private void init()
+    {
+        displayed.put(LINK_LABELS, false);
+        displayed.put(LOCAL_LINKS, false);
+        displayed.put(DEPENDENTS, false);
+        displayed.put(OPTIONAL, false);
+        displayed.put(SATISFIED, true);
+        displayed.put(UNSATISFIED, true);
+    }
+
     private void createViewer(Composite parent)
     {
-        parent.setLayout(new FillLayout());
-        viewer = new GraphViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL);
+        viewComposite = new Composite(parent, SWT.NONE);
+        viewComposite.setLayout(new FillLayout());
+        viewer = new GraphViewer(viewComposite, SWT.H_SCROLL | SWT.V_SCROLL);
         IContentProvider contentProvider = new BundleGraphContentProvider();
         viewer.setContentProvider(contentProvider);
         viewer.setLabelProvider(new BundleGraphLabelProvider(this));
@@ -345,6 +378,17 @@
         viewer.setInput(new BundleGraph());
     }
 
+    /**
+     * @param parent 
+     * 
+     */
+    private void doLayout(Composite parent)
+    {
+        parent.setLayout(new GridLayout(1, true));
+        repoPath.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+        viewComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+    }
+
     private void createMenu()
     {
         IActionBars action = getViewSite().getActionBars();