Author: robbie
Date: Fri Jul 24 14:48:58 2009
New Revision: 797507

URL: http://svn.apache.org/viewvc?rev=797507&view=rev
Log:
QPID-1978: Enable multiple selection for adding Queues/Connections/Exchanges to 
Favourites

Modified:
    
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java
    
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java

Modified: 
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java?rev=797507&r1=797506&r2=797507&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java
 (original)
+++ 
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java
 Fri Jul 24 14:48:58 2009
@@ -21,6 +21,7 @@
 package org.apache.qpid.management.ui.views.type;
 
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.qpid.management.ui.ApiVersion;
@@ -132,7 +133,7 @@
     
     protected void createTable(Composite tableComposite)
     {
-        _table = new Table (tableComposite, SWT.SINGLE | SWT.SCROLL_LINE | 
SWT.BORDER | SWT.FULL_SELECTION);
+        _table = new Table (tableComposite, SWT.MULTI | SWT.SCROLL_LINE | 
SWT.BORDER | SWT.FULL_SELECTION);
         _table.setLinesVisible (true);
         _table.setHeaderVisible (true);
         GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
@@ -199,7 +200,7 @@
         buttonComposite.setLayout(new GridLayout(2,true));
         
         final Button favouritesButton = _toolkit.createButton(buttonComposite, 
-                                                    "<-- Add " + _type + " to 
favourites", SWT.PUSH);
+                                                    "<-- Add " + _type + "(s) 
to favourites", SWT.PUSH);
         gridData = new GridData(SWT.LEFT, SWT.CENTER, true, false);
         favouritesButton.setLayoutData(gridData);
         favouritesButton.addSelectionListener(new SelectionAdapter()
@@ -236,16 +237,25 @@
             {
                 int selectionIndex = _table.getSelectionIndex();
 
-                if (selectionIndex != -1)
+                if (selectionIndex == -1)
                 {
-                    favouritesButton.setEnabled(true);
-                    openButton.setEnabled(true);
+                    favouritesButton.setEnabled(false);
+                    openButton.setEnabled(false);
+                    return;
                 }
                 else
                 {
-                    favouritesButton.setEnabled(false);
+                    favouritesButton.setEnabled(true);
+                }
+                
+                if(_table.getSelectionCount() > 1)
+                {
                     openButton.setEnabled(false);
                 }
+                else
+                {
+                    openButton.setEnabled(true);
+                }
             }
         });
         
@@ -371,21 +381,36 @@
     {
         int selectionIndex = _table.getSelectionIndex();
 
-        if (selectionIndex != -1)
+        if (selectionIndex == -1)
         {
-            final ManagedBean selectedMBean = 
(ManagedBean)_table.getItem(selectionIndex).getData();
-            
-            IWorkbenchWindow window = 
PlatformUI.getWorkbench().getActiveWorkbenchWindow(); 
-            NavigationView view = 
(NavigationView)window.getActivePage().findView(NavigationView.ID);
-            try
-            {
-                view.addManagedBean(selectedMBean);
-            }
-            catch (Exception ex)
+            return;
+        }
+
+        int[] selectedIndices = _table.getSelectionIndices();
+        
+        ArrayList<ManagedBean> selectedMBeans = new ArrayList<ManagedBean>();
+        
+        for(int index = 0; index < selectedIndices.length ; index++)
+        {
+            ManagedBean selectedMBean = 
(ManagedBean)_table.getItem(selectedIndices[index]).getData();
+            selectedMBeans.add(selectedMBean);
+        }
+        
+        IWorkbenchWindow window = 
PlatformUI.getWorkbench().getActiveWorkbenchWindow(); 
+        NavigationView view = 
(NavigationView)window.getActivePage().findView(NavigationView.ID);
+        
+        ManagedBean bean = null;
+        try
+        {
+            for(ManagedBean mbean: selectedMBeans)
             {
-                MBeanUtility.handleException(selectedMBean, ex);
+                view.addManagedBean(mbean);
             }
         }
+        catch (Exception ex)
+        {
+            MBeanUtility.handleException(bean, ex);
+        }
     }
     
     protected void openMBean()

Modified: 
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java?rev=797507&r1=797506&r2=797507&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java
 (original)
+++ 
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java
 Fri Jul 24 14:48:58 2009
@@ -142,7 +142,7 @@
     @Override
     protected void createTable(Composite tableComposite)
     {
-        _table = new Table (tableComposite, SWT.SINGLE | SWT.SCROLL_LINE | 
SWT.BORDER | SWT.FULL_SELECTION);
+        _table = new Table (tableComposite, SWT.MULTI | SWT.SCROLL_LINE | 
SWT.BORDER | SWT.FULL_SELECTION);
         _table.setLinesVisible (true);
         _table.setHeaderVisible (true);
         GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
@@ -488,38 +488,46 @@
         {
             return;
         }
+
+        int[] selectedIndices = _table.getSelectionIndices();
         
-        ManagedBean selectedMBean;
+        ArrayList<ManagedBean> selectedMBeans = new ArrayList<ManagedBean>();
         
         if(_ApiVersion.greaterThanOrEqualTo(1, 3))
         {
             //if we have Qpid JMX API 1.3+ the entries are created from 
Map.Entry<String,Long>
-            Map.Entry<String, Long> queueEntry = (Map.Entry<String, Long>) 
_table.getItem(selectionIndex).getData();
-
-            String queueName = queueEntry.getKey();
-            selectedMBean = _serverRegistry.getQueue(queueName, _virtualHost);
+            for(int index = 0; index < selectedIndices.length ; index++)
+            {
+                Map.Entry<String, Long> queueEntry = (Map.Entry<String, Long>) 
_table.getItem(selectedIndices[index]).getData();
+                String queueName = queueEntry.getKey();
+                selectedMBeans.add(_serverRegistry.getQueue(queueName, 
_virtualHost));
+            }
         }
         else
         {
             //if we have a Qpid JMX API 1.2 or less server, entries are 
created from ManagedBeans directly
-            selectedMBean = 
(ManagedBean)_table.getItem(selectionIndex).getData();
-        }
-
-        if(selectedMBean == null)
-        {
-            ViewUtility.popupErrorMessage("Error", "Unable to retrieve the 
selected MBean to add it to favourites");
-            return;
+            for(int index = 0; index < selectedIndices.length ; index++)
+            {
+                ManagedBean mbean = (ManagedBean) 
_table.getItem(selectedIndices[index]).getData();
+                selectedMBeans.add(mbean);
+            }
         }
 
         IWorkbenchWindow window = 
PlatformUI.getWorkbench().getActiveWorkbenchWindow(); 
         NavigationView view = 
(NavigationView)window.getActivePage().findView(NavigationView.ID);
+        
+        ManagedBean bean = null;
         try
         {
-            view.addManagedBean(selectedMBean);
+            for(ManagedBean mbean: selectedMBeans)
+            {
+                bean = mbean;
+                view.addManagedBean(mbean);
+            }
         }
         catch (Exception ex)
         {
-            MBeanUtility.handleException(selectedMBean, ex);
+            MBeanUtility.handleException(bean, ex);
         }
     }
     



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org

Reply via email to