summaryrefslogtreecommitdiff
path: root/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java')
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java609
1 files changed, 0 insertions, 609 deletions
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java
deleted file mode 100644
index 1ce31ae3d1..0000000000
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java
+++ /dev/null
@@ -1,609 +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;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.part.ViewPart;
-
-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.ManagedServer;
-import org.apache.qpid.management.ui.ServerRegistry;
-import org.apache.qpid.management.ui.actions.BackAction;
-import org.apache.qpid.management.ui.jmx.JMXManagedObject;
-import org.apache.qpid.management.ui.jmx.JMXServerRegistry;
-import org.apache.qpid.management.ui.jmx.MBeanUtility;
-
-import static org.apache.qpid.management.ui.Constants.*;
-
-import javax.management.MBeanServerConnection;
-import java.util.LinkedList;
-
-/**
- * MBean View create appropriate view based on the user selection on the Navigation View.
- */
-public class MBeanView extends ViewPart
-{
- public static final String ID = "org.apache.qpid.management.ui.mbeanView";
-
- private FormToolkit _toolkit = null;
- private Form _form = null;
- private String _formText = APPLICATION_NAME;
- private static ManagedServer _server = null;
- private TreeObject _selectedNode = null;
- private ManagedBean _mbean = null;
- private static String _virtualHostName = null;
- private static MBeanServerConnection _mbsc = null;
- private TabFolder _tabFolder = null;
- private ISelectionListener _selectionListener = new SelectionListenerImpl();
-
- // TabFolder to list all the mbeans for a given mbeantype(eg Connection, Queue, Exchange)
- private TabFolder _typeTabFolder = null;
-
- private TabFolder _notificationTabFolder = null;
-
- private LinkedList<Object> _backHistory;
- private BackAction _backAction;
-
- /*
- * Listener for the selection events in the navigation view
- */
- private class SelectionListenerImpl implements ISelectionListener
- {
- public void selectionChanged(IWorkbenchPart part, ISelection sel)
- {
- if (!(sel instanceof IStructuredSelection))
- {
- return;
- }
-
- IStructuredSelection ss = (IStructuredSelection) sel;
- _selectedNode = (TreeObject)ss.getFirstElement();
-
-
- // mbean should be set to null. A selection done on the navigation view can be either an mbean or
- // an mbeantype. For mbeantype selection(eg Connection, Queue, Exchange) _mbean will remain null.
- _mbean = null;
- clearView();
-
- //clear the back history, it is only for use when opening subsequent mbeans not in the nav tree
- _backHistory.clear();
- _backAction.setEnabled(false);
-
- // If a selected node(mbean) gets unregistered from mbean server, mbeanview should
- // make the tabfolber for that mbean invisible
- if (_selectedNode == null)
- {
- return;
- }
-
- setServer();
-
- if(!ApplicationRegistry.isServerConnected(_server))
- {
- return;
- }
-
- if (MBEAN.equals(_selectedNode.getType()))
- {
- _mbean = (ManagedBean)_selectedNode.getManagedObject();
- }
-
- setFormTitle();
- showRelevantTabView();
- }
- }
-
- public void openMBean(ManagedBean mbean)
- {
- openMBean(mbean, false);
- }
-
- private void openMBean(ManagedBean mbean, boolean undoing)
- {
- if(mbean == null)
- {
- return;
- }
-
- //if an mbean is about to be opened (but not returning to using back) from the mbean view,
- //then record the current viewed area/object as a means of back history
- if(!undoing)
- {
- if(_backHistory.isEmpty())
- {
- //ensure the button is enabled if this is to be the first history item
- _backAction.setEnabled(true);
- }
-
- if(_mbean == null)
- {
- //queue etc selection area is open, record the tree object
- _backHistory.addLast(_selectedNode);
- }
- else
- {
- _backHistory.addLast(_mbean);
- }
- }
-
- _mbean = mbean;
-
- try
- {
- clearView();
-
- setFormTitle();
- showMBean(mbean);
-
- _form.layout(true);
- _form.getBody().layout(true, true);
- }
- catch(Exception ex)
- {
- MBeanUtility.handleException(mbean, ex);
- }
- }
-
- private void setFormTitle()
- {
- if (_mbean != null)
- {
- _formText = _mbean.getType();
- if ((_mbean.getVirtualHostName() != null) && (!DEFAULT_VH.equals(_mbean.getVirtualHostName())) )
- {
- _formText = _formText.replaceFirst(VIRTUAL_HOST, _mbean.getVirtualHostName());
- if (_mbean.getName() != null && _mbean.getName().length() != 0)
- {
- _formText = _formText + ": " + _mbean.getName();
- }
- }
- }
- else if ((_selectedNode.getVirtualHost() != null) && (!DEFAULT_VH.equals(_selectedNode.getVirtualHost())))
- {
- _formText = _selectedNode.getVirtualHost();
- }
- else
- {
- _formText = APPLICATION_NAME;
- }
- _form.setText(_formText);
- }
-
- public void showRelevantTabView()
- {
- try
- {
- if (_selectedNode == null)
- {
- return;
- }
-
- String mbeanType = _selectedNode.getType();
-
- if (NODE_TYPE_TYPEINSTANCE.equals(mbeanType))
- {
- // An virtual host instance is selected
- generateTypeTabFolder();
- }
- else if (NODE_TYPE_MBEANTYPE.equals(mbeanType))
- {
- showTypeTabFolder(_selectedNode.getName());
- }
- else if (NOTIFICATIONS.equals(mbeanType))
- {
- refreshNotificationPage();
- }
- else if (MBEAN.equals(mbeanType))
- {
- showMBean(_mbean);
- }
- else if(NODE_TYPE_SERVER.equals(mbeanType))
- {
- ServerRegistry serverReg = ApplicationRegistry.getServerRegistry(_server);
-
- //check the server is connected
- if(serverReg != null)
- {
- //post a message if the server supports a newer API version.
- ApiVersion serverAPI = serverReg.getManagementApiVersion();
- int supportedMajor = ApplicationRegistry.SUPPORTED_QPID_JMX_API_MAJOR_VERSION;
- int supportedMinor = ApplicationRegistry.SUPPORTED_QPID_JMX_API_MINOR_VERSION;
-
- if(serverAPI.greaterThan(supportedMajor, supportedMinor))
- {
- _form.setText("The server supports an updated management API and may offer " +
- "functionality not available with this console. " +
- "Please check for an updated console release.");
- }
-
- }
- }
- else
- {
- return;
- }
-
- _form.layout(true);
- _form.getBody().layout(true, true);
- }
- catch(Exception ex)
- {
- MBeanUtility.handleException(_mbean, ex);
- }
- }
-
- /**
- * Sets the managedServer based on the selection in the navigation view
- * At any given time MBeanView will be displaying information for an mbean of mbeantype
- * for a specifiv managed server. This server information will be used by the tab controllers
- * to get server registry.
- */
- private void setServer()
- {
- if (NODE_TYPE_SERVER.equals(_selectedNode.getType()))
- {
- _server = (ManagedServer)_selectedNode.getManagedObject();
- _virtualHostName = null;
- }
- else
- {
- TreeObject parent = _selectedNode.getParent();
- while (parent != null && !parent.getType().equals(NODE_TYPE_SERVER))
- {
- parent = parent.getParent();
- }
-
- if (parent != null && parent.getType().equals(NODE_TYPE_SERVER))
- {
- _server = (ManagedServer)parent.getManagedObject();
- }
-
- _virtualHostName = _selectedNode.getVirtualHost();
- }
-
- JMXServerRegistry serverRegistry = (JMXServerRegistry)ApplicationRegistry.getServerRegistry(_server);
- if(serverRegistry != null){
- _mbsc = serverRegistry.getServerConnection();
- }
- }
-
- public static ManagedServer getServer()
- {
- return _server;
- }
-
- public static String getVirtualHost()
- {
- return _virtualHostName;
- }
-
- private void showMBean(ManagedBean mbean) throws Exception
- {
- try
- {
- MBeanUtility.getMBeanInfo(mbean);
- }
- catch(Exception ex)
- {
- MBeanUtility.handleException(mbean, ex);
- return;
- }
-
- if (_tabFolder != null && !_tabFolder.isDisposed())
- {
- _tabFolder.dispose();
- }
-
- _tabFolder = MBeanTabFolderFactory.generateMBeanTabFolder(_form.getBody(),(JMXManagedObject)mbean,_mbsc);
-
- int tabIndex = 0;
- if (NOTIFICATIONS.equals(_selectedNode.getType()))
- {
- tabIndex = _tabFolder.getItemCount() -1;
- }
-
- TabItem tab = _tabFolder.getItem(tabIndex);
- // If folder is being set as visible after tab refresh, then the tab
- // doesn't have the focus.
- _tabFolder.setSelection(tabIndex);
- refreshTab(tab);
- }
-
- public void createPartControl(Composite parent)
- {
- // Create the Form
- _toolkit = new FormToolkit(parent.getDisplay());
- _form = _toolkit.createForm(parent);
- _form.getBody().setLayout(new FormLayout());
- _form.setText(APPLICATION_NAME);
-
- // Add selection listener for selection events in the Navigation view
- getSite().getPage().addSelectionListener(NavigationView.ID, _selectionListener);
-
- createNotificationsTabFolder();
-
- ViewUtility.setMBeanView(this);
-
- _backAction = new BackAction();
- getViewSite().getActionBars().getToolBarManager().add(_backAction);
- _backAction.setEnabled(false);
- _backHistory = new LinkedList<Object>();
- }
-
- private void refreshTab(TabItem tab)
- {
- if (tab == null)
- {
- return;
- }
-
- TabControl controller = (TabControl)tab.getData(TabControl.CONTROLLER);
- if(controller != null)
- {
- controller.refresh(_mbean);
- }
- }
-
- public void setFocus()
- {
- //_form.setFocus();
- }
-
- public void dispose()
- {
- _toolkit.dispose();
- super.dispose();
- }
-
-
- private void createNotificationsTabFolder()
- {
- _notificationTabFolder = new TabFolder(_form.getBody(), SWT.NONE);
- FormData layoutData = new FormData();
- layoutData.left = new FormAttachment(0);
- layoutData.top = new FormAttachment(0);
- layoutData.right = new FormAttachment(100);
- layoutData.bottom = new FormAttachment(100);
- _notificationTabFolder.setLayoutData(layoutData);
- _notificationTabFolder.setVisible(false);
-
- VHNotificationsTabControl controller = new VHNotificationsTabControl(_notificationTabFolder);
- TabItem tab = new TabItem(_notificationTabFolder, SWT.NONE);
- tab.setText(NOTIFICATIONS);
- tab.setData(TabControl.CONTROLLER, controller);
- tab.setControl(controller.getControl());
- }
-
- private void refreshNotificationPage()
- {
- TabItem tab = _notificationTabFolder.getItem(0);
- VHNotificationsTabControl controller = (VHNotificationsTabControl)tab.getData(TabControl.CONTROLLER);
- controller.refresh();
- _notificationTabFolder.setVisible(true);
- }
-
-
-
- private void generateTypeTabFolder() throws Exception
- {
- if (_typeTabFolder != null && !_typeTabFolder.isDisposed())
- {
- _typeTabFolder.dispose();
- }
-
- //Generates the full Queue/Connection/Exchange selection tab set
- _typeTabFolder = MBeanTabFolderFactory.generateMBeanTypeTabFolder(
- _form.getBody(), getServer(), getVirtualHost());
- refreshTab(_typeTabFolder.getItem(0));
- }
-
- private void showTypeTabFolder(String type) throws Exception
- {
- if (_typeTabFolder != null && !_typeTabFolder.isDisposed())
- {
- _typeTabFolder.dispose();
- }
-
- if (CONNECTION.equals(type))
- {
- //Generates the Connection selection tab
- _typeTabFolder = MBeanTabFolderFactory.generateConnectionTypeTabFolder(
- _form.getBody(), getServer(), getVirtualHost());
- refreshTab(_typeTabFolder.getItem(0));
- }
- else if (EXCHANGE.equals(type))
- {
- //Generates the Exchange selection tab
- _typeTabFolder = MBeanTabFolderFactory.generateExchangeTypeTabFolder(
- _form.getBody(), getServer(), getVirtualHost());
- refreshTab(_typeTabFolder.getItem(0));
- }
- else if (QUEUE.equals(type))
- {
- //Generates the Queue selection tab
- _typeTabFolder = MBeanTabFolderFactory.generateQueueTypeTabFolder(
- _form.getBody(), getServer(), getVirtualHost());
- refreshTab(_typeTabFolder.getItem(0));
- }
- }
-
- private void clearView()
- {
- if (_tabFolder != null && !_tabFolder.isDisposed())
- {
- _tabFolder.setVisible(false);
- }
-
- if (_typeTabFolder != null && !_typeTabFolder.isDisposed())
- {
- _typeTabFolder.setVisible(false);
- }
-
- if (_notificationTabFolder != null && !_notificationTabFolder.isDisposed())
- {
- _notificationTabFolder.setVisible(false);
- }
-
- _form.setText(APPLICATION_NAME);
- clearStatusBar();
- }
-
- public void mbeanUnregistered(ManagedBean mbean)
- {
- //if the mbean is actually open, clear the view and empty the Back history
- if(mbean == _mbean)
- {
- clearView();
- _backHistory.clear();
- _backAction.setEnabled(false);
- ViewUtility.popupInfoMessage("MBean Unregistered",
- "The open MBean was unregistered from the server.");
- }
- }
-
- public void refresh()
- {
- if(!ApplicationRegistry.isServerConnected(_server))
- {
- return;
- }
-
- if (_tabFolder != null && !_tabFolder.isDisposed())
- {
- if(_tabFolder.getVisible())
- {
- int selectedTab = _tabFolder.getSelectionIndex();
- TabItem tab = _tabFolder.getItem(selectedTab);
- TabControl controller = (TabControl) tab.getData(TabControl.CONTROLLER);
- if(controller != null)
- {
- controller.refresh(_mbean);
- }
- return;
- }
- }
-
- if (_typeTabFolder != null && !_typeTabFolder.isDisposed())
- {
-
- if(_typeTabFolder.getVisible())
- {
- int selectedTab = _typeTabFolder.getSelectionIndex();
- TabItem tab = _typeTabFolder.getItem(selectedTab);
- TabControl controller = (TabControl) tab.getData(TabControl.CONTROLLER);
- if(controller != null)
- {
- controller.refresh(_mbean);
- }
- return;
- }
- }
-
- if (_notificationTabFolder != null && !_notificationTabFolder.isDisposed())
- {
- if(_notificationTabFolder.getVisible())
- {
- int selectedTab = _notificationTabFolder.getSelectionIndex();
- TabItem tab = _notificationTabFolder.getItem(selectedTab);
- TabControl controller = (TabControl) tab.getData(TabControl.CONTROLLER);
- if(controller != null)
- {
- controller.refresh(_mbean);
- }
- return;
- }
- }
- }
-
- public void populateStatusBar(Image icon, String message)
- {
- IActionBars bars = getViewSite().getActionBars();
- bars.getStatusLineManager().setMessage(icon, message);
- }
-
- public void populateStatusBar(String message)
- {
- IActionBars bars = getViewSite().getActionBars();
- bars.getStatusLineManager().setMessage(message);
- }
-
- public void clearStatusBar()
- {
- populateStatusBar("");
- }
-
- public void back() throws Exception
- {
- if(_backHistory.isEmpty())
- {
- return;
- }
-
- Object previous = _backHistory.removeLast();
- if(_backHistory.isEmpty())
- {
- //if this is the last history item, disable the action button
- _backAction.setEnabled(false);
- }
-
- if(previous instanceof ManagedBean)
- {
- openMBean((ManagedBean)previous, true);
- }
- else if (previous instanceof TreeObject)
- {
- _mbean = null;
- clearView();
- setFormTitle();
-
- TreeObject node = (TreeObject) previous;
- String mbeanType = node.getType();
-
- if (NODE_TYPE_TYPEINSTANCE.equals(mbeanType))
- {
- generateTypeTabFolder();
- }
- else if (NODE_TYPE_MBEANTYPE.equals(mbeanType))
- {
- showTypeTabFolder(node.getName());
- }
- }
-
- _form.layout(true);
- _form.getBody().layout(true, true);
- }
-}