summaryrefslogtreecommitdiff
path: root/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/ConfigurationFileTabControl.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/ConfigurationFileTabControl.java')
-rw-r--r--qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/ConfigurationFileTabControl.java98
1 files changed, 81 insertions, 17 deletions
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 e86faed1fd..0214607a21 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
@@ -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.Shell;
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 @@ public class ConfigurationFileTabControl extends TabControl
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 @@ public class ConfigurationFileTabControl extends TabControl
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(loggerComp, "Logger: ").setBackground(shell.getBackground());
- _toolkit.createLabel(loggerComp, loggerName).setBackground(shell.getBackground());
+
+ _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);
+
+ 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 class ConfigurationFileTabControl extends TabControl
{
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);