From 4271f62a215bfc9c8e072369c7ea650e2f6bb237 Mon Sep 17 00:00:00 2001 From: Uwe Stieber Date: Thu, 3 Jan 2013 12:42:31 +0100 Subject: [PATCH] Terminal: Extended ISettingsPage interface to allow page container to listen to changes on the settings page. Added AbstractSettingsPage implementation. --- .../feature.xml | 2 +- .../org.eclipse.tm.terminal-feature/pom.xml | 2 +- .../feature.xml | 2 +- .../pom.xml | 2 +- .../feature.xml | 6 +- .../pom.xml | 2 +- .../feature.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../feature.xml | 4 +- .../pom.xml | 2 +- .../feature.xml | 4 +- .../pom.xml | 2 +- .../feature.xml | 4 +- .../pom.xml | 2 +- .../feature.xml | 4 +- .../pom.xml | 2 +- .../feature.xml | 4 +- .../pom.xml | 2 +- .../META-INF/MANIFEST.MF | 2 +- plugins/org.eclipse.tm.terminal.local/pom.xml | 2 +- .../local/LocalTerminalSettingsPage.java | 5 +- .../META-INF/MANIFEST.MF | 2 +- .../org.eclipse.tm.terminal.serial/pom.xml | 2 +- .../terminal/serial/SerialSettingsPage.java | 27 +++++- .../META-INF/MANIFEST.MF | 2 +- plugins/org.eclipse.tm.terminal.ssh/pom.xml | 2 +- .../terminal/ssh/SshSettingsPage.java | 13 ++- .../META-INF/MANIFEST.MF | 2 +- .../org.eclipse.tm.terminal.telnet/pom.xml | 2 +- .../terminal/telnet/TelnetSettingsPage.java | 29 ++++++- .../META-INF/MANIFEST.MF | 2 +- plugins/org.eclipse.tm.terminal.test/pom.xml | 2 +- .../TerminalConnectorFactoryTest.java | 4 + .../connector/TerminalConnectorTest.java | 5 ++ .../speedtest/SpeedTestSettingsPage.java | 16 ++-- .../META-INF/MANIFEST.MF | 2 +- plugins/org.eclipse.tm.terminal.view/pom.xml | 2 +- .../terminal/view/TerminalSettingsDlg.java | 15 ++-- .../META-INF/MANIFEST.MF | 2 +- plugins/org.eclipse.tm.terminal/pom.xml | 2 +- .../provisional/api/AbstractSettingsPage.java | 84 +++++++++++++++++++ .../provisional/api/ISettingsPage.java | 46 ++++++++-- 43 files changed, 251 insertions(+), 73 deletions(-) create mode 100644 plugins/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/provisional/api/AbstractSettingsPage.java diff --git a/features/org.eclipse.tm.terminal-feature/feature.xml b/features/org.eclipse.tm.terminal-feature/feature.xml index 55a98dd2752..e30c70c20a3 100644 --- a/features/org.eclipse.tm.terminal-feature/feature.xml +++ b/features/org.eclipse.tm.terminal-feature/feature.xml @@ -13,7 +13,7 @@ diff --git a/features/org.eclipse.tm.terminal-feature/pom.xml b/features/org.eclipse.tm.terminal-feature/pom.xml index e8513b33281..a2efc4a10ce 100644 --- a/features/org.eclipse.tm.terminal-feature/pom.xml +++ b/features/org.eclipse.tm.terminal-feature/pom.xml @@ -10,6 +10,6 @@ org.eclipse.tm.features org.eclipse.tm.terminal - 3.2.1-SNAPSHOT + 3.2.2.qualifier eclipse-feature diff --git a/features/org.eclipse.tm.terminal.core.sdk-feature/feature.xml b/features/org.eclipse.tm.terminal.core.sdk-feature/feature.xml index 47e25b716f7..db92eadf16d 100644 --- a/features/org.eclipse.tm.terminal.core.sdk-feature/feature.xml +++ b/features/org.eclipse.tm.terminal.core.sdk-feature/feature.xml @@ -12,7 +12,7 @@ diff --git a/features/org.eclipse.tm.terminal.core.sdk-feature/pom.xml b/features/org.eclipse.tm.terminal.core.sdk-feature/pom.xml index 0f34322b5f9..271909946a0 100644 --- a/features/org.eclipse.tm.terminal.core.sdk-feature/pom.xml +++ b/features/org.eclipse.tm.terminal.core.sdk-feature/pom.xml @@ -10,6 +10,6 @@ org.eclipse.tm.features org.eclipse.tm.terminal.core.sdk - 3.3.1-SNAPSHOT + 3.3.2.qualifier eclipse-feature diff --git a/features/org.eclipse.tm.terminal.local-feature/feature.xml b/features/org.eclipse.tm.terminal.local-feature/feature.xml index 50d397c3c33..27c5d7b87a6 100644 --- a/features/org.eclipse.tm.terminal.local-feature/feature.xml +++ b/features/org.eclipse.tm.terminal.local-feature/feature.xml @@ -13,7 +13,7 @@ @@ -41,8 +41,8 @@ - - + + diff --git a/features/org.eclipse.tm.terminal.local-feature/pom.xml b/features/org.eclipse.tm.terminal.local-feature/pom.xml index 408e1e81853..2814c680a82 100644 --- a/features/org.eclipse.tm.terminal.local-feature/pom.xml +++ b/features/org.eclipse.tm.terminal.local-feature/pom.xml @@ -10,6 +10,6 @@ org.eclipse.tm.features org.eclipse.tm.terminal.local - 0.2.100-SNAPSHOT + 0.2.200.qualifier eclipse-feature diff --git a/features/org.eclipse.tm.terminal.local.sdk-feature/feature.xml b/features/org.eclipse.tm.terminal.local.sdk-feature/feature.xml index d87ee57261e..94cb8cd3752 100644 --- a/features/org.eclipse.tm.terminal.local.sdk-feature/feature.xml +++ b/features/org.eclipse.tm.terminal.local.sdk-feature/feature.xml @@ -13,7 +13,7 @@ diff --git a/features/org.eclipse.tm.terminal.local.sdk-feature/pom.xml b/features/org.eclipse.tm.terminal.local.sdk-feature/pom.xml index ddaef09acf5..37e45c3e4ef 100644 --- a/features/org.eclipse.tm.terminal.local.sdk-feature/pom.xml +++ b/features/org.eclipse.tm.terminal.local.sdk-feature/pom.xml @@ -10,6 +10,6 @@ org.eclipse.tm.features org.eclipse.tm.terminal.local.sdk - 0.3.0-SNAPSHOT + 0.3.1.qualifier eclipse-feature diff --git a/features/org.eclipse.tm.terminal.sdk-feature/pom.xml b/features/org.eclipse.tm.terminal.sdk-feature/pom.xml index 7567e3f5959..5d0a8dfa813 100644 --- a/features/org.eclipse.tm.terminal.sdk-feature/pom.xml +++ b/features/org.eclipse.tm.terminal.sdk-feature/pom.xml @@ -10,6 +10,6 @@ org.eclipse.tm.features org.eclipse.tm.terminal.sdk - 3.3.2-SNAPSHOT + 3.3.2.qualifier eclipse-feature diff --git a/features/org.eclipse.tm.terminal.serial-feature/feature.xml b/features/org.eclipse.tm.terminal.serial-feature/feature.xml index 5a26c18961f..a81782dc4f7 100644 --- a/features/org.eclipse.tm.terminal.serial-feature/feature.xml +++ b/features/org.eclipse.tm.terminal.serial-feature/feature.xml @@ -12,7 +12,7 @@ @@ -35,7 +35,7 @@ - + org.eclipse.tm.features org.eclipse.tm.terminal.serial - 2.1.100-SNAPSHOT + 2.1.200.qualifier eclipse-feature diff --git a/features/org.eclipse.tm.terminal.ssh-feature/feature.xml b/features/org.eclipse.tm.terminal.ssh-feature/feature.xml index 5cc89dbf035..39172db43c2 100644 --- a/features/org.eclipse.tm.terminal.ssh-feature/feature.xml +++ b/features/org.eclipse.tm.terminal.ssh-feature/feature.xml @@ -12,7 +12,7 @@ @@ -35,7 +35,7 @@ - + diff --git a/features/org.eclipse.tm.terminal.ssh-feature/pom.xml b/features/org.eclipse.tm.terminal.ssh-feature/pom.xml index 060daf41ca1..bd3f762a9d4 100644 --- a/features/org.eclipse.tm.terminal.ssh-feature/pom.xml +++ b/features/org.eclipse.tm.terminal.ssh-feature/pom.xml @@ -10,6 +10,6 @@ org.eclipse.tm.features org.eclipse.tm.terminal.ssh - 2.1.100-SNAPSHOT + 2.1.200.qualifier eclipse-feature diff --git a/features/org.eclipse.tm.terminal.telnet-feature/feature.xml b/features/org.eclipse.tm.terminal.telnet-feature/feature.xml index 33209655c60..973e191e041 100644 --- a/features/org.eclipse.tm.terminal.telnet-feature/feature.xml +++ b/features/org.eclipse.tm.terminal.telnet-feature/feature.xml @@ -12,7 +12,7 @@ @@ -35,7 +35,7 @@ - + org.eclipse.tm.features org.eclipse.tm.terminal.telnet - 2.1.100-SNAPSHOT + 2.1.200.qualifier eclipse-feature diff --git a/features/org.eclipse.tm.terminal.test-feature/feature.xml b/features/org.eclipse.tm.terminal.test-feature/feature.xml index a528a14ce6d..fa3a4d861d6 100644 --- a/features/org.eclipse.tm.terminal.test-feature/feature.xml +++ b/features/org.eclipse.tm.terminal.test-feature/feature.xml @@ -12,7 +12,7 @@ @@ -35,7 +35,7 @@ - + diff --git a/features/org.eclipse.tm.terminal.test-feature/pom.xml b/features/org.eclipse.tm.terminal.test-feature/pom.xml index 07ad2d1ba4c..1671577fdde 100644 --- a/features/org.eclipse.tm.terminal.test-feature/pom.xml +++ b/features/org.eclipse.tm.terminal.test-feature/pom.xml @@ -10,6 +10,6 @@ org.eclipse.tm.features org.eclipse.tm.terminal.test - 2.1.0-SNAPSHOT + 2.1.1.qualifier eclipse-feature diff --git a/features/org.eclipse.tm.terminal.view-feature/feature.xml b/features/org.eclipse.tm.terminal.view-feature/feature.xml index 8c1036ae245..b83b2f994dc 100644 --- a/features/org.eclipse.tm.terminal.view-feature/feature.xml +++ b/features/org.eclipse.tm.terminal.view-feature/feature.xml @@ -13,7 +13,7 @@ @@ -36,7 +36,7 @@ - + org.eclipse.tm.features org.eclipse.tm.terminal.view - 2.4.0-SNAPSHOT + 2.4.1.qualifier eclipse-feature diff --git a/plugins/org.eclipse.tm.terminal.local/META-INF/MANIFEST.MF b/plugins/org.eclipse.tm.terminal.local/META-INF/MANIFEST.MF index 04f1cefaf95..b90ada37d6e 100644 --- a/plugins/org.eclipse.tm.terminal.local/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.tm.terminal.local/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.tm.terminal.local;singleton:=true -Bundle-Version: 0.2.100.qualifier +Bundle-Version: 0.2.200.qualifier Bundle-Activator: org.eclipse.tm.internal.terminal.local.LocalTerminalActivator Bundle-Localization: plugin Bundle-Vendor: %providerName diff --git a/plugins/org.eclipse.tm.terminal.local/pom.xml b/plugins/org.eclipse.tm.terminal.local/pom.xml index f9d419c81cc..28e944049cb 100644 --- a/plugins/org.eclipse.tm.terminal.local/pom.xml +++ b/plugins/org.eclipse.tm.terminal.local/pom.xml @@ -10,6 +10,6 @@ org.eclipse.tm org.eclipse.tm.terminal.local - 0.2.100-SNAPSHOT + 0.2.200.qualifier eclipse-plugin diff --git a/plugins/org.eclipse.tm.terminal.local/src/org/eclipse/tm/internal/terminal/local/LocalTerminalSettingsPage.java b/plugins/org.eclipse.tm.terminal.local/src/org/eclipse/tm/internal/terminal/local/LocalTerminalSettingsPage.java index 9d6edd223ec..4491c6daf4a 100644 --- a/plugins/org.eclipse.tm.terminal.local/src/org/eclipse/tm/internal/terminal/local/LocalTerminalSettingsPage.java +++ b/plugins/org.eclipse.tm.terminal.local/src/org/eclipse/tm/internal/terminal/local/LocalTerminalSettingsPage.java @@ -38,6 +38,7 @@ import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.Widget; import org.eclipse.tm.internal.terminal.local.launch.LocalTerminalLaunchUtilities; import org.eclipse.tm.internal.terminal.local.ui.DependentHeightComposite; +import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage; import org.eclipse.tm.internal.terminal.provisional.api.ISettingsPage; import org.eclipse.tm.internal.terminal.provisional.api.Logger; import org.eclipse.ui.IWorkbench; @@ -51,8 +52,8 @@ import org.eclipse.ui.PlatformUI; * @author Mirko Raner * @version $Revision: 1.3 $ */ -public class LocalTerminalSettingsPage -implements ISettingsPage, ISelectionChangedListener, SelectionListener { +public class LocalTerminalSettingsPage extends AbstractSettingsPage +implements ISelectionChangedListener, SelectionListener { private ILocalTerminalSettings settings; private TableViewer viewer; diff --git a/plugins/org.eclipse.tm.terminal.serial/META-INF/MANIFEST.MF b/plugins/org.eclipse.tm.terminal.serial/META-INF/MANIFEST.MF index 3e1f4363584..1b2429c9a97 100644 --- a/plugins/org.eclipse.tm.terminal.serial/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.tm.terminal.serial/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.tm.terminal.serial;singleton:=true -Bundle-Version: 2.1.100.qualifier +Bundle-Version: 2.1.200.qualifier Bundle-Localization: plugin Import-Package: gnu.io;resolution:=optional Require-Bundle: org.eclipse.ui, diff --git a/plugins/org.eclipse.tm.terminal.serial/pom.xml b/plugins/org.eclipse.tm.terminal.serial/pom.xml index 3f7e89130bf..0094b7d63fe 100644 --- a/plugins/org.eclipse.tm.terminal.serial/pom.xml +++ b/plugins/org.eclipse.tm.terminal.serial/pom.xml @@ -10,6 +10,6 @@ org.eclipse.tm org.eclipse.tm.terminal.serial - 2.1.100-SNAPSHOT + 2.1.200.qualifier eclipse-plugin diff --git a/plugins/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/internal/terminal/serial/SerialSettingsPage.java b/plugins/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/internal/terminal/serial/SerialSettingsPage.java index c896ed508ac..77de4c9942f 100644 --- a/plugins/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/internal/terminal/serial/SerialSettingsPage.java +++ b/plugins/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/internal/terminal/serial/SerialSettingsPage.java @@ -21,15 +21,19 @@ import java.util.Iterator; import java.util.List; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; +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.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; -import org.eclipse.tm.internal.terminal.provisional.api.ISettingsPage; +import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage; -public class SerialSettingsPage implements ISettingsPage { +public class SerialSettingsPage extends AbstractSettingsPage { private Combo fSerialPortCombo; private Combo fBaudRateCombo; private Combo fDataBitsCombo; @@ -137,6 +141,11 @@ public class SerialSettingsPage implements ISettingsPage { new Label(composite, SWT.RIGHT).setText(SerialMessages.TIMEOUT + ":"); //$NON-NLS-1$ fTimeout = new Text(composite, SWT.BORDER); fTimeout.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + fTimeout.addModifyListener(new ModifyListener() { + public void modifyText(ModifyEvent e) { + fireListeners(fTimeout); + } + }); loadSettings(); } @@ -148,8 +157,20 @@ public class SerialSettingsPage implements ISettingsPage { int flags=SWT.DROP_DOWN; if(readonly) flags|=SWT.READ_ONLY; - Combo combo = new Combo(composite, flags); + final Combo combo = new Combo(composite, flags); combo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + if (!readonly) { + combo.addModifyListener(new ModifyListener() { + public void modifyText(ModifyEvent e) { + fireListeners(combo); + } + }); + } + combo.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + fireListeners(combo); + } + }); return combo; } diff --git a/plugins/org.eclipse.tm.terminal.ssh/META-INF/MANIFEST.MF b/plugins/org.eclipse.tm.terminal.ssh/META-INF/MANIFEST.MF index 087f213bba5..2897507f367 100644 --- a/plugins/org.eclipse.tm.terminal.ssh/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.tm.terminal.ssh/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.tm.terminal.ssh;singleton:=true -Bundle-Version: 2.1.100.qualifier +Bundle-Version: 2.1.200.qualifier Bundle-Vendor: %providerName Bundle-Localization: plugin Require-Bundle: org.eclipse.ui, diff --git a/plugins/org.eclipse.tm.terminal.ssh/pom.xml b/plugins/org.eclipse.tm.terminal.ssh/pom.xml index a694be99b97..c26d7c090b4 100644 --- a/plugins/org.eclipse.tm.terminal.ssh/pom.xml +++ b/plugins/org.eclipse.tm.terminal.ssh/pom.xml @@ -10,6 +10,6 @@ org.eclipse.tm org.eclipse.tm.terminal.ssh - 2.1.100-SNAPSHOT + 2.1.200.qualifier eclipse-plugin diff --git a/plugins/org.eclipse.tm.terminal.ssh/src/org/eclipse/tm/internal/terminal/ssh/SshSettingsPage.java b/plugins/org.eclipse.tm.terminal.ssh/src/org/eclipse/tm/internal/terminal/ssh/SshSettingsPage.java index bf21bc4674f..fa135c73486 100644 --- a/plugins/org.eclipse.tm.terminal.ssh/src/org/eclipse/tm/internal/terminal/ssh/SshSettingsPage.java +++ b/plugins/org.eclipse.tm.terminal.ssh/src/org/eclipse/tm/internal/terminal/ssh/SshSettingsPage.java @@ -14,14 +14,16 @@ package org.eclipse.tm.internal.terminal.ssh; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; -import org.eclipse.tm.internal.terminal.provisional.api.ISettingsPage; +import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage; -public class SshSettingsPage implements ISettingsPage { +public class SshSettingsPage extends AbstractSettingsPage { private Text fHostText; private Text fUser; private Text fTimeout; @@ -107,8 +109,13 @@ public class SshSettingsPage implements ISettingsPage { // Add control gridData = new GridData(GridData.FILL_HORIZONTAL); - Text text= new Text(composite, SWT.BORDER | textOptions); + final Text text= new Text(composite, SWT.BORDER | textOptions); text.setLayoutData(gridData); + text.addModifyListener(new ModifyListener() { + public void modifyText(ModifyEvent e) { + fireListeners(text); + } + }); return text; } private Text createTextField(Composite composite, String labelTxt) { diff --git a/plugins/org.eclipse.tm.terminal.telnet/META-INF/MANIFEST.MF b/plugins/org.eclipse.tm.terminal.telnet/META-INF/MANIFEST.MF index ba7c00d8e01..81795537833 100644 --- a/plugins/org.eclipse.tm.terminal.telnet/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.tm.terminal.telnet/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.tm.terminal.telnet;singleton:=true -Bundle-Version: 2.1.100.qualifier +Bundle-Version: 2.1.200.qualifier Bundle-Vendor: %providerName Bundle-Localization: plugin Require-Bundle: org.eclipse.ui, diff --git a/plugins/org.eclipse.tm.terminal.telnet/pom.xml b/plugins/org.eclipse.tm.terminal.telnet/pom.xml index 1f651203e6a..d7b41b3880a 100644 --- a/plugins/org.eclipse.tm.terminal.telnet/pom.xml +++ b/plugins/org.eclipse.tm.terminal.telnet/pom.xml @@ -10,6 +10,6 @@ org.eclipse.tm org.eclipse.tm.terminal.telnet - 2.1.100-SNAPSHOT + 2.1.200.qualifier eclipse-plugin diff --git a/plugins/org.eclipse.tm.terminal.telnet/src/org/eclipse/tm/internal/terminal/telnet/TelnetSettingsPage.java b/plugins/org.eclipse.tm.terminal.telnet/src/org/eclipse/tm/internal/terminal/telnet/TelnetSettingsPage.java index 526b355a2b6..2cb889ea51d 100644 --- a/plugins/org.eclipse.tm.terminal.telnet/src/org/eclipse/tm/internal/terminal/telnet/TelnetSettingsPage.java +++ b/plugins/org.eclipse.tm.terminal.telnet/src/org/eclipse/tm/internal/terminal/telnet/TelnetSettingsPage.java @@ -22,15 +22,19 @@ import java.util.Iterator; import java.util.List; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; +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.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; -import org.eclipse.tm.internal.terminal.provisional.api.ISettingsPage; +import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage; -public class TelnetSettingsPage implements ISettingsPage { +public class TelnetSettingsPage extends AbstractSettingsPage { private Text fHostText; private Combo fNetworkPortCombo; private Text fTimeout; @@ -123,6 +127,11 @@ public class TelnetSettingsPage implements ISettingsPage { gridData = new GridData(GridData.FILL_HORIZONTAL); fHostText = new Text(composite, SWT.BORDER); fHostText.setLayoutData(gridData); + fHostText.addModifyListener(new ModifyListener() { + public void modifyText(ModifyEvent e) { + fireListeners(fHostText); + } + }); // Add label ctlLabel = new Label(composite, SWT.RIGHT); @@ -131,8 +140,17 @@ public class TelnetSettingsPage implements ISettingsPage { // Add control gridData = new GridData(GridData.FILL_HORIZONTAL); fNetworkPortCombo = new Combo(composite, SWT.DROP_DOWN); - fNetworkPortCombo.setLayoutData(gridData); + fNetworkPortCombo.addModifyListener(new ModifyListener() { + public void modifyText(ModifyEvent e) { + fireListeners(fNetworkPortCombo); + } + }); + fNetworkPortCombo.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + fireListeners(fNetworkPortCombo); + } + }); List table = getNetworkPortMap().getNameTable(); Collections.sort(table); @@ -141,6 +159,11 @@ public class TelnetSettingsPage implements ISettingsPage { new Label(composite, SWT.RIGHT).setText(TelnetMessages.TIMEOUT + ":"); //$NON-NLS-1$ fTimeout = new Text(composite, SWT.BORDER); fTimeout.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + fTimeout.addModifyListener(new ModifyListener() { + public void modifyText(ModifyEvent e) { + fireListeners(fTimeout); + } + }); loadSettings(); } diff --git a/plugins/org.eclipse.tm.terminal.test/META-INF/MANIFEST.MF b/plugins/org.eclipse.tm.terminal.test/META-INF/MANIFEST.MF index ea99cb13bc2..3a3675bca47 100644 --- a/plugins/org.eclipse.tm.terminal.test/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.tm.terminal.test/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.tm.terminal.test;singleton:=true -Bundle-Version: 2.2.0.qualifier +Bundle-Version: 2.2.1.qualifier Bundle-Vendor: %providerName Bundle-Localization: plugin Require-Bundle: org.junit, diff --git a/plugins/org.eclipse.tm.terminal.test/pom.xml b/plugins/org.eclipse.tm.terminal.test/pom.xml index b69711c747d..ea3cbc2e1f9 100644 --- a/plugins/org.eclipse.tm.terminal.test/pom.xml +++ b/plugins/org.eclipse.tm.terminal.test/pom.xml @@ -10,7 +10,7 @@ org.eclipse.tm org.eclipse.tm.terminal.test - 2.2.0-SNAPSHOT + 2.2.1.qualifier eclipse-test-plugin diff --git a/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorFactoryTest.java b/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorFactoryTest.java index 67c0f2caba3..00dd06580e0 100644 --- a/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorFactoryTest.java +++ b/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorFactoryTest.java @@ -124,6 +124,10 @@ public class TerminalConnectorFactoryTest extends TestCase { } public boolean validateSettings() { return false; + } + public void addListener(Listener listener) { + } + public void removeListener(Listener listener) { }}; } diff --git a/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorTest.java b/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorTest.java index 28014864bca..4bae2cd0069 100644 --- a/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorTest.java +++ b/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorTest.java @@ -124,7 +124,12 @@ public class TerminalConnectorTest extends TestCase { } public boolean validateSettings() { return false; + } + public void addListener(Listener listener) { + } + public void removeListener(Listener listener) { }}; + } public void save(ISettingsStore store) { diff --git a/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/speedtest/SpeedTestSettingsPage.java b/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/speedtest/SpeedTestSettingsPage.java index 1f0c5a2344f..4ec21a27108 100644 --- a/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/speedtest/SpeedTestSettingsPage.java +++ b/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/speedtest/SpeedTestSettingsPage.java @@ -1,11 +1,11 @@ /******************************************************************************* * Copyright (c) 2007 Wind River Systems, Inc. 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 - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: + * 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 + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: * Michael Scharf (Wind River) - initial API and implementation *******************************************************************************/ package org.eclipse.tm.internal.terminal.speedtest; @@ -16,9 +16,9 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; -import org.eclipse.tm.internal.terminal.provisional.api.ISettingsPage; +import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage; -public class SpeedTestSettingsPage implements ISettingsPage { +public class SpeedTestSettingsPage extends AbstractSettingsPage { final SpeedTestSettings fSettings; Text fInputFile; Text fBufferSize; diff --git a/plugins/org.eclipse.tm.terminal.view/META-INF/MANIFEST.MF b/plugins/org.eclipse.tm.terminal.view/META-INF/MANIFEST.MF index fe962f30210..4800a82a2ea 100644 --- a/plugins/org.eclipse.tm.terminal.view/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.tm.terminal.view/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.tm.terminal.view;singleton:=true -Bundle-Version: 2.4.0.qualifier +Bundle-Version: 2.4.1.qualifier Bundle-Activator: org.eclipse.tm.internal.terminal.view.TerminalViewPlugin Bundle-Localization: plugin Require-Bundle: org.eclipse.ui, diff --git a/plugins/org.eclipse.tm.terminal.view/pom.xml b/plugins/org.eclipse.tm.terminal.view/pom.xml index aa1d34db046..30906f45798 100644 --- a/plugins/org.eclipse.tm.terminal.view/pom.xml +++ b/plugins/org.eclipse.tm.terminal.view/pom.xml @@ -10,6 +10,6 @@ org.eclipse.tm org.eclipse.tm.terminal.view - 2.4.0-SNAPSHOT + 2.4.1.qualifier eclipse-plugin diff --git a/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalSettingsDlg.java b/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalSettingsDlg.java index c3470273a7c..f0e96be360f 100644 --- a/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalSettingsDlg.java +++ b/plugins/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalSettingsDlg.java @@ -30,6 +30,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; + import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.IDialogSettings; @@ -121,6 +122,8 @@ class TerminalSettingsDlg extends Dialog { public void loadSettings() {} public void saveSettings() {} public boolean validateSettings() {return false;} + public void addListener(Listener listener) {} + public void removeListener(Listener listener) {} }; } else { fPages[i]=fConnectors[i].makeSettingsPage(); @@ -259,11 +262,11 @@ class TerminalSettingsDlg extends Dialog { fTerminalTitleText = new Text(wndGroup, SWT.BORDER); fTerminalTitleText.setText(fTerminalTitle); fTerminalTitleText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - + Label encodingLabel=new Label(wndGroup,SWT.NONE); encodingLabel.setText(ViewMessages.ENCODING); encodingLabel.setLayoutData(new GridData(GridData.BEGINNING)); - + fEncodingCombo = new Combo(wndGroup, SWT.DROP_DOWN); fEncodingCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); } @@ -294,7 +297,7 @@ class TerminalSettingsDlg extends Dialog { fPageBook=new PageBook(group,SWT.NONE); fPageBook.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); } - + private void setupListeners() { if(fCtlConnTypeCombo==null) return; @@ -356,10 +359,10 @@ class TerminalSettingsDlg extends Dialog { //TODO when moving to J2SE-1.5, restore the simpler way getting the default encoding //String hostEncoding =Charset.defaultCharset().displayName(); String hostEncoding = new java.io.InputStreamReader(new java.io.ByteArrayInputStream(new byte[0])).getEncoding(); - if (!encodings.contains(hostEncoding)) + if (!encodings.contains(hostEncoding)) encodings.add(hostEncoding); populateEncodingsCombo(encodings); - + } } private void populateEncodingsCombo(List encodings) { @@ -394,7 +397,7 @@ class TerminalSettingsDlg extends Dialog { mb.open(); return; } - + private void setCombo(Combo combo,String value) { if(value==null) return; diff --git a/plugins/org.eclipse.tm.terminal/META-INF/MANIFEST.MF b/plugins/org.eclipse.tm.terminal/META-INF/MANIFEST.MF index 9966a8655d2..3dbe6079ffc 100644 --- a/plugins/org.eclipse.tm.terminal/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.tm.terminal/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.tm.terminal; singleton:=true -Bundle-Version: 3.2.1.qualifier +Bundle-Version: 3.2.2.qualifier Bundle-Activator: org.eclipse.tm.internal.terminal.control.impl.TerminalPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin diff --git a/plugins/org.eclipse.tm.terminal/pom.xml b/plugins/org.eclipse.tm.terminal/pom.xml index ee4a456fd00..d9bc8170a74 100644 --- a/plugins/org.eclipse.tm.terminal/pom.xml +++ b/plugins/org.eclipse.tm.terminal/pom.xml @@ -10,6 +10,6 @@ org.eclipse.tm org.eclipse.tm.terminal - 3.2.1-SNAPSHOT + 3.2.2.qualifier eclipse-plugin diff --git a/plugins/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/provisional/api/AbstractSettingsPage.java b/plugins/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/provisional/api/AbstractSettingsPage.java new file mode 100644 index 00000000000..f5b4b0f69a7 --- /dev/null +++ b/plugins/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/provisional/api/AbstractSettingsPage.java @@ -0,0 +1,84 @@ +/******************************************************************************* + * Copyright (c) 2013 Wind River Systems, Inc. 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 http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tm.internal.terminal.provisional.api; + +import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.ListenerList; +import org.eclipse.jface.dialogs.IMessageProvider; +import org.eclipse.swt.widgets.Control; + +/** + * Abstract settings page providing a common implementation of the listener handling. + */ +public abstract class AbstractSettingsPage implements ISettingsPage, IMessageProvider { + // A message associated with the control. + private String message = null; + + // The message type of the associated message. + private int messageType = IMessageProvider.NONE; + + // Reference to the listener + private final ListenerList listeners = new ListenerList(); + + /* (non-Javadoc) + * @see org.eclipse.tm.internal.terminal.provisional.api.ISettingsPage#addListener(org.eclipse.tm.internal.terminal.provisional.api.ISettingsPage.Listener) + */ + public void addListener(Listener listener) { + Assert.isNotNull(listener); + listeners.add(listener); + } + + /* (non-Javadoc) + * @see org.eclipse.tm.internal.terminal.provisional.api.ISettingsPage#removeListener(org.eclipse.tm.internal.terminal.provisional.api.ISettingsPage.Listener) + */ + public void removeListener(Listener listener) { + Assert.isNotNull(listener); + listeners.remove(listener); + } + + /** + * Fire the listeners for the given control. + * + * @param control The control or null. + */ + public void fireListeners(Control control) { + Object[] list = listeners.getListeners(); + for (int i = 0; i < list.length; i++) { + Object l = list[i]; + if (!(l instanceof Listener)) continue; + ((Listener)l).onSettingsPageChanged(control); + } + } + + /* (non-Javadoc) + * @see org.eclipse.jface.dialogs.IMessageProvider#getMessage() + */ + public final String getMessage() { + return message; + } + + /* (non-Javadoc) + * @see org.eclipse.jface.dialogs.IMessageProvider#getMessageType() + */ + public final int getMessageType() { + return messageType; + } + + /** + * Set the message and the message type. + * + * @param message The message or null. + * @param messageType The type of the message (NONE, INFORMATION, WARNING, ERROR). + */ + public final void setMessage(String message, int messageType) { + this.message = message; + this.messageType = messageType; + } +} diff --git a/plugins/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/provisional/api/ISettingsPage.java b/plugins/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/provisional/api/ISettingsPage.java index b75c0c862d2..7a52e667a73 100644 --- a/plugins/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/provisional/api/ISettingsPage.java +++ b/plugins/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/provisional/api/ISettingsPage.java @@ -1,17 +1,18 @@ /******************************************************************************* * Copyright (c) 2006, 2011 Wind River Systems, Inc. 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 - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: + * 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 + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: * Michael Scharf (Wind River) - initial API and implementation * Martin Oberhuber (Wind River) - fixed copyright headers and beautified *******************************************************************************/ package org.eclipse.tm.internal.terminal.provisional.api; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; /** * @author Michael Scharf @@ -27,6 +28,18 @@ import org.eclipse.swt.widgets.Composite; *

*/ public interface ISettingsPage { + + public interface Listener { + + /** + * Invoked by settings page controls to signal that the settings page + * changed and page container may update their state. + * + * @param control The control which triggered the event or null + */ + public void onSettingsPageChanged(Control control); + } + /** * Create a page to be shown in a dialog or wizard to setup the connection. * @param parent @@ -44,8 +57,25 @@ public interface ISettingsPage { void saveSettings(); /** - * @return true if the + * @return true if the */ boolean validateSettings(); - + + /** + * Adds the given listener. + *

+ * Has not effect if the same listener is already registered. + * + * @param listener The listener. Must not be null. + */ + public void addListener(Listener listener); + + /** + * Removes the given listener. + *

+ * Has no effect if the same listener was not registered. + * + * @param listener The listener. Must not be null. + */ + public void removeListener(Listener listener); }