summaryrefslogtreecommitdiff
path: root/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java')
-rw-r--r--trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java764
1 files changed, 0 insertions, 764 deletions
diff --git a/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java b/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java
deleted file mode 100644
index df2a1eca59..0000000000
--- a/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java
+++ /dev/null
@@ -1,764 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.management.ui.views.type;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.Semaphore;
-
-import javax.management.MBeanServerConnection;
-import javax.management.MBeanServerInvocationHandler;
-
-import static org.apache.qpid.management.ui.ApplicationRegistry.DATA_DIR;
-import static org.apache.qpid.management.ui.Constants.QUEUE;
-import static org.apache.qpid.management.common.mbeans.ManagedQueue.ATTR_NAME;
-import static org.apache.qpid.management.common.mbeans.ManagedQueue.ATTR_ACTIVE_CONSUMER_COUNT;
-import static org.apache.qpid.management.common.mbeans.ManagedQueue.ATTR_AUTODELETE;
-import static org.apache.qpid.management.common.mbeans.ManagedQueue.ATTR_CONSUMER_COUNT;
-import static org.apache.qpid.management.common.mbeans.ManagedQueue.ATTR_DURABLE;
-import static org.apache.qpid.management.common.mbeans.ManagedQueue.ATTR_MAX_MSG_AGE;
-import static org.apache.qpid.management.common.mbeans.ManagedQueue.ATTR_MAX_MSG_COUNT;
-import static org.apache.qpid.management.common.mbeans.ManagedQueue.ATTR_MAX_MSG_SIZE;
-import static org.apache.qpid.management.common.mbeans.ManagedQueue.ATTR_MAX_QUEUE_DEPTH;
-import static org.apache.qpid.management.common.mbeans.ManagedQueue.ATTR_MSG_COUNT;
-import static org.apache.qpid.management.common.mbeans.ManagedQueue.ATTR_OWNER;
-import static org.apache.qpid.management.common.mbeans.ManagedQueue.ATTR_QUEUE_DEPTH;
-import static org.apache.qpid.management.common.mbeans.ManagedQueue.ATTR_RCVD_MSG_COUNT;
-
-import org.apache.qpid.management.common.mbeans.ManagedBroker;
-import org.apache.qpid.management.common.mbeans.ManagedQueue;
-import org.apache.qpid.management.ui.ApplicationRegistry;
-import org.apache.qpid.management.ui.ManagedBean;
-import org.apache.qpid.management.ui.ManagedServer;
-import org.apache.qpid.management.ui.jmx.MBeanUtility;
-import org.apache.qpid.management.ui.views.MBeanView;
-import org.apache.qpid.management.ui.views.NavigationView;
-import org.apache.qpid.management.ui.views.ViewUtility;
-import org.eclipse.jface.preference.PreferenceStore;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-public class QueueTypeTabControl extends MBeanTypeTabControl
-{
- private MBeanServerConnection _mbsc;
- private ManagedBroker _vhmb;
-
- private List<String> _selectedAttributes;
- private PreferenceStore _preferences;
- private Semaphore _tableViewerSemaphore = new Semaphore(1);
-
- private static final String APP_DIR = ApplicationRegistry.DATA_DIR;
- private static final String INI_FILENAME = APP_DIR + File.separator + "qpidmc_queue_attributes.ini";
- private static final String INI_QUEUE_ATTRIBUES = "QueueAttributesSelection";
-
- private static final ArrayList<String> FALLBACK_ATTRIBUTES_LIST = new ArrayList<String>();
- static
- {
- FALLBACK_ATTRIBUTES_LIST.add(ATTR_NAME);
- FALLBACK_ATTRIBUTES_LIST.add(ATTR_ACTIVE_CONSUMER_COUNT);
- FALLBACK_ATTRIBUTES_LIST.add(ATTR_AUTODELETE);
- FALLBACK_ATTRIBUTES_LIST.add(ATTR_CONSUMER_COUNT);
- FALLBACK_ATTRIBUTES_LIST.add(ATTR_DURABLE);
- FALLBACK_ATTRIBUTES_LIST.add(ATTR_MAX_MSG_AGE);
- FALLBACK_ATTRIBUTES_LIST.add(ATTR_MAX_MSG_COUNT);
- FALLBACK_ATTRIBUTES_LIST.add(ATTR_MAX_MSG_SIZE);
- FALLBACK_ATTRIBUTES_LIST.add(ATTR_MAX_QUEUE_DEPTH);
- FALLBACK_ATTRIBUTES_LIST.add(ATTR_MSG_COUNT);
- FALLBACK_ATTRIBUTES_LIST.add(ATTR_OWNER);
- FALLBACK_ATTRIBUTES_LIST.add(ATTR_QUEUE_DEPTH);
- FALLBACK_ATTRIBUTES_LIST.add(ATTR_RCVD_MSG_COUNT);
- }
-
- private static final Map<String, Integer> DEFAULT_COLUMN_WIDTHS = new HashMap<String,Integer>();
- static
- {
- DEFAULT_COLUMN_WIDTHS.put(ATTR_NAME, 215);
- DEFAULT_COLUMN_WIDTHS.put(ATTR_OWNER,125);
- DEFAULT_COLUMN_WIDTHS.put(ATTR_QUEUE_DEPTH,125);
- }
-
- public QueueTypeTabControl(TabFolder tabFolder, ManagedServer server, String virtualHost)
- {
- super(tabFolder,server,virtualHost,QUEUE);
- _mbsc = (MBeanServerConnection) _serverRegistry.getServerConnection();
-
- //create a proxy for the VirtualHostManager mbean to use in retrieving the attribute names/values
- _vhmb = MBeanServerInvocationHandler.newProxyInstance(_mbsc,
- _vhostMbean.getObjectName(), ManagedBroker.class, false);
-
- }
-
- @Override
- protected void init()
- {
- createIniFileIfNecessary();
- loadAttributePreferences();
- }
-
- /**
- * Create the ini file if it doesn't already exist.
- */
- public static void createIniFileIfNecessary()
- {
- File dir = new File(DATA_DIR);
- if (!dir.exists())
- {
- if(!dir.mkdir())
- {
- System.err.println("Could not create application data directory " + DATA_DIR);
- ViewUtility.popupErrorMessage("Error", "Fatal Error: Unable to create the application data directory: " + DATA_DIR);
- System.exit(1);
- }
- }
-
- File file = new File(INI_FILENAME);
- try
- {
- if (!file.exists())
- {
- file.createNewFile();
- }
- }
- catch (IOException ex)
- {
- System.err.println("Error creating the configuration file " + INI_FILENAME);
- ViewUtility.popupErrorMessage("Error", "Fatal Error: Unable to create the configuration file: " + INI_FILENAME);
- System.exit(1);
- }
- }
-
- private void loadAttributePreferences()
- {
- _preferences = new PreferenceStore(INI_FILENAME);
- List<String> attributesList = new ArrayList<String>();
-
- //ensure the name is present, and first
- attributesList.add(ManagedQueue.ATTR_NAME);
-
- //add any others from the file
- try
- {
- _preferences.load();
-
- String selectedAttributes = _preferences.getString(INI_QUEUE_ATTRIBUES);
- if (selectedAttributes.length() != 0)
- {
- String[] attributes = selectedAttributes.split(",");
- for (String attr : attributes)
- {
- if(attr.equals(ManagedQueue.ATTR_NAME))
- {
- //the Name attribute is already present
- continue;
- }
-
- attributesList.add(attr);
- }
- }
- }
- catch (IOException e)
- {
- ViewUtility.popupErrorMessage("Error", "Unable to load previous attribute selections, defaulting to Name only");
- System.err.println(e);
- }
-
- _selectedAttributes = attributesList;
- }
-
- private void saveAttributePreferences()
- {
- String chosenAttributes = new String();
-
- for(String attr : _selectedAttributes)
- {
- chosenAttributes = chosenAttributes.concat(attr) + ",";
- }
- //cut off last ","
- int lastIndex = chosenAttributes.lastIndexOf(',');
- if (lastIndex != -1)
- {
- chosenAttributes = chosenAttributes.substring(0,lastIndex);
- }
-
- _preferences.putValue(INI_QUEUE_ATTRIBUES, chosenAttributes);
-
- try
- {
- _preferences.save();
- }
- catch (IOException e)
- {
- ViewUtility.popupErrorMessage("Error", "Unable to save the attribute selection, choices will be lost at shutdown");
- System.err.println(e);
- }
- }
-
- @Override
- public void refresh(ManagedBean mbean)
- {
- //Try locking. If we cant aquire the lock, dont bother getting new values.
- //Either the attributes are being changed and these values would be out of date,
- //or another thread is still in the process of refreshing
- if(_tableViewerSemaphore.tryAcquire())
- {
- try
- {
- List<List<Object>> values = null;
-
- if(_ApiVersion.greaterThanOrEqualTo(1, 3))
- {
- //Qpid JMX API 1.3+, use this virtualhosts VirtualHostManager MBean
- //to retrieve the attributes values requested for all queues at once
- try
- {
- values = _vhmb.retrieveQueueAttributeValues(_selectedAttributes.toArray(new String[0]));
- }
- catch(Exception e)
- {
- MBeanUtility.handleException(_vhostMbean, e);
- }
- }
- else
- {
- //Qpid JMX API 1.2 or below, use the local ManagedBeans and look
- //up the attribute values for each queue individually
- _mbeans = getMbeans();
- values = MBeanUtility.getQueueAttributes(_mbeans, _selectedAttributes.toArray(new String[0]));
- }
-
- _tableViewer.setInput(values);
- layout();
- }
- finally
- {
- _tableViewerSemaphore.release();
- }
- }
-
- }
-
- @Override
- protected List<ManagedBean> getMbeans()
- {
- return _serverRegistry.getQueues(_virtualHost);
- }
-
- private void clearTableComposite()
- {
- ViewUtility.disposeChildren(_tableComposite);
- }
-
- @Override
- protected void createTable()
- {
- _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);
- _table.setLayoutData(data);
-
- _tableViewer = new TableViewer(_table);
-
- final QueueTableSorter tableSorter = new QueueTableSorter();
-
- for (int i = 0; i < _selectedAttributes.size(); i++)
- {
- final int index = i;
- final TableViewerColumn viewerColumn = new TableViewerColumn(_tableViewer, SWT.NONE);
- final TableColumn column = viewerColumn.getColumn();
-
- String attrName = _selectedAttributes.get(i);
- column.setMoveable(true);
- column.setText(attrName);
- column.pack();
- if(DEFAULT_COLUMN_WIDTHS.containsKey(attrName))
- {
- //retrieve the desired default width
- column.setWidth(DEFAULT_COLUMN_WIDTHS.get(attrName));
- }
- else
- {
- //add padding for sort direction indicator
- column.setWidth(column.getWidth() + 15);
- }
- column.setResizable(true);
-
- //Setting the right sorter
- column.addSelectionListener(new SelectionAdapter()
- {
- @Override
- public void widgetSelected(SelectionEvent e)
- {
- tableSorter.setColumn(index);
- final TableViewer viewer = _tableViewer;
- int dir = viewer .getTable().getSortDirection();
- if (viewer.getTable().getSortColumn() == column)
- {
- dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;
- }
- else
- {
- dir = SWT.UP;
- }
- viewer.getTable().setSortDirection(dir);
- viewer.getTable().setSortColumn(column);
- viewer.refresh();
- }
- });
-
- }
-
- _tableViewer.setContentProvider(new QueueContentProviderImpl());
- _tableViewer.setLabelProvider(new QueueLabelProviderImpl());
-
- _tableViewer.setUseHashlookup(true);
- _tableViewer.setSorter(tableSorter);
- _table.setSortColumn(_table.getColumn(0));
- _table.setSortDirection(SWT.UP);
-
- addTableListeners();
- }
-
- protected void createLowerAreaButton(Composite parent)
- {
- Composite lowerButtonComposite = _toolkit.createComposite(parent, SWT.NONE);
- GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, false);
- lowerButtonComposite.setLayoutData(gridData);
- lowerButtonComposite.setLayout(new GridLayout());
-
- final Button attributesButton = _toolkit.createButton(lowerButtonComposite, "Select Attributes ...", SWT.PUSH);
- gridData = new GridData(SWT.RIGHT, SWT.CENTER, true, false);
- attributesButton.setLayoutData(gridData);
- attributesButton.addSelectionListener(new SelectionAdapter()
- {
- public void widgetSelected(SelectionEvent e)
- {
- chooseAttributes(attributesButton.getShell());
- }
- });
- }
-
- private void chooseAttributes(final Shell parent)
- {
-
- List<String> availableAttributes;
- if(_ApiVersion.greaterThanOrEqualTo(1, 3))
- {
- //Qpid JMX API 1.3+, request the current queue attributes names from the broker
- try
- {
- availableAttributes = _vhmb.retrieveQueueAttributeNames();
- }
- catch (IOException e)
- {
- availableAttributes = new ArrayList<String>(FALLBACK_ATTRIBUTES_LIST);
- }
- }
- else
- {
- //Qpid JMX API 1.2 or below, use the falllback list of names.
- availableAttributes = new ArrayList<String>(FALLBACK_ATTRIBUTES_LIST);
- }
-
-
- final List<String> chosenAttributes = new ArrayList<String>();
-
- final Shell shell = ViewUtility.createModalDialogShell(parent, "Select Attributes");
-
- Composite attributesComposite = _toolkit.createComposite(shell, SWT.NONE);
- attributesComposite.setBackground(shell.getBackground());
- attributesComposite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
- attributesComposite.setLayout(new GridLayout(2,false));
-
- //add a selected-but-disabled check box for the Name attribute (its a mandatory attribute)
- final Button nameCheckbox = new Button(attributesComposite, SWT.CHECK);
- nameCheckbox.setText(ManagedQueue.ATTR_NAME);
- nameCheckbox.setSelection(true);
- nameCheckbox.setEnabled(false);
-
- for(String attr : availableAttributes)
- {
- if(attr.equals(ManagedQueue.ATTR_NAME))
- {
- //Name attribute is mandatory and gets added to the front of the list later
- continue;
- }
-
- final Button attrButton = new Button(attributesComposite, SWT.CHECK);
- attrButton.setText(attr);
-
- //if it was checked before, select it again now
- if(_selectedAttributes.contains(attr))
- {
- attrButton.setSelection(true);
- chosenAttributes.add(attr);
- }
-
- //add a selection listener to update the selected attribute list
- attrButton.addSelectionListener(new SelectionAdapter()
- {
- public void widgetSelected(SelectionEvent e)
- {
- if(attrButton.getSelection())
- {
- chosenAttributes.add(attrButton.getText());
- }
- else
- {
- chosenAttributes.remove(attrButton.getText());
- }
- }
- });
- }
-
- Composite okCancelButtonsComp = _toolkit.createComposite(shell);
- okCancelButtonsComp.setBackground(shell.getBackground());
- okCancelButtonsComp.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, true, true));
- okCancelButtonsComp.setLayout(new GridLayout(2,false));
-
- Button okButton = _toolkit.createButton(okCancelButtonsComp, "OK", SWT.PUSH);
- okButton.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false, false));
- Button cancelButton = _toolkit.createButton(okCancelButtonsComp, "Cancel", SWT.PUSH);
- cancelButton.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false, false));
-
- okButton.addSelectionListener(new SelectionAdapter()
- {
- public void widgetSelected(SelectionEvent e)
- {
- shell.dispose();
-
- //The Name attribute is mandatory, add it now, also
- //ensuring it is left-most by placing it first in the list
- List<String> newSelection = new ArrayList<String>();
- newSelection.add(ManagedQueue.ATTR_NAME);
-
- //now add all remaining choices in alphabetical order
- Collections.sort(chosenAttributes);
- newSelection.addAll(chosenAttributes);
-
- _tableViewerSemaphore.acquireUninterruptibly();
- try
- {
- _selectedAttributes = newSelection;
-
- clearTableComposite();
- createTable();
- saveAttributePreferences();
- }
- finally
- {
- _tableViewerSemaphore.release();
- }
-
- refresh(_mbean);
- }
- });
-
- cancelButton.addSelectionListener(new SelectionAdapter()
- {
- public void widgetSelected(SelectionEvent e)
- {
- shell.dispose();
- }
- });
-
- shell.setDefaultButton(okButton);
- shell.pack();
- ViewUtility.centerChildInParentShell(parent, shell);
-
- shell.open();
- }
-
- private String getQueueDepthString(Long value)
- {
- if(value == null)
- {
- return "-";
- }
-
- if (_ApiVersion.greaterThanOrEqualTo(1,2))
- {
- //Qpid JMX API 1.2 or above, returns Bytes
- return convertLongBytesToText(value);
- }
- else
- {
- //Qpid JMX API 1.1 or below, returns KB
- double mb = 1024.0;
-
- if(value > mb) //MB
- {
- return String.format("%.3f", (Double)(value / mb)) + " MB";
- }
- else //KB
- {
- return value + " KB";
- }
- }
- }
-
- private String convertLongBytesToText(Long value)
- {
- if(value == null)
- {
- return "-";
- }
-
- double mb = 1024.0 * 1024.0;
- double kb = 1024.0;
-
- if(value >= mb) //MB
- {
- return String.format("%.3f", (Double)((double)value / mb)) + " MB";
- }
- else if (value >= kb) //KB
- {
- return String.format("%.3f", (Double)((double)value / kb)) + " KB";
- }
- else //Bytes
- {
- return value + " Bytes";
- }
- }
-
- /**
- * sorter class for the table viewer.
- *
- */
- private class QueueTableSorter extends ViewerSorter
- {
- protected int column;
- protected static final int ASCENDING = 0;
- protected static final int DESCENDING = 1;
-
- protected int direction;
-
- public QueueTableSorter()
- {
- this.column = 0;
- direction = ASCENDING;
- }
-
- public void setColumn(int column)
- {
- if(column == this.column)
- {
- // Same column as last sort; toggle the direction
- direction = 1 - direction;
- }
- else
- {
- // New column; do an ascending sort
- this.column = column;
- direction = ASCENDING;
- }
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public int compare(Viewer viewer, Object e1, Object e2)
- {
- List<Object> queue1 = (List<Object>) e1;
- List<Object> queue2 = (List<Object>) e2;
-
- int comparison = 0;
- switch(column)
- {
- default:
- if(queue1.get(column) instanceof Comparable)
- {
- comparison = ((Comparable)queue1.get(column)).compareTo((Comparable) queue2.get(column));
- }
- }
- // If descending order, flip the direction
- if(direction == DESCENDING)
- {
- comparison = -comparison;
- }
- return comparison;
- }
- }
-
- /**
- * Content Provider class for the table viewer for Qpid JMX API 1.3 and above.
- */
- private class QueueContentProviderImpl implements IStructuredContentProvider
- {
-
- public void inputChanged(Viewer v, Object oldInput, Object newInput)
- {
-
- }
-
- public void dispose()
- {
-
- }
-
- @SuppressWarnings("unchecked")
- public Object[] getElements(Object parent)
- {
- return ((List<List<Object>>) parent).toArray();
- }
- }
-
- /**
- * Label Provider class for the table viewer for for Qpid JMX API 1.3 and above.
- */
- private class QueueLabelProviderImpl extends LabelProvider implements ITableLabelProvider
- {
- @SuppressWarnings("unchecked")
- @Override
- public String getColumnText(Object element, int columnIndex)
- {
- List<Object> attributes = (List<Object>) element;
-
- switch (columnIndex)
- {
- default :
- String attrName = _selectedAttributes.get(columnIndex);
-
- if(ATTR_QUEUE_DEPTH.equals(attrName))
- {
- return getQueueDepthString((Long) attributes.get(columnIndex));
- }
- else if(ATTR_MAX_QUEUE_DEPTH.equals(attrName) || ATTR_MAX_MSG_SIZE.equals(attrName))
- {
- Number val = (Number)attributes.get(columnIndex);
- return convertLongBytesToText(val.longValue());
- }
- else if(ATTR_MAX_MSG_AGE.equals(attrName))
- {
- return String.valueOf(attributes.get(columnIndex) + "ms");
- }
-
- return String.valueOf(attributes.get(columnIndex));
- }
- }
-
- @Override
- public Image getColumnImage(Object element, int columnIndex)
- {
- return null;
- }
- }
-
- @SuppressWarnings("unchecked")
- @Override
- protected void addMBeanToFavourites()
- {
- int selectionIndex = _table.getSelectionIndex();
-
- if (selectionIndex == -1)
- {
- return;
- }
-
- int[] selectedIndices = _table.getSelectionIndices();
-
- ArrayList<ManagedBean> selectedMBeans = new ArrayList<ManagedBean>();
-
- //the entries are created from an List<Object> with the attribute values (name first)
- for(int index = 0; index < selectedIndices.length ; index++)
- {
- List<Object> queueEntry = (List<Object>) _table.getItem(selectedIndices[index]).getData();
- String queueName = (String) queueEntry.get(0);
- selectedMBeans.add(_serverRegistry.getQueue(queueName, _virtualHost));
- }
-
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- NavigationView view = (NavigationView)window.getActivePage().findView(NavigationView.ID);
-
- ManagedBean bean = null;
- try
- {
- for(ManagedBean mbean: selectedMBeans)
- {
- bean = mbean;
- view.addManagedBean(mbean);
- }
- }
- catch (Exception ex)
- {
- MBeanUtility.handleException(bean, ex);
- }
- }
-
- @SuppressWarnings("unchecked")
- @Override
- protected void openMBean()
- {
- int selectionIndex = _table.getSelectionIndex();
-
- if (selectionIndex == -1)
- {
- return;
- }
-
- ManagedBean selectedMBean;
-
- //the entries are created from an List<Object> with the attribute values (name first)
- List<Object> queueEntry = (List<Object>) _table.getItem(selectionIndex).getData();
- String queueName = (String) queueEntry.get(0);
- selectedMBean = _serverRegistry.getQueue(queueName, _virtualHost);
-
- 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);
- }
- }
-}