diff options
author | Robert Gemmell <robbie@apache.org> | 2009-07-15 10:42:10 +0000 |
---|---|---|
committer | Robert Gemmell <robbie@apache.org> | 2009-07-15 10:42:10 +0000 |
commit | dc5b7e251dde2850a9f323ea04ae19b7777f7679 (patch) | |
tree | c13632273c437a2caf864b747d3288365b9287e5 | |
parent | d03e3acbd01008d2386846714c982b8197502eeb (diff) | |
download | qpid-python-dc5b7e251dde2850a9f323ea04ae19b7777f7679.tar.gz |
QPID-1966: add status bar for operation feedback reports
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@794222 13f79535-47bb-0310-9956-ffa450edef68
15 files changed, 136 insertions, 32 deletions
diff --git a/qpid/java/management/eclipse-plugin/icons/failure.gif b/qpid/java/management/eclipse-plugin/icons/failure.gif Binary files differnew file mode 100644 index 0000000000..9b048d6053 --- /dev/null +++ b/qpid/java/management/eclipse-plugin/icons/failure.gif diff --git a/qpid/java/management/eclipse-plugin/icons/success.gif b/qpid/java/management/eclipse-plugin/icons/success.gif Binary files differnew file mode 100644 index 0000000000..9cacb96dca --- /dev/null +++ b/qpid/java/management/eclipse-plugin/icons/success.gif diff --git a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationRegistry.java b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationRegistry.java index f3b9943cbb..2b35d6b0f1 100644 --- a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationRegistry.java +++ b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationRegistry.java @@ -46,6 +46,10 @@ public abstract class ApplicationRegistry static { + imageRegistry.put(Constants.SUCCESS_IMAGE, + org.apache.qpid.management.ui.Activator.getImageDescriptor("/icons/success.gif")); + imageRegistry.put(Constants.FAILURE_IMAGE, + org.apache.qpid.management.ui.Activator.getImageDescriptor("/icons/failure.gif")); imageRegistry.put(Constants.CONSOLE_IMAGE, org.apache.qpid.management.ui.Activator.getImageDescriptor("/icons/qpidmc.gif")); imageRegistry.put(Constants.CLOSED_FOLDER_IMAGE, diff --git a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationWorkbenchWindowAdvisor.java b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationWorkbenchWindowAdvisor.java index e3aedef28e..00574440c5 100644 --- a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationWorkbenchWindowAdvisor.java +++ b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationWorkbenchWindowAdvisor.java @@ -51,7 +51,7 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor int y = Display.getDefault().getBounds().height; configurer.setInitialSize(new Point(9*x/10, 8*y/10)); configurer.setShowCoolBar(true); - configurer.setShowStatusLine(false); + configurer.setShowStatusLine(true); configurer.setTitle(Constants.APPLICATION_NAME); } diff --git a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java index d068af5fc0..6887f8bc75 100644 --- a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java +++ b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java @@ -96,7 +96,10 @@ public class Constants public final static String SUBSCRIBE_BUTTON = "Subscribe"; public final static String UNSUBSCRIBE_BUTTON = "Unsubscribe"; - public final static String CONSOLE_IMAGE = "ConsoelImage"; + + public final static String SUCCESS_IMAGE = "SuccessImage"; + public final static String FAILURE_IMAGE = "FailureImage"; + public final static String CONSOLE_IMAGE = "ConsoleImage"; public final static String CLOSED_FOLDER_IMAGE = "ClosedFolderImage"; public final static String OPEN_FOLDER_IMAGE = "OpenFolderImage"; public final static String MBEAN_IMAGE = "MBeanImage"; diff --git a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java index c56cc4e278..180be9d761 100644 --- a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java +++ b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java @@ -32,12 +32,14 @@ import org.apache.qpid.management.ui.jmx.MBeanUtility; 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; @@ -279,6 +281,8 @@ public class MBeanView extends ViewPart _typeTabFolder.setVisible(false); createNotificationsTabFolder(); + + ViewUtility.setMBeanView(this); } private void refreshTab(TabItem tab) @@ -380,6 +384,7 @@ public class MBeanView extends ViewPart } _form.setText(APPLICATION_NAME); + populateStatusBar(""); } public void mbeanUnregistered(ManagedBean mbean) @@ -442,4 +447,15 @@ public class MBeanView extends ViewPart } } + 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); + } } diff --git a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java index 403535acc9..ddd5b0f451 100644 --- a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java +++ b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java @@ -40,6 +40,9 @@ import javax.management.openmbean.TabularDataSupport; import javax.management.openmbean.TabularType; import org.apache.commons.codec.binary.Hex; +import org.apache.qpid.management.ui.ApplicationRegistry; +import static org.apache.qpid.management.ui.Constants.FAILURE_IMAGE; +import static org.apache.qpid.management.ui.Constants.SUCCESS_IMAGE; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ControlAdapter; @@ -48,6 +51,7 @@ import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; @@ -80,6 +84,8 @@ public class ViewUtility private static final Comparator tabularDataComparator = new TabularDataComparator(); + private static MBeanView _mbeanView = null; + private static List<String> SUPPORTED_ARRAY_DATATYPES = new ArrayList<String>(); static { @@ -950,4 +956,51 @@ public class ViewUtility return -1; } } + + public static void setMBeanView(MBeanView mbeanView) + { + _mbeanView = mbeanView; + } + + /** + * Report feedback for the operation + * @param result true if success, false if unsuccessful, null if invoked but void result type. + * @param successMessage + * @param failureMessage + */ + public static void operationResultFeedback(Boolean result, String successMessage, String failureMessage) + { + Image icon; + + if(_mbeanView != null) + { + if(result == null) + { + icon = ApplicationRegistry.getImage(SUCCESS_IMAGE); + _mbeanView.populateStatusBar(icon, successMessage); + } + else if(result) + { + icon = ApplicationRegistry.getImage(SUCCESS_IMAGE); + _mbeanView.populateStatusBar(icon, successMessage); + } + else + { + icon = ApplicationRegistry.getImage(FAILURE_IMAGE); + _mbeanView.populateStatusBar(icon, failureMessage); + popupErrorMessage("Operation Failed", failureMessage); + } + } + } + + public static void operationFailedStatusBarMessage(String failureMessage) + { + Image icon = ApplicationRegistry.getImage(FAILURE_IMAGE); + + if(_mbeanView != null) + { + _mbeanView.populateStatusBar(icon, failureMessage); + } + } + } diff --git a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/connection/ConnectionOperationsTabControl.java b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/connection/ConnectionOperationsTabControl.java index 95598689fb..e981ec1c3c 100644 --- a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/connection/ConnectionOperationsTabControl.java +++ b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/connection/ConnectionOperationsTabControl.java @@ -227,12 +227,14 @@ public class ConnectionOperationsTabControl extends TabControl try { _cmb.commitTransactions(id); + ViewUtility.operationResultFeedback(null, "Commited transactions", null); } catch (Exception e1) { + ViewUtility.operationFailedStatusBarMessage("Error commiting transactions"); MBeanUtility.handleException(_mbean, e1); } - //TODO:display result + refresh(_mbean);; } } @@ -261,12 +263,14 @@ public class ConnectionOperationsTabControl extends TabControl try { _cmb.rollbackTransactions(id); + ViewUtility.operationResultFeedback(null, "Rolled back transactions", null); } catch (Exception e1) { + ViewUtility.operationFailedStatusBarMessage("Error rolling back transactions"); MBeanUtility.handleException(_mbean, e1); } - //TODO:display result + refresh(_mbean);; } } diff --git a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/ExchangeOperationsTabControl.java b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/ExchangeOperationsTabControl.java index 2ad47ff4db..43744c99df 100644 --- a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/ExchangeOperationsTabControl.java +++ b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/ExchangeOperationsTabControl.java @@ -520,12 +520,13 @@ public class ExchangeOperationsTabControl extends TabControl try { _emb.createNewBinding(destQueue, binding); + ViewUtility.operationResultFeedback(null, "Created new Binding", null); } catch (Exception e4) { + ViewUtility.operationFailedStatusBarMessage("Error creating new Binding"); MBeanUtility.handleException(_mbean, e4); } - //TODO: display result? refresh(_mbean); } diff --git a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/HeadersExchangeOperationsTabControl.java b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/HeadersExchangeOperationsTabControl.java index 66c077f876..54135202db 100644 --- a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/HeadersExchangeOperationsTabControl.java +++ b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/HeadersExchangeOperationsTabControl.java @@ -531,12 +531,13 @@ public class HeadersExchangeOperationsTabControl extends TabControl try { _emb.createNewBinding(destQueue, binding); + ViewUtility.operationResultFeedback(null, "Created new Binding", null); } catch (Exception e4) { + ViewUtility.operationFailedStatusBarMessage("Error creating new Binding"); MBeanUtility.handleException(_mbean, e4); } - //TODO: display result? refresh(_mbean); } diff --git a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/ConfigurationFileTabControl.java b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/ConfigurationFileTabControl.java index e5e81b769c..e86faed1fd 100644 --- a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/ConfigurationFileTabControl.java +++ b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/ConfigurationFileTabControl.java @@ -391,12 +391,14 @@ public class ConfigurationFileTabControl extends TabControl try { - _lmmb.setConfigFileLoggerLevel(logger, level); - //TODO: display result? + boolean result = _lmmb.setConfigFileLoggerLevel(logger, level); + ViewUtility.operationResultFeedback(result, + "Updated ConfigFile Logger Level", "Failed to update ConfigFile Logger Level"); } catch (Exception e4) { MBeanUtility.handleException(_mbean, e4); + ViewUtility.operationFailedStatusBarMessage("Error updating ConfigFile Logger Level"); } refresh(_mbean); @@ -448,11 +450,13 @@ public class ConfigurationFileTabControl extends TabControl shell.dispose(); try { - _lmmb.setConfigFileRootLoggerLevel(selection); - //TODO: display result? + boolean result = _lmmb.setConfigFileRootLoggerLevel(selection); + ViewUtility.operationResultFeedback(result, + "Updated ConfigFile RootLogger Level", "Failed to update ConfigFile RootLogger Level"); } catch (Exception e5) { + ViewUtility.operationFailedStatusBarMessage("Error updating ConfigFile RootLogger Level"); MBeanUtility.handleException(_mbean, e5); } refresh(_mbean); diff --git a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/RuntimeTabControl.java b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/RuntimeTabControl.java index a43506fc50..af4a17695c 100644 --- a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/RuntimeTabControl.java +++ b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/RuntimeTabControl.java @@ -352,16 +352,18 @@ public class RuntimeTabControl extends TabControl String level = levelCombo.getItem(levelCombo.getSelectionIndex()).toString(); shell.close(); - + try { - _lmmb.setRuntimeLoggerLevel(logger, level); + boolean result = _lmmb.setRuntimeLoggerLevel(logger, level); + ViewUtility.operationResultFeedback(result, + "Updated Runtime Logger Level", "Failed to update Runtime Logger Level"); } catch(Exception e3) { + ViewUtility.operationFailedStatusBarMessage("Error updating Runtime Logger Level"); MBeanUtility.handleException(_mbean, e3); } - //TODO: display result? refresh(_mbean); } @@ -414,15 +416,17 @@ public class RuntimeTabControl extends TabControl try { - _lmmb.setRuntimeRootLoggerLevel(selection); + boolean result = _lmmb.setRuntimeRootLoggerLevel(selection); + ViewUtility.operationResultFeedback(result, + "Updated Runtime RootLogger Level", "Failed to update Runtime Logger Level"); } catch(Exception e4) { + ViewUtility.operationFailedStatusBarMessage("Error updating Runtime Logger Level"); MBeanUtility.handleException(_mbean, e4); } refresh(_mbean); - //TODO: display result? } }); diff --git a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java index 6f5e0f48d2..a3954649eb 100644 --- a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java +++ b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java @@ -274,12 +274,14 @@ public class QueueOperationsTabControl extends TabControl try { _qmb.clearQueue(); + ViewUtility.operationResultFeedback(null, "Queue cleared", null); } catch (Exception e2) { + ViewUtility.operationFailedStatusBarMessage("Error clearing Queue"); MBeanUtility.handleException(_mbean, e2); } - //TODO:display result + refresh(_mbean);; } } @@ -596,12 +598,13 @@ public class QueueOperationsTabControl extends TabControl _qmb.moveMessages(Long.valueOf(from), Long.valueOf(to), destQueue); } + ViewUtility.operationResultFeedback(null, "Messages moved", null); } catch (Exception e4) { + ViewUtility.operationFailedStatusBarMessage("Error moving messages"); MBeanUtility.handleException(_mbean, e4); } - //TODO: display result? refresh(_mbean); } diff --git a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/users/UserManagementTabControl.java b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/users/UserManagementTabControl.java index b2f7a964c3..30b0da1ae1 100644 --- a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/users/UserManagementTabControl.java +++ b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/users/UserManagementTabControl.java @@ -233,13 +233,15 @@ public class UserManagementTabControl extends TabControl { try { - _ummb.deleteUser(user); + boolean result = _ummb.deleteUser(user); + ViewUtility.operationResultFeedback(result, "Deleted user", "Failed to delete user"); } catch(Exception e1) { + ViewUtility.operationFailedStatusBarMessage("Error deleting user"); MBeanUtility.handleException(_mbean, e1); } - //TODO:display result + refresh(_mbean);; } } @@ -301,11 +303,12 @@ public class UserManagementTabControl extends TabControl try { - _ummb.setPassword(user, password); - //TODO display result + boolean result = _ummb.setPassword(user, password); + ViewUtility.operationResultFeedback(result, "Updated user password", "Failed to update user password"); } catch(Exception e2) { + ViewUtility.operationFailedStatusBarMessage("Error updating user password"); MBeanUtility.handleException(_mbean, e2); } } @@ -394,11 +397,12 @@ public class UserManagementTabControl extends TabControl { try { - _ummb.reloadData(); - //TODO:display result + boolean result = _ummb.reloadData(); + ViewUtility.operationResultFeedback(result, "Reloaded user data", "Failed to reload user data"); } catch(Exception e3) { + ViewUtility.operationFailedStatusBarMessage("Error reloading user data"); MBeanUtility.handleException(_mbean, e3); } refresh(_mbean); @@ -588,11 +592,12 @@ public class UserManagementTabControl extends TabControl shell.dispose(); try { - _ummb.setRights(user,read,write,admin); - //TODO: display result? + boolean result = _ummb.setRights(user,read,write,admin); + ViewUtility.operationResultFeedback(result, "Updated user rights", "Failed to update user rights"); } catch(Exception e4) { + ViewUtility.operationFailedStatusBarMessage("Error setting user rights"); MBeanUtility.handleException(_mbean, e4); } refresh(_mbean); @@ -686,11 +691,12 @@ public class UserManagementTabControl extends TabControl shell.dispose(); try { - _ummb.createUser(username, password.toCharArray(), read, write, admin); - //TODO: display result? + boolean result = _ummb.createUser(username, password.toCharArray(), read, write, admin); + ViewUtility.operationResultFeedback(result, "Created user", "Failed to create user"); } catch(Exception e5) { + ViewUtility.operationFailedStatusBarMessage("Error creating user"); MBeanUtility.handleException(_mbean, e5); } diff --git a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/vhost/VHostTabControl.java b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/vhost/VHostTabControl.java index 79e8c6612e..2a77451533 100644 --- a/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/vhost/VHostTabControl.java +++ b/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/vhost/VHostTabControl.java @@ -232,15 +232,17 @@ public class VHostTabControl extends TabControl { _vhmb.deleteQueue(queue); + ViewUtility.operationResultFeedback(null, "Deleted Queue", null); //remove queue from list of managed beans ServerRegistry serverRegistry = ApplicationRegistry.getServerRegistry(MBeanView.getServer()); serverRegistry.removeManagedObject(selectedQueue); } catch(Exception e1) { + ViewUtility.operationFailedStatusBarMessage("Error deleting Queue"); MBeanUtility.handleException(_mbean, e1); } - //TODO:display result + refresh(_mbean);; } } @@ -355,15 +357,16 @@ public class VHostTabControl extends TabControl { _vhmb.unregisterExchange(exchange); + ViewUtility.operationResultFeedback(null, "Deleted Exchange", null); //remove exchange from list of managed beans ServerRegistry serverRegistry = ApplicationRegistry.getServerRegistry(MBeanView.getServer()); serverRegistry.removeManagedObject(selectedExchange); } catch(Exception e1) { + ViewUtility.operationFailedStatusBarMessage("Error deleting Exchange"); MBeanUtility.handleException(_mbean, e1); } - //TODO:display result refresh(_mbean);; } @@ -564,8 +567,8 @@ public class VHostTabControl extends TabControl try { _vhmb.createNewQueue(name, owner, durable); - //TODO: display result? + ViewUtility.operationResultFeedback(null, "Created Queue", null); try { //delay to allow mbean registration notification processing @@ -578,6 +581,7 @@ public class VHostTabControl extends TabControl } catch(Exception e5) { + ViewUtility.operationFailedStatusBarMessage("Error creating Queue"); MBeanUtility.handleException(_mbean, e5); } @@ -673,8 +677,8 @@ public class VHostTabControl extends TabControl try { _vhmb.createNewExchange(name, type, durable); - //TODO: display result? - + + ViewUtility.operationResultFeedback(null, "Created Exchange", null); try { //delay to allow mbean registration notification processing @@ -687,6 +691,7 @@ public class VHostTabControl extends TabControl } catch(Exception e5) { + ViewUtility.operationFailedStatusBarMessage("Error creating Exchange"); MBeanUtility.handleException(_mbean, e5); } |