diff options
| author | Robert Gemmell <robbie@apache.org> | 2009-07-24 14:55:24 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2009-07-24 14:55:24 +0000 |
| commit | cf01051f7b1447677ed056797233916d8873c7c8 (patch) | |
| tree | 8836450c858691bc679e3483268955cef95754fa /java | |
| parent | e6c831a5d033f304d1f81944a6e8a3e7403d245a (diff) | |
| download | qpid-python-cf01051f7b1447677ed056797233916d8873c7c8.tar.gz | |
QPID-2006: enable double click on a Queue from a binding result in order to open the Queue mbean directly from the Exchanges mbean view
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@797510 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
2 files changed, 106 insertions, 5 deletions
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/ExchangeOperationsTabControl.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/ExchangeOperationsTabControl.java index 1dbb5340f4..dcdd199a7d 100644 --- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/ExchangeOperationsTabControl.java +++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/ExchangeOperationsTabControl.java @@ -35,9 +35,11 @@ import javax.management.openmbean.TabularDataSupport; import org.apache.qpid.management.ui.ApiVersion; import org.apache.qpid.management.ui.ApplicationRegistry; import org.apache.qpid.management.ui.ManagedBean; +import org.apache.qpid.management.ui.ServerRegistry; import org.apache.qpid.management.common.mbeans.ManagedExchange; import org.apache.qpid.management.ui.jmx.JMXManagedObject; import org.apache.qpid.management.ui.jmx.MBeanUtility; +import org.apache.qpid.management.ui.views.MBeanView; import org.apache.qpid.management.ui.views.TabControl; import org.apache.qpid.management.ui.views.ViewUtility; import org.eclipse.jface.viewers.ISelectionChangedListener; @@ -49,6 +51,8 @@ import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerSorter; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Image; @@ -64,6 +68,8 @@ import org.eclipse.swt.widgets.TabFolder; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; @@ -282,6 +288,19 @@ public class ExchangeOperationsTabControl extends TabControl _queuesTableViewer.setSorter(queuesTableSorter); _queuesTableViewer.setInput(new String[]{"Select a binding key to view queues"}); + //listener for double clicking to open the selection mbean + _queuesTable.addMouseListener(new MouseListener() + { + // MouseListener implementation + public void mouseDoubleClick(MouseEvent event) + { + openMBean(_queuesTable); + } + + public void mouseDown(MouseEvent e){} + public void mouseUp(MouseEvent e){} + }); + _keysTableViewer.addSelectionChangedListener(new ISelectionChangedListener(){ public void selectionChanged(SelectionChangedEvent evt) { @@ -580,4 +599,35 @@ public class ExchangeOperationsTabControl extends TabControl shell.pack(); shell.open(); } + + private void openMBean(Table table) + { + int selectionIndex = table.getSelectionIndex(); + + if (selectionIndex == -1) + { + return; + } + + String queueName = (String) table.getItem(selectionIndex).getData(); + ServerRegistry serverRegistry = ApplicationRegistry.getServerRegistry(_mbean); + ManagedBean selectedMBean = serverRegistry.getQueue(queueName, _mbean.getVirtualHostName()); + + if(selectedMBean == null) + { + ViewUtility.popupErrorMessage("Error", "Unable to retrieve the selected MBean to open it"); + return; + } + + IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); + MBeanView view = (MBeanView) window.getActivePage().findView(MBeanView.ID); + try + { + view.openMBean(selectedMBean); + } + catch (Exception ex) + { + MBeanUtility.handleException(selectedMBean, ex); + } + } } diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/HeadersExchangeOperationsTabControl.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/HeadersExchangeOperationsTabControl.java index 6b3889a2eb..e7ab034094 100644 --- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/HeadersExchangeOperationsTabControl.java +++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/HeadersExchangeOperationsTabControl.java @@ -31,9 +31,11 @@ import javax.management.openmbean.TabularDataSupport; import org.apache.qpid.management.ui.ApplicationRegistry; import org.apache.qpid.management.ui.ManagedBean; +import org.apache.qpid.management.ui.ServerRegistry; import org.apache.qpid.management.common.mbeans.ManagedExchange; import org.apache.qpid.management.ui.jmx.JMXManagedObject; import org.apache.qpid.management.ui.jmx.MBeanUtility; +import org.apache.qpid.management.ui.views.MBeanView; import org.apache.qpid.management.ui.views.TabControl; import org.apache.qpid.management.ui.views.ViewUtility; import org.eclipse.jface.viewers.ISelectionChangedListener; @@ -45,6 +47,8 @@ import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerSorter; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Image; @@ -60,6 +64,8 @@ import org.eclipse.swt.widgets.TabFolder; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; @@ -82,7 +88,7 @@ public class HeadersExchangeOperationsTabControl extends TabControl static final String BINDING_NUM = ManagedExchange.HEADERS_COMPOSITE_ITEM_NAMES[0]; static final String QUEUE_NAME = ManagedExchange.HEADERS_COMPOSITE_ITEM_NAMES[1]; - static final String QUEUE_BINDINGS = ManagedExchange.HEADERS_COMPOSITE_ITEM_NAMES[2]; + static final String HEADER_BINDINGS = ManagedExchange.HEADERS_COMPOSITE_ITEM_NAMES[2]; public HeadersExchangeOperationsTabControl(TabFolder tabFolder, JMXManagedObject mbean, MBeanServerConnection mbsc) { @@ -224,7 +230,7 @@ public class HeadersExchangeOperationsTabControl extends TabControl _headersTable.setLayoutData(data); _headersTableViewer = new TableViewer(_headersTable); - final TableSorter queuesTableSorter = new TableSorter(QUEUE_BINDINGS); + final TableSorter queuesTableSorter = new TableSorter(HEADER_BINDINGS); titles = new String[]{"Header Bindings"}; bounds = new int[]{225}; @@ -262,8 +268,8 @@ public class HeadersExchangeOperationsTabControl extends TabControl } - _headersTableViewer.setContentProvider(new ContentProviderImpl(QUEUE_BINDINGS)); - _headersTableViewer.setLabelProvider(new LabelProviderImpl(QUEUE_BINDINGS)); + _headersTableViewer.setContentProvider(new ContentProviderImpl(HEADER_BINDINGS)); + _headersTableViewer.setLabelProvider(new LabelProviderImpl(HEADER_BINDINGS)); _headersTableViewer.setSorter(queuesTableSorter); _headersTableViewer.setInput(new String[]{"Select a binding to view key-value pairs"}); @@ -276,7 +282,7 @@ public class HeadersExchangeOperationsTabControl extends TabControl { final CompositeData selectedMsg = (CompositeData)_bindingNumberTable.getItem(selectionIndex).getData(); - String[] bindings = (String[]) selectedMsg.get(QUEUE_BINDINGS); + String[] bindings = (String[]) selectedMsg.get(HEADER_BINDINGS); _headersTableViewer.setInput(bindings); } else @@ -286,6 +292,19 @@ public class HeadersExchangeOperationsTabControl extends TabControl } }); + //listener for double clicking to open the selection mbean + _bindingNumberTable.addMouseListener(new MouseListener() + { + // MouseListener implementation + public void mouseDoubleClick(MouseEvent event) + { + openMBean(_bindingNumberTable); + } + + public void mouseDown(MouseEvent e){} + public void mouseUp(MouseEvent e){} + }); + //Side Buttons Composite buttonsComposite = _toolkit.createComposite(bindingsGroup); gridData = new GridData(SWT.FILL, SWT.FILL, false, true); @@ -555,4 +574,36 @@ public class HeadersExchangeOperationsTabControl extends TabControl shell.pack(); shell.open(); } + + private void openMBean(Table table) + { + int selectionIndex = table.getSelectionIndex(); + + if (selectionIndex == -1) + { + return; + } + + CompositeData bindingResult = (CompositeData) table.getItem(selectionIndex).getData(); + String queueName = (String) bindingResult.get(QUEUE_NAME); + ServerRegistry serverRegistry = ApplicationRegistry.getServerRegistry(_mbean); + ManagedBean selectedMBean = serverRegistry.getQueue(queueName, _mbean.getVirtualHostName()); + + if(selectedMBean == null) + { + ViewUtility.popupErrorMessage("Error", "Unable to retrieve the selected MBean to open it"); + return; + } + + IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); + MBeanView view = (MBeanView) window.getActivePage().findView(MBeanView.ID); + try + { + view.openMBean(selectedMBean); + } + catch (Exception ex) + { + MBeanUtility.handleException(selectedMBean, ex); + } + } } |
