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