diff options
| author | Robert Gemmell <robbie@apache.org> | 2009-07-24 14:48:58 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2009-07-24 14:48:58 +0000 |
| commit | 5d9ed6c500752b636ff2e1e39b70f9399f8b27ed (patch) | |
| tree | b56fa67052de06319ddee8ec5291293135bc6f5b /java/management/eclipse-plugin/src | |
| parent | 7f129dff3a8b346db160031eb2986bc55505ae01 (diff) | |
| download | qpid-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
Diffstat (limited to 'java/management/eclipse-plugin/src')
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); } } |
