You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2009/07/24 16:44:52 UTC
svn commit: r797502 - in
/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views:
logging/ConfigurationFileTabControl.java logging/RuntimeTabControl.java
queue/QueueOperationsTabControl.java
Author: robbie
Date: Fri Jul 24 14:44:52 2009
New Revision: 797502
URL: http://svn.apache.org/viewvc?rev=797502&view=rev
Log:
QPID-1978: Enable multiple selection for the LoggingManagement tabs, allowing alteration of multiple logger levels at once
Modified:
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/ConfigurationFileTabControl.java
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/RuntimeTabControl.java
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java
Modified: qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/ConfigurationFileTabControl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/ConfigurationFileTabControl.java?rev=797502&r1=797501&r2=797502&view=diff
==============================================================================
--- qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/ConfigurationFileTabControl.java (original)
+++ qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/ConfigurationFileTabControl.java Fri Jul 24 14:44:52 2009
@@ -20,6 +20,9 @@
*/
package org.apache.qpid.management.ui.views.logging;
+import java.util.ArrayList;
+import java.util.HashMap;
+
import javax.management.MBeanServerConnection;
import javax.management.MBeanServerInvocationHandler;
import javax.management.openmbean.CompositeData;
@@ -55,6 +58,7 @@
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.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
@@ -209,7 +213,7 @@
tableComposite.setLayout(gridLayout);
- _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);
@@ -347,18 +351,36 @@
if (selectionIndex != -1)
{
- final CompositeData selectedLogger = (CompositeData)_table.getItem(selectionIndex).getData();
- String loggerName = selectedLogger.get(LOGGER_NAME).toString();
+ int[] selectedIndices = _table.getSelectionIndices();
+
+ final ArrayList<String> selectedLoggers = new ArrayList<String>();
+
+ for(int index = 0; index < selectedIndices.length ; index++)
+ {
+ CompositeData selectedLogger = (CompositeData)_table.getItem(selectedIndices[index]).getData();
+ String user = (String) selectedLogger.get(LOGGER_NAME);
+ selectedLoggers.add(user);
+ }
final Shell shell = ViewUtility.createModalDialogShell(parent, "Set Config File Logger Level");
-
- Composite loggerComp = _toolkit.createComposite(shell);
- loggerComp.setBackground(shell.getBackground());
- loggerComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- loggerComp.setLayout(new GridLayout(2,false));
+
+ _toolkit.createLabel(shell, "Logger(s): ").setBackground(shell.getBackground());
+
+ final Text headerText = new Text(shell, SWT.WRAP | SWT.V_SCROLL | SWT.BORDER );
+ headerText.setEditable(false);
+ GridData data = new GridData(SWT.FILL, SWT.FILL, false, false);
+ data.minimumHeight = 125;
+ data.heightHint = 125;
+ data.minimumWidth = 575;
+ data.widthHint = 575;
+ headerText.setLayoutData(data);
- _toolkit.createLabel(loggerComp, "Logger: ").setBackground(shell.getBackground());
- _toolkit.createLabel(loggerComp, loggerName).setBackground(shell.getBackground());
+ String lineSeperator = System.getProperty("line.separator");
+ for(String loggerName : selectedLoggers)
+ {
+ headerText.append(loggerName + lineSeperator);
+ }
+ headerText.setSelection(0);
Composite levelComp = _toolkit.createComposite(shell);
levelComp.setBackground(shell.getBackground());
@@ -384,21 +406,63 @@
{
public void widgetSelected(SelectionEvent e)
{
- String logger = selectedLogger.get(LOGGER_NAME).toString();
String level = levelCombo.getItem(levelCombo.getSelectionIndex()).toString();
shell.close();
try
{
- boolean result = _lmmb.setConfigFileLoggerLevel(logger, level);
- ViewUtility.operationResultFeedback(result,
- "Updated ConfigFile Logger Level", "Failed to update ConfigFile Logger Level");
+ HashMap<String,Boolean> results = new HashMap<String,Boolean>();
+
+ //perform the updates, save the results.
+ for(String logger : selectedLoggers)
+ {
+ boolean result = _lmmb.setConfigFileLoggerLevel(logger, level);
+ results.put(logger, result);
+ }
+
+ //categorise the overall result
+ boolean overallResult = true;
+ for(boolean result : results.values())
+ {
+ if (!result)
+ {
+ overallResult = false;
+ }
+ }
+
+ //output the result to status bar if all succeed, and dialogue if not
+ if(overallResult)
+ {
+ ViewUtility.operationResultFeedback(overallResult, "Updated ConfigFile Logger Level(s)", null);
+ }
+ else
+ {
+ String failedToSetLevelOfLoggers = "";
+ for(String logger : results.keySet())
+ {
+ if(!results.get(logger))
+ {
+ failedToSetLevelOfLoggers = failedToSetLevelOfLoggers.concat(logger + ", ");
+ }
+ }
+
+ //cut off last ", "
+ int lastIndex = failedToSetLevelOfLoggers.lastIndexOf(',');
+ if (lastIndex != -1)
+ {
+ failedToSetLevelOfLoggers = failedToSetLevelOfLoggers.substring(0, lastIndex);
+ }
+
+ ViewUtility.operationResultFeedback(overallResult, null,
+ "Failed to update ConfigFile Logger Level(s): "
+ + failedToSetLevelOfLoggers);
+ }
}
- catch (Exception e4)
+ catch(Exception e4)
{
+ ViewUtility.operationFailedStatusBarMessage("Error updating Config File Logger Level(s)");
MBeanUtility.handleException(_mbean, e4);
- ViewUtility.operationFailedStatusBarMessage("Error updating ConfigFile Logger Level");
}
refresh(_mbean);
Modified: qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/RuntimeTabControl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/RuntimeTabControl.java?rev=797502&r1=797501&r2=797502&view=diff
==============================================================================
--- qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/RuntimeTabControl.java (original)
+++ qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/RuntimeTabControl.java Fri Jul 24 14:44:52 2009
@@ -20,6 +20,9 @@
*/
package org.apache.qpid.management.ui.views.logging;
+import java.util.ArrayList;
+import java.util.HashMap;
+
import javax.management.MBeanServerConnection;
import javax.management.MBeanServerInvocationHandler;
import javax.management.openmbean.CompositeData;
@@ -55,6 +58,7 @@
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.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
@@ -188,7 +192,7 @@
GridLayout gridLayout = new GridLayout();
tableComposite.setLayout(gridLayout);
- _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);
@@ -311,18 +315,36 @@
if (selectionIndex != -1)
{
- final CompositeData selectedLogger = (CompositeData)_table.getItem(selectionIndex).getData();
- String loggerName = selectedLogger.get(LOGGER_NAME).toString();
+ int[] selectedIndices = _table.getSelectionIndices();
+
+ final ArrayList<String> selectedLoggers = new ArrayList<String>();
+ for(int index = 0; index < selectedIndices.length ; index++)
+ {
+ CompositeData selectedLogger = (CompositeData)_table.getItem(selectedIndices[index]).getData();
+ String user = (String) selectedLogger.get(LOGGER_NAME);
+ selectedLoggers.add(user);
+ }
+
final Shell shell = ViewUtility.createModalDialogShell(parent, "Set Runtime Logger Level");
- Composite loggerComp = _toolkit.createComposite(shell);
- loggerComp.setBackground(shell.getBackground());
- loggerComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- loggerComp.setLayout(new GridLayout(2,false));
+ _toolkit.createLabel(shell, "Logger(s): ").setBackground(shell.getBackground());
- _toolkit.createLabel(loggerComp, "Logger: ").setBackground(shell.getBackground());
- _toolkit.createLabel(loggerComp, loggerName).setBackground(shell.getBackground());
+ final Text headerText = new Text(shell, SWT.WRAP | SWT.V_SCROLL | SWT.BORDER );
+ headerText.setEditable(false);
+ GridData data = new GridData(SWT.FILL, SWT.FILL, false, false);
+ data.minimumHeight = 125;
+ data.heightHint = 125;
+ data.minimumWidth = 575;
+ data.widthHint = 575;
+ headerText.setLayoutData(data);
+
+ String lineSeperator = System.getProperty("line.separator");
+ for(String loggerName : selectedLoggers)
+ {
+ headerText.append(loggerName + lineSeperator);
+ }
+ headerText.setSelection(0);
Composite levelComp = _toolkit.createComposite(shell);
levelComp.setBackground(shell.getBackground());
@@ -348,20 +370,62 @@
{
public void widgetSelected(SelectionEvent e)
{
- String logger = selectedLogger.get(LOGGER_NAME).toString();
String level = levelCombo.getItem(levelCombo.getSelectionIndex()).toString();
shell.close();
-
+
try
{
- boolean result = _lmmb.setRuntimeLoggerLevel(logger, level);
- ViewUtility.operationResultFeedback(result,
- "Updated Runtime Logger Level", "Failed to update Runtime Logger Level");
+ HashMap<String,Boolean> results = new HashMap<String,Boolean>();
+
+ //perform the updates, save the results.
+ for(String logger : selectedLoggers)
+ {
+ boolean result = _lmmb.setRuntimeLoggerLevel(logger, level);
+ results.put(logger, result);
+ }
+
+ //categorise the overall result
+ boolean overallResult = true;
+ for(boolean result : results.values())
+ {
+ if (!result)
+ {
+ overallResult = false;
+ }
+ }
+
+ //output the result to status bar if all succeed, and dialogue if not
+ if(overallResult)
+ {
+ ViewUtility.operationResultFeedback(overallResult, "Updated Runtime Logger Level(s)", null);
+ }
+ else
+ {
+ String failedToSetLevelOfLoggers = "";
+ for(String logger : results.keySet())
+ {
+ if(!results.get(logger))
+ {
+ failedToSetLevelOfLoggers = failedToSetLevelOfLoggers.concat(logger + ", ");
+ }
+ }
+
+ //cut off last ", "
+ int lastIndex = failedToSetLevelOfLoggers.lastIndexOf(',');
+ if (lastIndex != -1)
+ {
+ failedToSetLevelOfLoggers = failedToSetLevelOfLoggers.substring(0, lastIndex);
+ }
+
+ ViewUtility.operationResultFeedback(overallResult, null,
+ "Failed to update Runtime Logger Level(s): "
+ + failedToSetLevelOfLoggers);
+ }
}
catch(Exception e3)
{
- ViewUtility.operationFailedStatusBarMessage("Error updating Runtime Logger Level");
+ ViewUtility.operationFailedStatusBarMessage("Error updating Runtime Logger Level(s)");
MBeanUtility.handleException(_mbean, e3);
}
Modified: qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java?rev=797502&r1=797501&r2=797502&view=diff
==============================================================================
--- qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java (original)
+++ qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java Fri Jul 24 14:44:52 2009
@@ -553,9 +553,10 @@
String[] msgHeader = (String[]) selectedMsg.get(MSG_HEADER);
headerText.setText("");
+ String lineSeperator = System.getProperty("line.separator");
for(String s: msgHeader)
{
- headerText.append(s + "\n");
+ headerText.append(s + lineSeperator);
}
}
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org