summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2009-07-24 14:48:58 +0000
committerRobert Gemmell <robbie@apache.org>2009-07-24 14:48:58 +0000
commit5d9ed6c500752b636ff2e1e39b70f9399f8b27ed (patch)
treeb56fa67052de06319ddee8ec5291293135bc6f5b
parent7f129dff3a8b346db160031eb2986bc55505ae01 (diff)
downloadqpid-python-5d9ed6c500752b636ff2e1e39b70f9399f8b27ed.tar.gz
QPID-1978: Enable multiple selection for adding Queues/Connections/Exchanges to Favourites
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@797507 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java59
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java38
2 files changed, 65 insertions, 32 deletions
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java
index 4863323aac..94b69e1231 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java
@@ -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 @@ public abstract class MBeanTypeTabControl extends TabControl
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 @@ public abstract class MBeanTypeTabControl extends TabControl
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 @@ public abstract class MBeanTypeTabControl extends TabControl
{
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 @@ public abstract class MBeanTypeTabControl extends TabControl
{
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()
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java
index 69edde9464..8f80426af8 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java
@@ -142,7 +142,7 @@ public class QueueTypeTabControl extends MBeanTypeTabControl
@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 @@ public class QueueTypeTabControl extends MBeanTypeTabControl
{
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);
}
}