[406998] [Accessibility] Fix accessibility issues in the TCP/IP monitor
preferences page
diff --git a/features/org.eclipse.wst.server_ui.feature.patch/buildnotes_org.eclipse.wst.server_ui.feature.patch.html b/features/org.eclipse.wst.server_ui.feature.patch/buildnotes_org.eclipse.wst.server_ui.feature.patch.html
index 5b2e4cb..770a2bf 100644
--- a/features/org.eclipse.wst.server_ui.feature.patch/buildnotes_org.eclipse.wst.server_ui.feature.patch.html
+++ b/features/org.eclipse.wst.server_ui.feature.patch/buildnotes_org.eclipse.wst.server_ui.feature.patch.html
@@ -22,6 +22,7 @@
 <p>Bug <a href='https://bugs.eclipse.org/390584'>390584</a>. [Accessibility] TCP/IP monitor view uses white background with green text in high contrast mode and labels are unreadable by a screenreader</p>

 <p>Bug <a href='https://bugs.eclipse.org/400855'>400855</a>.  [Accessibility] Mouse over on the module status in the server's view fails in high contrast mode</p>

 <p>Bug <a href='https://bugs.eclipse.org/404672'>404672</a>.  delete key on multiple modules sends wrong deltakind flag</p>

+<p>Bug <a href='https://bugs.eclipse.org/406998'>406998</a>. [Accessibility] Fix accessibility issues in the TCP/IP monitor preferences page</p>

 

 

 </body></html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.server_ui.feature.patch/feature.properties b/features/org.eclipse.wst.server_ui.feature.patch/feature.properties
index da86e26..3ff383a 100644
--- a/features/org.eclipse.wst.server_ui.feature.patch/feature.properties
+++ b/features/org.eclipse.wst.server_ui.feature.patch/feature.properties
@@ -32,6 +32,7 @@
 Bug https://bugs.eclipse.org/390584  [Accessibility] TCP/IP monitor view uses white background with green text in high contrast mode and labels are unreadable by a screenreader\n\
 Bug https://bugs.eclipse.org/400855  [Accessibility] Mouse over on the module status in the server's view fails in high contrast mode\n\
 Bug https://bugs.eclipse.org/404672  delete key on multiple modules sends wrong deltakind flag\n\
+Bug https://bugs.eclipse.org/406998 [Accessibility] Fix accessibility issues in the TCP/IP monitor preferences page\n\
 \n\
 # "copyright" property - text of the "Feature Update Copyright"
 copyright=\
diff --git a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/Messages.java b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/Messages.java
index 5c45998..9db07c8 100644
--- a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/Messages.java
+++ b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/Messages.java
@@ -39,6 +39,7 @@
 	public static String remove;
 	public static String start;
 	public static String stop;
+	public static String columns;
 	public static String started;
 	public static String stopped;
 	public static String headerLabel;
diff --git a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/Messages.properties b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/Messages.properties
index 8847027..8fd3bed 100644
--- a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/Messages.properties
+++ b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/Messages.properties
@@ -61,6 +61,7 @@
 remove=&Remove
 start=&Start
 stop=S&top
+columns=&Columns...
 started=Started
 stopped=Stopped
 yes=Yes
diff --git a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/MonitorPreferencePage.java b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/MonitorPreferencePage.java
index c027481..3915603 100644
--- a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/MonitorPreferencePage.java
+++ b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/MonitorPreferencePage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
+ * Copyright (c) 2003, 2013 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -14,20 +14,12 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
+
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.jface.util.ConfigureColumns;
 import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -36,7 +28,20 @@
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableLayout;
 import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.window.IShellProvider;
 import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+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.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 import org.eclipse.ui.PlatformUI;
@@ -46,7 +51,7 @@
 /**
  * The preference page that holds monitor properties.
  */
-public class MonitorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
+public class MonitorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage, IShellProvider {
 	protected Button displayButton;
 	
 	protected Table table;
@@ -56,6 +61,7 @@
 	protected Button remove;
 	protected Button start;
 	protected Button stop;
+	protected Button columns;
 	
 	protected List<Object> selection2;
 
@@ -87,12 +93,12 @@
 		GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
 		composite.setLayoutData(data);
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, ContextIds.PREF);
-		
-		Label label = new Label(composite, SWT.WRAP);
-		label.setText(Messages.preferenceDescription);
+				
+		Text description = new Text(composite, SWT.READ_ONLY);
+		description.setText(Messages.preferenceDescription);
 		data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
 		data.horizontalSpan = 2;
-		label.setLayoutData(data);
+		description.setLayoutData(data);
 	
 		displayButton = new Button(composite, SWT.CHECK);
 		displayButton.setText(Messages.prefShowView);
@@ -103,7 +109,7 @@
 		displayButton.setLayoutData(data);
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(displayButton, ContextIds.PREF_SHOW);
 		
-		label = new Label(composite, SWT.WRAP);
+		Label label = new Label(composite, SWT.WRAP);
 		label.setText(Messages.monitorList);
 		data = new GridData(GridData.FILL_HORIZONTAL);
 		data.horizontalSpan = 2;
@@ -265,6 +271,17 @@
 		});
 		stop.setEnabled(false);
 		
+		columns = SWTUtil.createButton(buttonComp, Messages.columns);
+		data = (GridData) columns.getLayoutData();
+		data.verticalIndent = 9;
+		
+		final MonitorPreferencePage thisClass = this;
+		columns.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				ConfigureColumns.forTable(tableViewer.getTable(), thisClass);
+			}
+		});
+		
 		Dialog.applyDialogFont(composite);
 	
 		return composite;