RTSDK: remove old dirs
authorjooyoul <jy.exe.lee@samsung.com>
Fri, 17 Feb 2017 07:28:30 +0000 (16:28 +0900)
committerjooyoul <jy.exe.lee@samsung.com>
Fri, 17 Feb 2017 07:28:30 +0000 (16:28 +0900)
- remove old dirs
- change pkginfo contents

Change-Id: Iea1c6c9ee1f80cb7ef50ad860f116da18abd5373
Signed-off-by: jooyoul <jy.exe.lee@samsung.com>
264 files changed:
rt-ide/package/pkginfo.manifest
rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/BUILD_INFO.txt [deleted file]
rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/META-INF/MANIFEST.MF [deleted file]
rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/META-INF/eclipse.inf [deleted file]
rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/about.html [deleted file]
rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/about_files/lgpl.txt [deleted file]
rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/fragment.properties [deleted file]
rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/os/linux/x86_64/librxtxParallel.so [deleted file]
rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/os/linux/x86_64/librxtxSerial.so [deleted file]
rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/META-INF/MANIFEST.MF [deleted file]
rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/META-INF/eclipse.inf [deleted file]
rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/about.html [deleted file]
rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/plugin.properties [deleted file]
rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/plugin.xml [deleted file]
rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/src/gnu.io.rxtx_2.1.7.4_v20071016/about.html [deleted file]
rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/src/gnu.io.rxtx_2.1.7.4_v20071016/about_files/lgpl.txt [deleted file]
rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/src/gnu.io.rxtx_2.1.7.4_v20071016/src.zip [deleted file]
rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016.jar [deleted file]
rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016/about.html [deleted file]
rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016/about_files/lgpl.txt [deleted file]
rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016/src.zip [deleted file]
rtosRXTX/librxtxParallel.so [deleted file]
rtosRXTX/librxtxSerial.so [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.classpath [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.gitignore [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.options [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.project [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.settings/org.eclipse.jdt.core.prefs [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.settings/org.eclipse.jdt.ui.prefs [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.settings/org.eclipse.pde.prefs [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/META-INF/MANIFEST.MF [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/about.html [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/build.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/plugin.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/plugin.xml [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/pom.xml [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/activator/UIPlugin.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/ISerialSettings.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialConnectWorker.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialConnector.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialPortHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialProperties.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialSettings.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/controls/SerialConfigurationPanel.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/controls/SerialLinePanel.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/controls/SerialPortAddressDialog.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/interfaces/ITraceIds.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/interfaces/IWireTypeSerial.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/launcher/SerialLauncherDelegate.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/launcher/SerialMementoHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/nls/Messages.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/nls/Messages.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/.classpath [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/.cvsignore [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/.gitignore [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/.options [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/.project [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/.settings/org.eclipse.core.resources.prefs [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/.settings/org.eclipse.jdt.core.prefs [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/HelpContexts.xml [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/META-INF/MANIFEST.MF [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/README.txt [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/about.html [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/about.ini [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/about.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/build.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/css/org.eclipse.tm.terminal.stylesheet.dark.css [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/icons/clcl16/clear_co.gif [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/icons/dlcl16/clear_co.gif [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/icons/elcl16/clear_co.gif [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/plugin.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/plugin.xml [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/pom.xml [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/schema/connectors.exsd [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/connector/TerminalConnector.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/connector/TerminalToRemoteInjectionOutputStream.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/CommandInputFieldWithHistory.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ICommandInputField.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ITerminalListener.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ITerminalListener2.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ITerminalMouseListener.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ITerminalViewControl.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/TerminalViewControlFactory.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/AbstractTerminalAction.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/ActionMessages.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/ActionMessages.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/ImageConsts.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionClearAll.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionCopy.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionCut.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionPaste.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionSelectAll.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/impl/ITerminalControlForText.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/impl/TerminalMessages.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/impl/TerminalMessages.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/impl/TerminalPlugin.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/EditActionAccelerators.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/IVT100EmulatorBackend.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/LoggingOutputStream.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/VT100BackendTraceDecorator.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/VT100Emulator.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/VT100EmulatorBackend.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/ISnapshotChanges.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/SnapshotChanges.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/SynchronizedTerminalTextData.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextData.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataFastScroll.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataSnapshot.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataStore.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataWindow.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/preferences/ITerminalConstants.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/preferences/TerminalPreferenceInitializer.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/preferences/TerminalPreferencePage.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/AbstractSettingsPage.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/ISettingsPage.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/ISettingsStore.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/ITerminalConnector.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/ITerminalControl.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/Logger.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/NullSettingsStore.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/TerminalConnectorExtension.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/TerminalState.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/provider/TerminalConnectorImpl.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/AbstractTextCanvasModel.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/GridCanvas.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/ILinelRenderer.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/ITextCanvasModel.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/ITextCanvasModelListener.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/PipedInputStream.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/PollingTextCanvasModel.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/StyleMap.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/TextCanvas.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/TextLineRenderer.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/VirtualCanvas.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/ITerminalTextData.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/ITerminalTextDataReadOnly.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/ITerminalTextDataSnapshot.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/LineSegment.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/Style.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/StyleColor.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/TerminalTextDataFactory.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.control/tm32.png [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/.classpath [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/.gitignore [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/.options [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/.project [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.core.prefs [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.ui.prefs [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.pde.prefs [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/META-INF/MANIFEST.MF [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/about.html [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/about.ini [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/about.mappings [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/about.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/build.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/plugin.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/plugin.xml [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/pom.xml [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/schema/contextPropertiesProviders.exsd [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/TerminalContextPropertiesProviderFactory.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/TerminalServiceFactory.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/activator/CoreBundleActivator.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalContextPropertiesProvider.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalService.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalServiceOutputStreamMonitorListener.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalTabListener.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/IContextPropertiesConstants.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/ILineSeparatorConstants.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/ITerminalsConnectorConstants.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/internal/PropertyTester.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/nls/Messages.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/nls/Messages.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/preferences/ScopedEclipsePreferences.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/tracing/TraceHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/utils/Env.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.core/tm32.png [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.classpath [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.gitignore [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.options [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.project [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.core.prefs [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.ui.prefs [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.pde.prefs [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/META-INF/MANIFEST.MF [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/about.html [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/build.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/contexts.xml [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/clcl16/command_input_field.gif [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/clcl16/new_terminal_view.gif [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/dlcl16/command_input_field.gif [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/dlcl16/disconnect.gif [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/dlcl16/new_terminal_view.gif [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/elcl16/command_input_field.gif [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/elcl16/disconnect.gif [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/elcl16/new_terminal_view.gif [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/eview16/terminal_view.gif [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/plugin.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/plugin.xml [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/pom.xml [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/schema/launcherDelegates.exsd [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/AbstractAction.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/NewTerminalViewAction.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/SelectEncodingAction.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/TabScrollLockAction.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/ToggleCommandFieldAction.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/activator/UIPlugin.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/controls/ConfigurationPanelControl.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/controls/NoteCompositeHelper.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/help/IContextHelpIds.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IConfigurationPanel.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IConfigurationPanelContainer.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IExternalExecutablesProperties.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ILauncherDelegate.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IMementoHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IPreferenceKeys.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ITerminalsView.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IUIConstants.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ImageConsts.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/tracing/ITraceIds.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/ExternalExecutablesState.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/PropertyTester.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/SettingsStore.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/EncodingSelectionDialog.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/LaunchTerminalSettingsDialog.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/AbstractTriggerCommandHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/DisconnectTerminalCommandHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/LaunchTerminalCommandHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/MaximizeViewHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/NewTerminalViewHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/QuickAccessHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/launcher/AbstractLauncherDelegate.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/launcher/LauncherDelegateManager.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/listeners/AbstractWindowListener.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/listeners/WorkbenchPartListener.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/listeners/WorkbenchWindowListener.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/local/showin/DynamicContributionItems.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/local/showin/ExternalExecutablesDialog.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/local/showin/ExternalExecutablesManager.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/manager/ConsoleManager.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/nls/Messages.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/nls/Messages.properties [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/panels/AbstractConfigurationPanel.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/panels/AbstractExtendedConfigurationPanel.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/preferences/PreferencePage.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/preferences/PreferencesInitializer.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/services/TerminalService.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/AbstractStreamsConnector.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/InputStreamMonitor.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/OutputStreamMonitor.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/StreamsConnector.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/StreamsLauncherDelegate.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/StreamsSettings.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabCommandFieldHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabDisposeListener.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabFolderManager.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabFolderMenuHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabFolderSelectionListener.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabFolderToolbarHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabTerminalListener.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/view/OldTerminalsViewHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/view/TerminalsView.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/view/TerminalsViewMementoHandler.java [deleted file]
rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/view/showin/GitShowInContextHandler.java [deleted file]

index f4b441a..fe8702c 100644 (file)
@@ -1,38 +1,38 @@
-Version:3.0.116
+Version:1.0.1
 Source:product
-Maintainer:hyeongseok heo <harry.heo@samsung.com>, yoonki park <yoonki.park@samsung.com>
+Maintainer:hyeongseok heo <harry.heo@samsung.com>, gyeong-min Ju <gyeongmin.ju@samsung.com>, jaemin Kim <jm.jemin.kim@samsung.com>
 
-Package:base-ide-product
+Package:rt-ide-product
 OS:ubuntu-32
 Build-host-os:ubuntu-64
 Build-dependency:eclipse-pde [ubuntu-64]
 Install-dependency:version-manager [ubuntu-32]
-Description:Make base IDE. This also includes patched eclipse plugins.
+Description:Make RT IDE. This also includes patched eclipse plugins.
 
-Package:base-ide-product
+Package:rt-ide-product
 OS:windows-32
 Build-host-os:ubuntu-64
 Build-dependency:eclipse-pde [ubuntu-64]
 Install-dependency:version-manager [windows-32]
-Description:Make base IDE. This also includes patched eclipse plugins.
+Description:Make RT IDE. This also includes patched eclipse plugins.
 
-Package:base-ide-product
+Package:rt-ide-product
 OS:ubuntu-64
 Build-host-os:ubuntu-64
 Build-dependency:eclipse-pde [ubuntu-64]
 Install-dependency:version-manager [ubuntu-64]
-Description:Make base IDE. This also includes patched eclipse plugins.
+Description:Make RT IDE. This also includes patched eclipse plugins.
 
-Package:base-ide-product
+Package:rt-ide-product
 OS:windows-64
 Build-host-os:ubuntu-64
 Build-dependency:eclipse-pde [ubuntu-64]
 Install-dependency:version-manager [windows-64]
-Description:Make base IDE. This also includes patched eclipse plugins.
+Description:Make RT IDE. This also includes patched eclipse plugins.
 
-Package:base-ide-product
+Package:rt-ide-product
 OS:macos-64
 Build-host-os:ubuntu-64
 Build-dependency:eclipse-pde [ubuntu-64]
 Install-dependency:version-manager [macos-64]
-Description:Make base IDE. This also includes patched eclipse plugins
+Description:Make RT IDE. This also includes patched eclipse plugins
diff --git a/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/BUILD_INFO.txt b/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/BUILD_INFO.txt
deleted file mode 100644 (file)
index aeb74a0..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-Native Build Info:
-------------------
-
-platform:         x86_64-unknown-linux-gnu
-built by:         martin.oberhuber@windriver.com
-build date:       18-Apr-2007
-OS Name:          openSUSE 10.2 (X86-64)
-OS Version:       Linux osgiliath 2.6.18.8-0.1-default #1 SMP x86_64 GNU/Linux 
-Compiler version: gcc-4.1.2 20061115 (prerelease) (SUSE Linux)
-Compiler config:  configure --enable-threads=posix --enable-ssp --disable-libssp \
-                    --enable-shared --enable-__cxa_atexit --without-system-libunwind \
-                    --with-cpu=generic
-
-build script:
--------------
-#!/bin/sh
-mkdir build-osgiliath
-cd build-osgiliath
-../configure --disable-lockfiles
-make
-cp x86_64-unknown-linux-gnu/.libs/*.so $OUTDIR
diff --git a/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/META-INF/MANIFEST.MF b/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/META-INF/MANIFEST.MF
deleted file mode 100644 (file)
index 7100702..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Ant-Version: Apache Ant 1.7.0
-Created-By: 1.5.0_12-b04 (Sun Microsystems Inc.)
-Bundle-Name: %fragmentName
-Bundle-Vendor: %providerName
-Bundle-ManifestVersion: 2
-Fragment-Host: gnu.io.rxtx;bundle-version="[2.1.7,2.2.0)"
-Bundle-SymbolicName: gnu.io.rxtx.linux.x86_64
-Bundle-Localization: fragment
-Eclipse-PlatformFilter: (& (osgi.os=linux) (osgi.arch=x86_64))
-Bundle-Version: 2.1.7.3_v20071015
-
diff --git a/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/META-INF/eclipse.inf b/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/META-INF/eclipse.inf
deleted file mode 100644 (file)
index 92ffed2..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#Processed using Jarprocessor
-pack200.conditioned = true
diff --git a/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/about.html b/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/about.html
deleted file mode 100644 (file)
index 0adc920..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-This is an unmodified binary release of RXTX-2.1-7r2 as downloaded
-from <a href="http://www.rxtx.org">http://www.rxtx.org</a>, with 
-the following exception:
-<ul>
-  <li>Linux native library was built without lockfiles (contrary to
-      the original distribution) in order to allow easier use. See 
-      the file <a href="BUILD_INFO.txt">BUILD_INFO.txt</a> for details.</li>
-</ul>
-
-<h3>License</h3>
-<pre>
-RXTX License v 2.1 - LGPL v 2.1 + Linking Over Controlled Interface.
-RXTX is a native interface to serial ports in java.
-
-Copyright 1997-2007 by Trent Jarvi <a href="mailto:tjarvi@qbang.org">tjarvi@qbang.org</a> and others who
-actually wrote it.  See individual source files for more information.
-
-A copy of the LGPL v 2.1 may be found at
-<a href="http://www.gnu.org/licenses/lgpl.txt">http://www.gnu.org/licenses/lgpl.txt</a> on March 4th 2007.  A copy is
-<a href="about_files/lgpl.txt">here</a> for your convenience.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Lesser General Public License for more details.
-
-An executable that contains no derivative of any portion of RXTX, but
-is designed to work with RXTX by being dynamically linked with it,
-is considered a "work that uses the Library" subject to the terms and
-conditions of the GNU Lesser General Public License.
-
-The following has been added to the RXTX License to remove
-any confusion about linking to RXTX.   We want to allow in part what
-section 5, paragraph 2 of the LGPL does not permit in the special
-case of linking over a controlled interface.  The intent is to add a
-Java Specification Request or standards body defined interface in the 
-future as another exception but one is not currently available.
-
-<a href="http://www.fsf.org/licenses/gpl-faq.html#LinkingOverControlledInterface">http://www.fsf.org/licenses/gpl-faq.html#LinkingOverControlledInterface</a>
-
-As a special exception, the copyright holders of RXTX give you
-permission to link RXTX with independent modules that communicate with
-RXTX solely through the Sun Microsytems CommAPI interface version 2,
-regardless of the license terms of these independent modules, and to copy
-and distribute the resulting combined work under terms of your choice,
-provided that every copy of the combined work is accompanied by a complete
-copy of the source code of RXTX (the version of RXTX used to produce the
-combined work), being distributed under the terms of the GNU Lesser General
-Public License plus this exception.  An independent module is a
-module which is not derived from or based on RXTX.
-
-Note that people who make modified versions of RXTX are not obligated
-to grant this special exception for their modified versions; it is
-their choice whether to do so.  The GNU Lesser General Public License
-gives permission to release a modified version without this exception; this
-exception also makes it possible to release a modified version which
-carries forward this exception.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-All trademarks belong to their respective owners.
-</pre>
-</body>
-</html>
diff --git a/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/about_files/lgpl.txt b/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/about_files/lgpl.txt
deleted file mode 100644 (file)
index 5ab7695..0000000
+++ /dev/null
@@ -1,504 +0,0 @@
-                 GNU LESSER GENERAL PUBLIC LICENSE
-                      Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-\f
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-\f
-                 GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-\f
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-\f
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-\f
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-\f
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-\f
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-\f
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                           NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/fragment.properties b/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/fragment.properties
deleted file mode 100644 (file)
index 856ddad..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-################################################################################
-# Copyright (c) 2007 Wind River Systems, Inc.
-# 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: 
-# Martin Oberhuber - initial API and implementation 
-################################################################################
-fragmentName=RXTX for Linux x86_64
-providerName=RXTX.org
diff --git a/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/os/linux/x86_64/librxtxParallel.so b/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/os/linux/x86_64/librxtxParallel.so
deleted file mode 100644 (file)
index b6f8135..0000000
Binary files a/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/os/linux/x86_64/librxtxParallel.so and /dev/null differ
diff --git a/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/os/linux/x86_64/librxtxSerial.so b/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/os/linux/x86_64/librxtxSerial.so
deleted file mode 100644 (file)
index 470dbfa..0000000
Binary files a/rtosRXTX/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/os/linux/x86_64/librxtxSerial.so and /dev/null differ
diff --git a/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/META-INF/MANIFEST.MF b/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/META-INF/MANIFEST.MF
deleted file mode 100644 (file)
index 37f02ea..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Ant-Version: Apache Ant 1.7.0
-Created-By: 1.5.0_12-b04 (Sun Microsystems Inc.)
-Bundle-Name: %pluginName
-Bundle-ManifestVersion: 2
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: gnu.io.rxtx.source
-Bundle-Localization: plugin
-Bundle-Version: 2.1.7.4_v20071016
-
diff --git a/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/META-INF/eclipse.inf b/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/META-INF/eclipse.inf
deleted file mode 100644 (file)
index 92ffed2..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#Processed using Jarprocessor
-pack200.conditioned = true
diff --git a/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/about.html b/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/about.html
deleted file mode 100644 (file)
index 726bf68..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-<p>June 5, 2007</p>    
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-<h3>Source Code</h3>
-
-<p>This plug-in contains source code zip files ("Source Zips") that correspond to binary content
-in other plug-ins. These Source Zips may be distributed under different license agreements and/or notices.
-Details about these license agreements and notices are contained in "about.html" files ("Abouts") located
-in sub-directories in the src/ directory of this plug-in. Such Abouts govern your use of the Source Zips
-in that directory, not the EPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/plugin.properties b/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/plugin.properties
deleted file mode 100644 (file)
index f5c58ae..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-################################################################################
-# Copyright (c) 2007 Wind River Systems, Inc.
-# 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: 
-# Martin Oberhuber - initial API and implementation 
-################################################################################
-pluginName=RXTX\r Source Bundle
-providerName=RXTX.org
\ No newline at end of file
diff --git a/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/plugin.xml b/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/plugin.xml
deleted file mode 100644 (file)
index be8a747..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-       <extension point="org.eclipse.pde.core.source">
-               <location path="src"/>
-       </extension>
-</plugin>
\ No newline at end of file
diff --git a/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/src/gnu.io.rxtx_2.1.7.4_v20071016/about.html b/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/src/gnu.io.rxtx_2.1.7.4_v20071016/about.html
deleted file mode 100644 (file)
index 099ace0..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-This is an unmodified release of RXTX-2.1-7r2 as downloaded
-from <a href="http://www.rxtx.org">http://www.rxtx.org</a>, with 
-the following exceptions:
-<ul>
-  <li>RXTXCommDriver.java v1.16.2.57 was compiled from RXTX CVS and included 
-      in order to support disabling version print on startup (set System Property
-      <tt>-Dgnu.io.rxtx.NoVersionOutput=true</tt>). This is RXTX 
-      <a href="http://bugzilla.qbang.org/show_bug.cgi?id=71">bug 71</a>.</li>
-  <li>CommPortIdentifier.java: Include the Fix for RXTX
-      <a href="http://bugzilla.qbang.org/show_bug.cgi?id=83">bug 83</a>
-      due to which CommPortOwnership events are lost. The original 
-      fix from bugzilla is included in this version of the library.</li>
-</ul>
-
-<h3>License</h3>
-<pre>
-RXTX License v 2.1 - LGPL v 2.1 + Linking Over Controlled Interface.
-RXTX is a native interface to serial ports in java.
-
-Copyright 1997-2007 by Trent Jarvi <a href="mailto:tjarvi@qbang.org">tjarvi@qbang.org</a> and others who
-actually wrote it.  See individual source files for more information.
-
-A copy of the LGPL v 2.1 may be found at
-<a href="http://www.gnu.org/licenses/lgpl.txt">http://www.gnu.org/licenses/lgpl.txt</a> on March 4th 2007.  A copy is
-<a href="about_files/lgpl.txt">here</a> for your convenience.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Lesser General Public License for more details.
-
-An executable that contains no derivative of any portion of RXTX, but
-is designed to work with RXTX by being dynamically linked with it,
-is considered a "work that uses the Library" subject to the terms and
-conditions of the GNU Lesser General Public License.
-
-The following has been added to the RXTX License to remove
-any confusion about linking to RXTX.   We want to allow in part what
-section 5, paragraph 2 of the LGPL does not permit in the special
-case of linking over a controlled interface.  The intent is to add a
-Java Specification Request or standards body defined interface in the 
-future as another exception but one is not currently available.
-
-<a href="http://www.fsf.org/licenses/gpl-faq.html#LinkingOverControlledInterface">http://www.fsf.org/licenses/gpl-faq.html#LinkingOverControlledInterface</a>
-
-As a special exception, the copyright holders of RXTX give you
-permission to link RXTX with independent modules that communicate with
-RXTX solely through the Sun Microsytems CommAPI interface version 2,
-regardless of the license terms of these independent modules, and to copy
-and distribute the resulting combined work under terms of your choice,
-provided that every copy of the combined work is accompanied by a complete
-copy of the source code of RXTX (the version of RXTX used to produce the
-combined work), being distributed under the terms of the GNU Lesser General
-Public License plus this exception.  An independent module is a
-module which is not derived from or based on RXTX.
-
-Note that people who make modified versions of RXTX are not obligated
-to grant this special exception for their modified versions; it is
-their choice whether to do so.  The GNU Lesser General Public License
-gives permission to release a modified version without this exception; this
-exception also makes it possible to release a modified version which
-carries forward this exception.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-All trademarks belong to their respective owners.
-</pre>
-</body>
-</html>
diff --git a/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/src/gnu.io.rxtx_2.1.7.4_v20071016/about_files/lgpl.txt b/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/src/gnu.io.rxtx_2.1.7.4_v20071016/about_files/lgpl.txt
deleted file mode 100644 (file)
index 5ab7695..0000000
+++ /dev/null
@@ -1,504 +0,0 @@
-                 GNU LESSER GENERAL PUBLIC LICENSE
-                      Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-\f
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-\f
-                 GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-\f
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-\f
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-\f
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-\f
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-\f
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-\f
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                           NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/src/gnu.io.rxtx_2.1.7.4_v20071016/src.zip b/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/src/gnu.io.rxtx_2.1.7.4_v20071016/src.zip
deleted file mode 100644 (file)
index 044fcbd..0000000
Binary files a/rtosRXTX/gnu.io.rxtx.source_2.1.7.4_v20071016/src/gnu.io.rxtx_2.1.7.4_v20071016/src.zip and /dev/null differ
diff --git a/rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016.jar b/rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016.jar
deleted file mode 100644 (file)
index 4d8b572..0000000
Binary files a/rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016.jar and /dev/null differ
diff --git a/rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016/about.html b/rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016/about.html
deleted file mode 100644 (file)
index 099ace0..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-This is an unmodified release of RXTX-2.1-7r2 as downloaded
-from <a href="http://www.rxtx.org">http://www.rxtx.org</a>, with 
-the following exceptions:
-<ul>
-  <li>RXTXCommDriver.java v1.16.2.57 was compiled from RXTX CVS and included 
-      in order to support disabling version print on startup (set System Property
-      <tt>-Dgnu.io.rxtx.NoVersionOutput=true</tt>). This is RXTX 
-      <a href="http://bugzilla.qbang.org/show_bug.cgi?id=71">bug 71</a>.</li>
-  <li>CommPortIdentifier.java: Include the Fix for RXTX
-      <a href="http://bugzilla.qbang.org/show_bug.cgi?id=83">bug 83</a>
-      due to which CommPortOwnership events are lost. The original 
-      fix from bugzilla is included in this version of the library.</li>
-</ul>
-
-<h3>License</h3>
-<pre>
-RXTX License v 2.1 - LGPL v 2.1 + Linking Over Controlled Interface.
-RXTX is a native interface to serial ports in java.
-
-Copyright 1997-2007 by Trent Jarvi <a href="mailto:tjarvi@qbang.org">tjarvi@qbang.org</a> and others who
-actually wrote it.  See individual source files for more information.
-
-A copy of the LGPL v 2.1 may be found at
-<a href="http://www.gnu.org/licenses/lgpl.txt">http://www.gnu.org/licenses/lgpl.txt</a> on March 4th 2007.  A copy is
-<a href="about_files/lgpl.txt">here</a> for your convenience.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Lesser General Public License for more details.
-
-An executable that contains no derivative of any portion of RXTX, but
-is designed to work with RXTX by being dynamically linked with it,
-is considered a "work that uses the Library" subject to the terms and
-conditions of the GNU Lesser General Public License.
-
-The following has been added to the RXTX License to remove
-any confusion about linking to RXTX.   We want to allow in part what
-section 5, paragraph 2 of the LGPL does not permit in the special
-case of linking over a controlled interface.  The intent is to add a
-Java Specification Request or standards body defined interface in the 
-future as another exception but one is not currently available.
-
-<a href="http://www.fsf.org/licenses/gpl-faq.html#LinkingOverControlledInterface">http://www.fsf.org/licenses/gpl-faq.html#LinkingOverControlledInterface</a>
-
-As a special exception, the copyright holders of RXTX give you
-permission to link RXTX with independent modules that communicate with
-RXTX solely through the Sun Microsytems CommAPI interface version 2,
-regardless of the license terms of these independent modules, and to copy
-and distribute the resulting combined work under terms of your choice,
-provided that every copy of the combined work is accompanied by a complete
-copy of the source code of RXTX (the version of RXTX used to produce the
-combined work), being distributed under the terms of the GNU Lesser General
-Public License plus this exception.  An independent module is a
-module which is not derived from or based on RXTX.
-
-Note that people who make modified versions of RXTX are not obligated
-to grant this special exception for their modified versions; it is
-their choice whether to do so.  The GNU Lesser General Public License
-gives permission to release a modified version without this exception; this
-exception also makes it possible to release a modified version which
-carries forward this exception.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-All trademarks belong to their respective owners.
-</pre>
-</body>
-</html>
diff --git a/rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016/about_files/lgpl.txt b/rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016/about_files/lgpl.txt
deleted file mode 100644 (file)
index 5ab7695..0000000
+++ /dev/null
@@ -1,504 +0,0 @@
-                 GNU LESSER GENERAL PUBLIC LICENSE
-                      Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-\f
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-\f
-                 GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-\f
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-\f
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-\f
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-\f
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-\f
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-\f
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                           NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016/src.zip b/rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016/src.zip
deleted file mode 100644 (file)
index 044fcbd..0000000
Binary files a/rtosRXTX/gnu.io.rxtx_2.1.7.4_v20071016/src.zip and /dev/null differ
diff --git a/rtosRXTX/librxtxParallel.so b/rtosRXTX/librxtxParallel.so
deleted file mode 100644 (file)
index b6f8135..0000000
Binary files a/rtosRXTX/librxtxParallel.so and /dev/null differ
diff --git a/rtosRXTX/librxtxSerial.so b/rtosRXTX/librxtxSerial.so
deleted file mode 100644 (file)
index 470dbfa..0000000
Binary files a/rtosRXTX/librxtxSerial.so and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.classpath b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.classpath
deleted file mode 100644 (file)
index ad32c83..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-       <classpathentry kind="src" path="src"/>
-       <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.gitignore b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.gitignore
deleted file mode 100644 (file)
index ae3c172..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.options b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.options
deleted file mode 100644 (file)
index 7a6120d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-org.eclipse.tm.terminal.connector.serial/debugmode = 0
-org.eclipse.tm.terminal.connector.serial/trace/serialLinePanel = false
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.project b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.project
deleted file mode 100644 (file)
index f7f32b2..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-       <name>org.eclipse.tm.terminal.connector.serial</name>
-       <comment></comment>
-       <projects>
-       </projects>
-       <buildSpec>
-               <buildCommand>
-                       <name>org.eclipse.jdt.core.javabuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.ManifestBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.SchemaBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-       </buildSpec>
-       <natures>
-               <nature>org.eclipse.pde.PluginNature</nature>
-               <nature>org.eclipse.jdt.core.javanature</nature>
-               <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-       </natures>
-</projectDescription>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.settings/org.eclipse.jdt.core.prefs b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644 (file)
index 4754bba..0000000
+++ /dev/null
@@ -1,362 +0,0 @@
-#Wed Oct 19 12:10:57 CEST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=0
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=100
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=4
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=4
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=true
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=true
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=true
-org.eclipse.jdt.core.formatter.lineSplit=100
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.settings/org.eclipse.jdt.ui.prefs b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644 (file)
index 0d73226..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Target Explorer Java STD
-formatter_settings_version=12
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_type_arguments=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=false
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-sp_cleanup.use_type_arguments=false
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.settings/org.eclipse.pde.prefs b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/.settings/org.eclipse.pde.prefs
deleted file mode 100644 (file)
index cf80c8b..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=1
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/META-INF/MANIFEST.MF b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/META-INF/MANIFEST.MF
deleted file mode 100644 (file)
index 4b027b2..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.tm.terminal.connector.serial;singleton:=true
-Bundle-Version: 4.2.0.qualifier
-Bundle-Activator: org.eclipse.tm.terminal.connector.serial.activator.UIPlugin
-Bundle-Vendor: %providerName
-Require-Bundle: org.eclipse.core.expressions;bundle-version="3.4.400",
- org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.equinox.security;bundle-version="1.1.100",
- org.eclipse.tm.terminal.view.core;bundle-version="4.0.0";resolution:=optional,
- org.eclipse.tm.terminal.view.ui;bundle-version="4.1.0";resolution:=optional,
- org.eclipse.tm.terminal.control;bundle-version="4.0.0",
- org.eclipse.ui;bundle-version="3.8.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Export-Package: org.eclipse.tm.terminal.connector.serial.activator;x-internal:=true,
- org.eclipse.tm.terminal.connector.serial.connector,
- org.eclipse.tm.terminal.connector.serial.controls,
- org.eclipse.tm.terminal.connector.serial.interfaces,
- org.eclipse.tm.terminal.connector.serial.launcher,
- org.eclipse.tm.terminal.connector.serial.nls;x-internal:=true
-Import-Package: gnu.io;resolution:=optional
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/about.html b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/about.html
deleted file mode 100644 (file)
index 0f07cf0..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-<p>May 24, 2012</p>    
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/build.properties b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/build.properties
deleted file mode 100644 (file)
index 3333540..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2012, 2015 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
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/plugin.properties b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/plugin.properties
deleted file mode 100644 (file)
index 17f52a5..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-##################################################################################
-# Copyright (c) 2011, 2015 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
-##################################################################################
-
-pluginName = Terminal Serial Connector
-providerName = Eclipse.org - Target Management
-
-# ----- Terminal Launcher Delegates -----
-
-SerialLauncherDelegate.label=Serial Terminal
-
-# ----- Terminal Connectors -----
-
-SerialConnector.label = Serial
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/plugin.xml b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/plugin.xml
deleted file mode 100644 (file)
index b61259b..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
-<!-- Terminal connector contributions -->
-   <extension point="org.eclipse.tm.terminal.control.connectors">
-      <connector
-            name="%SerialConnector.label" 
-            id="org.eclipse.tm.terminal.connector.serial.SerialConnector"
-            class="org.eclipse.tm.terminal.connector.serial.connector.SerialConnector"/>
-   </extension>
-   
-<!-- Terminal launcher delegate contributions -->
-   <extension point="org.eclipse.tm.terminal.view.ui.launcherDelegates">
-      <delegate
-            class="org.eclipse.tm.terminal.connector.serial.launcher.SerialLauncherDelegate"
-            id="org.eclipse.tm.terminal.connector.serial.launcher.serial"
-            label="%SerialLauncherDelegate.label">
-            <enablement>
-               <with variable="selection">
-                  <count value="1"/>
-                  <iterate operator="and" ifEmpty="false">
-                     <test
-                           forcePluginActivation="true"
-                           property="org.eclipse.tm.terminal.view.core.hasContextPropertiesProvider"
-                           value="true"/>
-                  </iterate>
-               </with>
-            </enablement>
-      </delegate>
-   </extension>
-</plugin>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/pom.xml b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/pom.xml
deleted file mode 100644 (file)
index 7a8661f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.tm.terminal</groupId>
-    <artifactId>org.eclipse.tm.terminal.maven-build</artifactId>
-    <version>4.2.0-SNAPSHOT</version>
-    <relativePath>../../admin/pom-build.xml</relativePath>
-  </parent>
-
-  <version>4.2.0-SNAPSHOT</version>
-  <artifactId>org.eclipse.tm.terminal.connector.serial</artifactId>
-  <packaging>eclipse-plugin</packaging>
-</project>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/activator/UIPlugin.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/activator/UIPlugin.java
deleted file mode 100644 (file)
index 8cb1247..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.connector.serial.activator;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.tm.terminal.view.core.tracing.TraceHandler;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class UIPlugin extends AbstractUIPlugin {
-       // The shared instance
-       private static UIPlugin plugin;
-       // The trace handler instance
-       private static volatile TraceHandler traceHandler;
-
-       /**
-        * The constructor
-        */
-       public UIPlugin() {
-       }
-
-       /**
-        * Returns the shared instance
-        *
-        * @return the shared instance
-        */
-       public static UIPlugin getDefault() {
-               return plugin;
-       }
-
-       /**
-        * Convenience method which returns the unique identifier of this plugin.
-        */
-       public static String getUniqueIdentifier() {
-               if (getDefault() != null && getDefault().getBundle() != null) {
-                       return getDefault().getBundle().getSymbolicName();
-               }
-               return "org.eclipse.tm.terminal.connector.serial"; //$NON-NLS-1$
-       }
-
-       /**
-        * Returns the bundles trace handler.
-        *
-        * @return The bundles trace handler.
-        */
-       public static TraceHandler getTraceHandler() {
-               if (traceHandler == null) {
-                       traceHandler = new TraceHandler(getUniqueIdentifier());
-               }
-               return traceHandler;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-        */
-       @Override
-    public void start(BundleContext context) throws Exception {
-               super.start(context);
-               plugin = this;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-        */
-       @Override
-    public void stop(BundleContext context) throws Exception {
-               plugin = null;
-               super.stop(context);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#initializeImageRegistry(org.eclipse.jface.resource.ImageRegistry)
-        */
-       @Override
-       protected void initializeImageRegistry(ImageRegistry registry) {
-       }
-
-       /**
-        * Loads the image registered under the specified key from the image
-        * registry and returns the <code>Image</code> object instance.
-        *
-        * @param key The key the image is registered with.
-        * @return The <code>Image</code> object instance or <code>null</code>.
-        */
-       public static Image getImage(String key) {
-               return getDefault().getImageRegistry().get(key);
-       }
-
-       /**
-        * Loads the image registered under the specified key from the image
-        * registry and returns the <code>ImageDescriptor</code> object instance.
-        *
-        * @param key The key the image is registered with.
-        * @return The <code>ImageDescriptor</code> object instance or <code>null</code>.
-        */
-       public static ImageDescriptor getImageDescriptor(String key) {
-               return getDefault().getImageRegistry().getDescriptor(key);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/ISerialSettings.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/ISerialSettings.java
deleted file mode 100644 (file)
index 5986785..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.serial.connector;
-
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-
-public interface ISerialSettings {
-
-       String getSerialPort();
-       int getBaudRate();
-       int getDataBits();
-       int getStopBits();
-       int getParity();
-       int getFlowControl();
-       int getTimeout();
-       String getSummary();
-       void load(ISettingsStore store);
-       void save(ISettingsStore store);
-}
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialConnectWorker.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialConnectWorker.java
deleted file mode 100644 (file)
index 569273a..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - extracted from TerminalControl
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [207158] improve error message when port not available
- * Martin Oberhuber (Wind River) - [208029] COM port not released after quick disconnect/reconnect
- * Martin Oberhuber (Wind River) - [206884] Update Terminal Ownership ID to "org.eclipse.tm.terminal.serial"
- * Martin Oberhuber (Wind River) - [221184] Redesign Serial Terminal Ownership Handling
- * Michael Scharf (Wind River) - [262996] get rid of TerminalState.OPENED
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.serial.connector;
-
-import gnu.io.CommPortIdentifier;
-import gnu.io.NoSuchPortException;
-import gnu.io.PortInUseException;
-import gnu.io.SerialPort;
-
-import java.util.Arrays;
-import java.util.Enumeration;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.connector.serial.nls.Messages;
-
-public class SerialConnectWorker extends Thread {
-    /* default */ final ITerminalControl fControl;
-       private final SerialConnector fConn;
-
-       /**
-        * UNDER CONSTRUCTION
-        * @param conn TODO
-        * @param control TODO
-        */
-       public SerialConnectWorker(SerialConnector conn, ITerminalControl control) {
-               super();
-               fControl = control;
-               fConn = conn;
-       }
-
-       /**
-        * Adds the named port to the name of known ports to rxtx
-        * @param name
-        */
-       void addPort(String name) {
-               // Rxtx either takes the connection from the properties OR using
-               // the port scan.
-               // Unfortunately, setting gnu.io.rxtx.SerialPorts only temporarily does not
-               // work, because rxtx closes connections that are unknown.
-               // The only solution I could come up with: add the known connections
-               // to the gnu.io.rxtx.SerialPorts property....
-               final String GNU_IO_RXTX_SERIAL_PORTS = "gnu.io.rxtx.SerialPorts"; //$NON-NLS-1$
-               String sep = System.getProperty("path.separator", ":"); //$NON-NLS-1$//$NON-NLS-2$
-               // get the existing names
-               String names = System.getProperty(GNU_IO_RXTX_SERIAL_PORTS);
-               if (names == null) {
-                       StringBuffer buffer=new StringBuffer();
-                       boolean sepNeeded=false;
-                       // When we add a port to this property, rxtx forgets the
-                       // ports it finds by scanning the system.
-
-                       // iterate over the known ports and add them to the property
-                       Enumeration<?> portIdEnum= CommPortIdentifier.getPortIdentifiers();
-                       while (portIdEnum.hasMoreElements()) {
-                               CommPortIdentifier identifier = (CommPortIdentifier) portIdEnum.nextElement();
-                               if (identifier.getPortType() == CommPortIdentifier.PORT_SERIAL) {
-                                       if(sepNeeded)
-                                               buffer.append(sep);
-                                       else
-                                               sepNeeded=true;
-                                       buffer.append(identifier.getName());
-                               }
-                       }
-                       // append our new port
-                       if(sepNeeded)
-                               buffer.append(sep);
-                       buffer.append(name);
-
-                       System.setProperty(GNU_IO_RXTX_SERIAL_PORTS,buffer.toString());
-               } else if (!Arrays.asList(names.split(sep)).contains(name)) {
-                       // the list does not contain the name, therefore we add it
-                       // since there is at least one name in the list, we append it
-                       System.setProperty(GNU_IO_RXTX_SERIAL_PORTS, names + sep + name);
-               } else {
-                       // nothing to do -- should never happen...
-                       return;
-               }
-               // Reinitialize the ports because we have changed the list of known ports
-               CommPortIdentifier.getPortIdentifiers();
-       }
-
-       /**
-        * Return the ID that this connector uses for RXTX Comm Ownership Handling.
-        *
-        * Note that this was changed in Terminal 2.0 as per
-        * https://bugs.eclipse.org/bugs/show_bug.cgi?id=206884 - previous versions
-        * of the serial terminal connector used a different string,
-        * "org.eclipse.tm.internal.terminal.serial".
-        *
-        * @since org.eclipse.tm.terminal.serial 2.0
-        * @return ownership ID, "org.eclipse.tm.terminal.serial"
-        */
-       public static final String getOwnershipId() {
-               return "org.eclipse.tm.terminal.serial"; //$NON-NLS-1$
-       }
-
-       @Override
-    public void run() {
-               String portName=null;
-               final String strID = getOwnershipId();
-               SerialPort serialPort = null;
-               try {
-                       ISerialSettings s=fConn.getSerialSettings();
-                       portName=s.getSerialPort();
-                       try {
-                               fConn.setSerialPortIdentifier(CommPortIdentifier.getPortIdentifier(portName));
-                       } catch (NoSuchPortException e) {
-                               // let's try
-                               addPort(portName);
-                               fConn.setSerialPortIdentifier(CommPortIdentifier.getPortIdentifier(portName));
-                       }
-                       fConn.setSerialPortHandler(new SerialPortHandler(fConn,fControl));
-                       fConn.setSerialPortIdentifier(CommPortIdentifier.getPortIdentifier(portName));
-
-                       //Bug 221184: Warn about serial port already in use
-                       String currentOwner = fConn.getSerialPortIdentifier().getCurrentOwner();
-                       if (strID.equals(currentOwner)) {
-                               currentOwner = Messages.SerialConnectWorker_ANOTHER_TERMINAL;
-                       }
-                       final int[] answer = { SWT.YES };
-                       final String fPortName = portName;
-                       final String fCurrentOwner = currentOwner;
-                       if (currentOwner != null) {
-                               Display.getDefault().syncExec(new Runnable() {
-                                       @Override
-                    public void run() {
-                                               MessageBox mb = new MessageBox(fControl.getShell(), SWT.ICON_QUESTION | SWT.YES | SWT.NO);
-                                               mb.setText(Messages.SerialConnectWorker_PROP_TITLE);
-                                               mb.setMessage(NLS.bind(Messages.SerialConnectWorker_PORT_IN_USE, fPortName, fCurrentOwner));
-                                               answer[0] = mb.open();
-                                       }
-                               });
-                       }
-
-                       if (answer[0] != SWT.YES) {
-                               // don't try to steal the port
-                               fControl.setState(TerminalState.CLOSED);
-                               fConn.setSerialPortHandler(null);
-                               return;
-                       }
-
-                       // Try to steal the port -- may throw PortInUseException
-                       int timeoutInMs = s.getTimeout() * 1000;
-                       serialPort = (SerialPort) fConn.getSerialPortIdentifier().open(strID, timeoutInMs);
-                       serialPort.setSerialPortParams(s.getBaudRate(), s.getDataBits(), s.getStopBits(), s.getParity());
-                       serialPort.setFlowControlMode(s.getFlowControl());
-                       serialPort.addEventListener(fConn.getSerialPortHandler());
-                       serialPort.notifyOnDataAvailable(true);
-                       fConn.getSerialPortIdentifier().addPortOwnershipListener(fConn.getSerialPortHandler());
-                       fConn.setSerialPort(serialPort);
-                       if (fCurrentOwner != null) {
-                               fControl.displayTextInTerminal(NLS.bind(Messages.SerialConnectWorker_PORT_STOLEN, fPortName, fCurrentOwner));
-
-                       }
-                       fControl.setState(TerminalState.CONNECTED);
-
-               } catch (PortInUseException portInUseException) {
-                       fControl.setState(TerminalState.CLOSED);
-                       String theOwner = portInUseException.currentOwner;
-                       if (strID.equals(theOwner)) {
-                               theOwner = Messages.SerialConnectWorker_ANOTHER_TERMINAL;
-                       }
-                       fControl.displayTextInTerminal(NLS.bind(Messages.SerialConnectWorker_PORT_NOT_STOLEN, portName, theOwner));
-               } catch (NoSuchPortException e) {
-                       fControl.setState(TerminalState.CLOSED);
-                       String msg=e.getMessage();
-                       if(msg==null)
-                               msg=portName;
-                       fControl.displayTextInTerminal(NLS.bind(Messages.SerialConnectWorker_NO_SUCH_PORT, msg));
-
-               } catch (Exception exception) {
-                       Logger.logException(exception);
-                       if (serialPort!=null) {
-                               //Event listener is removed as part of close(),
-                               //but exceptions need to be caught to ensure that close() really succeeds
-                               try {
-                                       serialPort.removeEventListener();
-                                       Thread.sleep(50); //allow a little time for RXTX Native to catch up - makes stuff more stable
-                               } catch(Exception e) {
-                                       Logger.logException(e);
-                               }
-                               serialPort.close();
-                               fConn.getSerialPortIdentifier().removePortOwnershipListener(fConn.getSerialPortHandler());
-                       }
-                       fControl.setState(TerminalState.CLOSED);
-               } finally {
-                       fConn.doneConnect();
-               }
-       }
-}
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialConnector.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialConnector.java
deleted file mode 100644 (file)
index 9c3b2fc..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - extracted from TerminalControl
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [206892] Don't connect if already connecting
- * Martin Oberhuber (Wind River) - [208029] COM port not released after quick disconnect/reconnect
- * Martin Oberhuber (Wind River) - [225853][api] Provide more default functionality in TerminalConnectorImpl
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.serial.connector;
-
-import gnu.io.CommPortIdentifier;
-import gnu.io.SerialPort;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.internal.terminal.provisional.api.NullSettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl;
-import org.eclipse.tm.terminal.connector.serial.activator.UIPlugin;
-import org.eclipse.tm.terminal.connector.serial.nls.Messages;
-
-public class SerialConnector extends TerminalConnectorImpl {
-       private OutputStream fOutputStream;
-       private InputStream fInputStream;
-       private SerialPort fSerialPort;
-    private CommPortIdentifier fSerialPortIdentifier;
-       private SerialPortHandler fTerminalSerialPortHandler;
-       private SerialSettings fSettings;
-       private SerialConnectWorker fConnectWorker = null;
-       /* default */ volatile boolean fDisconnectGoingOn = false;
-
-       public SerialConnector() {
-       }
-       @Override
-    public void initialize() throws Exception {
-               try {
-                       fSettings=new SerialSettings();
-               } catch (NoClassDefFoundError e) {
-                       // tell the user how to install the library
-                       throw new CoreException(new Status(IStatus.WARNING,UIPlugin.getUniqueIdentifier(),0, Messages.SerialConnector_Error_LiberayNotInstalled,e));
-               }
-       }
-       @Override
-    public void connect(ITerminalControl control) {
-               super.connect(control);
-               synchronized(this) {
-                       if (fConnectWorker!=null || fDisconnectGoingOn) {
-                               //avoid multiple background connect/disconnect threads at the same time
-                               return;
-                       }
-                       fConnectWorker = new SerialConnectWorker(this, control);
-               }
-               fControl.setState(TerminalState.CONNECTING);
-               fConnectWorker.start();
-       }
-       /**
-        * Indicate that the connectWorker is finished.
-        */
-       void doneConnect() {
-               synchronized(this) {
-                       fConnectWorker = null;
-               }
-       }
-       @Override
-    public void doDisconnect() {
-               synchronized(this) {
-                       //avoid multiple background connect/disconnect threads at the same time
-                       if (fConnectWorker!=null) {
-                               fConnectWorker.interrupt();
-                               return;
-                       } else if (fDisconnectGoingOn) {
-                               return;
-                       }
-                       fDisconnectGoingOn = true;
-               }
-
-               // Fix for SPR 112422.  When output is being received from the serial port, the
-               // below call to removePortOwnershipListener() attempts to lock the serial port
-               // object, but that object is already locked by another Terminal view thread
-               // waiting for the SWT display thread to process a syncExec() call.  Since this
-               // method is called on the display thread, the display thread is waiting to
-               // lock the serial port object and the thread holding the serial port object
-               // lock is waiting for the display thread to process a syncExec() call, so the
-               // two threads end up deadlocked, which hangs the Workbench GUI.
-               //
-               // The solution is to spawn a short-lived worker thread that calls
-               // removePortOwnershipListener(), thus preventing the display thread from
-               // deadlocking with the other Terminal view thread.
-
-               new Thread("Terminal View Serial Port Disconnect Worker") //$NON-NLS-1$
-               {
-                       @Override
-            public void run() {
-                               try {
-                                       if (getSerialPortIdentifier() != null) {
-                                               try {
-                                                       getSerialPortIdentifier()
-                                                               .removePortOwnershipListener(getSerialPortHandler());
-                                               } catch(Exception e) {
-                                                       Logger.logException(e);
-                                               }
-                                       }
-
-                                       if (getSerialPort() != null) {
-                                               //Event listener is removed as part of close(),
-                                               //but exceptions need to be caught to ensure that close() really succeeds
-                                               try {
-                                                       getSerialPort().removeEventListener();
-                                                       Thread.sleep(50); //allow a little time for RXTX Native to catch up - makes stuff more stable
-                                               } catch(Exception e) {
-                                                       Logger.logException(e);
-                                               }
-                                               Logger.log("Calling close() on serial port ..."); //$NON-NLS-1$
-                                               getSerialPort().close();
-                                       }
-
-                                       if (getInputStream() != null) {
-                                               try {
-                                                       getInputStream().close();
-                                               } catch (Exception exception) {
-                                                       Logger.logException(exception);
-                                               }
-                                       }
-
-                                       if (getTerminalToRemoteStream() != null) {
-                                               try {
-                                                       getTerminalToRemoteStream().close();
-                                               } catch (Exception exception) {
-                                                       Logger.logException(exception);
-                                               }
-                                       }
-
-                                       setSerialPortIdentifier(null);
-                                       cleanSerialPort();
-                                       setSerialPortHandler(null);
-                               } catch(Exception e) {
-                                       Logger.logException(e);
-                               } finally {
-                                       fDisconnectGoingOn = false;
-                               }
-                       }
-
-               }.start();
-       }
-       public InputStream getInputStream() {
-               return fInputStream;
-       }
-       @Override
-    public OutputStream getTerminalToRemoteStream() {
-               return fOutputStream;
-       }
-       private void setInputStream(InputStream inputStream) {
-               fInputStream = inputStream;
-       }
-       private void setOutputStream(OutputStream outputStream) {
-               fOutputStream = outputStream;
-       }
-       @Override
-    public void setTerminalSize(int newWidth, int newHeight) {
-               // TODO
-       }
-       protected SerialPort getSerialPort() {
-               return fSerialPort;
-       }
-
-       /**
-        * sets the socket to null
-        */
-       void cleanSerialPort() {
-               fSerialPort=null;
-               setInputStream(null);
-               setOutputStream(null);
-       }
-
-       protected void setSerialPort(SerialPort serialPort) throws IOException {
-               cleanSerialPort();
-               if(serialPort!=null) {
-                       fSerialPort = serialPort;
-                       setOutputStream(serialPort.getOutputStream());
-                       setInputStream(serialPort.getInputStream());
-               }
-       }
-       protected CommPortIdentifier getSerialPortIdentifier() {
-               return fSerialPortIdentifier;
-       }
-       protected void setSerialPortIdentifier(CommPortIdentifier serialPortIdentifier) {
-               //System.out.println("setSerialPortId: "+Thread.currentThread().getName()+ " - "+serialPortIdentifier + " - "+System.currentTimeMillis());
-               fSerialPortIdentifier = serialPortIdentifier;
-       }
-       void setSerialPortHandler(SerialPortHandler serialPortHandler) {
-               fTerminalSerialPortHandler=serialPortHandler;
-       }
-       SerialPortHandler getSerialPortHandler() {
-               return fTerminalSerialPortHandler;
-       }
-       /**
-        * Return the Serial Settings.
-        *
-        * @return the settings for a concrete connection.
-        */
-       public ISerialSettings getSerialSettings() {
-               return fSettings;
-       }
-       @Override
-       public void setDefaultSettings() {
-           fSettings.load(new NullSettingsStore());
-       }
-       @Override
-    public String getSettingsSummary() {
-               return fSettings.getSummary();
-       }
-       @Override
-    public void load(ISettingsStore store) {
-               fSettings.load(store);
-       }
-       @Override
-    public void save(ISettingsStore store) {
-               fSettings.save(store);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialPortHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialPortHandler.java
deleted file mode 100644 (file)
index 4f7719c..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - extracted from TerminalControl
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [168197] Replace JFace MessagDialog by SWT MessageBox
- * Martin Oberhuber (Wind River) - [221184] Redesign Serial Terminal Ownership Handling
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.serial.connector;
-
-import gnu.io.CommPortOwnershipListener;
-import gnu.io.SerialPortEvent;
-import gnu.io.SerialPortEventListener;
-
-import java.io.IOException;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.terminal.connector.serial.nls.Messages;
-
-/**
- * UNDER CONSTRUCTION
- */
-public class SerialPortHandler implements SerialPortEventListener, CommPortOwnershipListener {
-
-    /* default */ final ITerminalControl fControl;
-       /* default */ final SerialConnector fConn;
-       protected byte[] bytes = new byte[2048];
-
-       /**
-        * UNDER CONSTRUCTION
-        * @param control TODO
-        */
-       public SerialPortHandler(SerialConnector conn,ITerminalControl control) {
-               super();
-               fControl = control;
-               fConn=conn;
-       }
-
-       // Message handlers
-
-       /**
-        * UNDER CONSTRUCTION
-        */
-       public void onSerialDataAvailable(Object data) {
-               try {
-                       while (fConn.getInputStream() != null && fConn.getInputStream().available() > 0) {
-                               int nBytes = fConn.getInputStream().read(bytes);
-                               fControl.getRemoteToTerminalOutputStream().write(bytes, 0, nBytes);
-                       }
-               } catch (IOException ex) {
-                       fControl.displayTextInTerminal(ex.getMessage());
-               } catch (Exception exception) {
-                       Logger.logException(exception);
-               }
-       }
-
-       public void onSerialOwnershipRequested(Object data) {
-               //Bug 221184: We immediately release the port on any ownership request
-               try {
-                       throw new Exception();
-               } catch (Exception e) {
-                       StackTraceElement[] elems = e.getStackTrace();
-                       final String requester = elems[elems.length - 4].getClassName();
-                       Display.getDefault().asyncExec(new Runnable() {
-                               @Override
-                public void run() {
-                                       fConn.disconnect();
-                                       String req = requester;
-                                       String myPackage = this.getClass().getPackage().getName();
-                                       if (req.startsWith(myPackage)) {
-                                               req = Messages.SerialConnectWorker_ANOTHER_TERMINAL;
-                                       }
-                                       fControl.displayTextInTerminal(NLS.bind(Messages.SerialConnectWorker_OWNERSHIP_GRANTED, req));
-                               }
-                       });
-                       fConn.disconnect();
-               }
-       }
-
-       // SerialPortEventListener interface
-       @Override
-    public void serialEvent(SerialPortEvent event) {
-               switch (event.getEventType()) {
-               case SerialPortEvent.DATA_AVAILABLE:
-                       onSerialDataAvailable(null);
-                       break;
-               }
-       }
-
-       // CommPortOwnershipListener interface
-
-       /**
-        * UNDER CONSTRUCTION
-        */
-       @Override
-    public void ownershipChange(int nType) {
-               switch (nType) {
-               case CommPortOwnershipListener.PORT_OWNERSHIP_REQUESTED:
-                       onSerialOwnershipRequested(null);
-                       break;
-               }
-       }
-}
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialProperties.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialProperties.java
deleted file mode 100644 (file)
index 1e6af9d..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - extracted from TerminalProperties
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.serial.connector;
-
-import gnu.io.CommPortIdentifier;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
-
-public class SerialProperties {
-       protected List<String> fSerialPortTable;
-       protected List<String> fBaudRateTable;
-       protected List<String> fDataBitsTable;
-       protected List<String> fStopBitsTable;
-       protected List<String> fParityTable;
-       protected List<String> fFlowControlTable;
-       protected String fDefaultConnType;
-       protected String fDefaultSerialPort;
-       protected String fDefaultBaudRate;
-       protected String fDefaultDataBits;
-       protected String fDefaultStopBits;
-       protected String fDefaultParity;
-       protected String fDefaultFlowControl;
-
-       public SerialProperties() {
-               setupProperties();
-       }
-       public List<String> getSerialPortTable() {
-               return fSerialPortTable;
-       }
-
-       public List<String> getBaudRateTable() {
-               return fBaudRateTable;
-       }
-
-       public List<String> getDataBitsTable() {
-               return fDataBitsTable;
-       }
-
-       public List<String> getStopBitsTable() {
-               return fStopBitsTable;
-       }
-
-       public List<String> getParityTable() {
-               return fParityTable;
-       }
-
-       public List<String> getFlowControlTable() {
-               return fFlowControlTable;
-       }
-       public String getDefaultConnType() {
-               return fDefaultConnType;
-       }
-
-       public String getDefaultSerialPort() {
-               return fDefaultSerialPort;
-       }
-
-       public String getDefaultBaudRate() {
-               return fDefaultBaudRate;
-       }
-
-       public String getDefaultDataBits() {
-               return fDefaultDataBits;
-       }
-
-       public String getDefaultStopBits() {
-               return fDefaultStopBits;
-       }
-
-       public String getDefaultParity() {
-               return fDefaultParity;
-       }
-
-       public String getDefaultFlowControl() {
-               return fDefaultFlowControl;
-       }
-       public String getDefaultTimeout() {
-               return "5"; //$NON-NLS-1$
-       }
-       protected void setupProperties() {
-               fSerialPortTable = new ArrayList<String>();
-               fBaudRateTable = new ArrayList<String>();
-               fDataBitsTable = new ArrayList<String>();
-               fStopBitsTable = new ArrayList<String>();
-               fParityTable = new ArrayList<String>();
-               fFlowControlTable = new ArrayList<String>();
-               fDefaultConnType = ""; //$NON-NLS-1$
-               fDefaultSerialPort = ""; //$NON-NLS-1$
-               fDefaultBaudRate = ""; //$NON-NLS-1$
-               fDefaultDataBits = ""; //$NON-NLS-1$
-               fDefaultStopBits = ""; //$NON-NLS-1$
-               fDefaultParity = ""; //$NON-NLS-1$
-               fDefaultFlowControl = ""; //$NON-NLS-1$
-
-               fBaudRateTable.add("300"); //$NON-NLS-1$
-               fBaudRateTable.add("1200"); //$NON-NLS-1$
-               fBaudRateTable.add("2400"); //$NON-NLS-1$
-               fBaudRateTable.add("4800"); //$NON-NLS-1$
-               fBaudRateTable.add("9600"); //$NON-NLS-1$
-               fBaudRateTable.add("19200"); //$NON-NLS-1$
-               fBaudRateTable.add("38400"); //$NON-NLS-1$
-               fBaudRateTable.add("57600"); //$NON-NLS-1$
-               fBaudRateTable.add("115200"); //$NON-NLS-1$
-
-               fDataBitsTable.add("5"); //$NON-NLS-1$
-               fDataBitsTable.add("6"); //$NON-NLS-1$
-               fDataBitsTable.add("7"); //$NON-NLS-1$
-               fDataBitsTable.add("8"); //$NON-NLS-1$
-
-               fStopBitsTable.add("1"); //$NON-NLS-1$
-               fStopBitsTable.add("1_5"); //$NON-NLS-1$
-               fStopBitsTable.add("2"); //$NON-NLS-1$
-
-               fParityTable.add("None"); //$NON-NLS-1$
-               fParityTable.add("Even"); //$NON-NLS-1$
-               fParityTable.add("Odd"); //$NON-NLS-1$
-               fParityTable.add("Mark"); //$NON-NLS-1$
-               fParityTable.add("Space"); //$NON-NLS-1$
-
-               fFlowControlTable.add("None"); //$NON-NLS-1$
-               fFlowControlTable.add("RTS/CTS"); //$NON-NLS-1$
-               fFlowControlTable.add("Xon/Xoff"); //$NON-NLS-1$
-
-               fDefaultBaudRate = fBaudRateTable.get(4);
-               fDefaultDataBits = fDataBitsTable.get(3);
-               fDefaultStopBits = fStopBitsTable.get(0);
-               fDefaultParity = fParityTable.get(0);
-               fDefaultFlowControl = fFlowControlTable.get(0);
-
-               Enumeration<CommPortIdentifier> portIdEnum= CommPortIdentifier.getPortIdentifiers();
-               while (portIdEnum.hasMoreElements()) {
-                       CommPortIdentifier identifier = portIdEnum.nextElement();
-                       String strName = identifier.getName();
-                       int nPortType = identifier.getPortType();
-
-                       if (nPortType == CommPortIdentifier.PORT_SERIAL)
-                               fSerialPortTable.add(strName);
-               }
-
-               Collections.sort(fSerialPortTable);
-
-               if (!fSerialPortTable.isEmpty()) {
-                       fDefaultSerialPort = fSerialPortTable.get(0);
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialSettings.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/connector/SerialSettings.java
deleted file mode 100644 (file)
index 6a03cb7..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - extracted from TerminalSettings 
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.serial.connector;
-
-import gnu.io.SerialPort;
-
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-
-public class SerialSettings implements ISerialSettings {
-    protected String fSerialPort;
-    protected String fBaudRate;
-    protected String fDataBits;
-    protected String fStopBits;
-    protected String fParity;
-    protected String fFlowControl;
-    protected String fTimeout;
-    final private SerialProperties fProperties=new SerialProperties();
-
-       @Override
-    public String getSerialPort() {
-               return fSerialPort;
-       }
-
-       public void setSerialPort(String strSerialPort) {
-               fSerialPort = strSerialPort;
-       }
-
-       public String getBaudRateString() {
-               return fBaudRate;
-       }
-
-       @Override
-    public int getBaudRate() {
-               int nBaudRate;
-
-               try {
-                       nBaudRate = Integer.parseInt(fBaudRate);
-               } catch (NumberFormatException numberFormatException) {
-                       nBaudRate = 9600;
-               }
-
-               return nBaudRate;
-       }
-
-       public void setBaudRate(String strBaudRate) {
-               fBaudRate = strBaudRate;
-       }
-
-       public String getDataBitsString() {
-               return fDataBits;
-       }
-
-       @Override
-    public int getDataBits() {
-               if (fDataBits.equals("5")) { //$NON-NLS-1$
-                       return SerialPort.DATABITS_5;
-               } else if (fDataBits.equals("6")) { //$NON-NLS-1$
-                       return SerialPort.DATABITS_6;
-               } else if (fDataBits.equals("7")) { //$NON-NLS-1$
-                       return SerialPort.DATABITS_7;
-               } else {
-                       return SerialPort.DATABITS_8;
-               }
-       }
-
-       public void setDataBits(String strDataBits) {
-               fDataBits = strDataBits;
-       }
-
-       public String getStopBitsString() {
-               return fStopBits;
-       }
-
-       @Override
-    public int getStopBits() {
-               if (fStopBits.equals("1_5")) { //$NON-NLS-1$
-                       return SerialPort.STOPBITS_1_5;
-               } else if (fStopBits.equals("2")) { //$NON-NLS-1$
-                       return SerialPort.STOPBITS_2;
-               } else { // 1
-                       return SerialPort.STOPBITS_1;
-               }
-       }
-
-       public void setStopBits(String strStopBits) {
-               fStopBits = strStopBits;
-       }
-
-       public String getParityString() {
-               return fParity;
-       }
-
-       @Override
-    public int getParity() {
-               if (fParity.equals("Even")) //$NON-NLS-1$
-               {
-                       return SerialPort.PARITY_EVEN;
-               } else if (fParity.equals("Odd")) //$NON-NLS-1$
-               {
-                       return SerialPort.PARITY_ODD;
-               } else if (fParity.equals("Mark")) //$NON-NLS-1$
-               {
-                       return SerialPort.PARITY_MARK;
-               } else if (fParity.equals("Space")) //$NON-NLS-1$
-               {
-                       return SerialPort.PARITY_SPACE;
-               } else // None
-               {
-                       return SerialPort.PARITY_NONE;
-               }
-       }
-
-       public void setParity(String strParity) {
-               fParity = strParity;
-       }
-
-       public String getFlowControlString() {
-               return fFlowControl;
-       }
-
-       @Override
-    public int getFlowControl() {
-               if (fFlowControl.equals("RTS/CTS")) //$NON-NLS-1$
-               {
-                       return SerialPort.FLOWCONTROL_RTSCTS_IN;
-               } else if (fFlowControl.equals("Xon/Xoff")) //$NON-NLS-1$
-               {
-                       return SerialPort.FLOWCONTROL_XONXOFF_IN;
-               } else // None
-               {
-                       return SerialPort.FLOWCONTROL_NONE;
-               }
-       }
-
-       public void setFlowControl(String strFlow) {
-               fFlowControl = strFlow;
-       }
-
-       @Override
-    public String getSummary() {
-               return getSerialPort() + ", " + //$NON-NLS-1$
-                       getBaudRateString() + ", " + //$NON-NLS-1$
-                       getDataBitsString() + ", " + //$NON-NLS-1$
-                       getStopBitsString() + ", " + //$NON-NLS-1$
-                       getParityString() + ", " + //$NON-NLS-1$
-                       getFlowControlString();
-       }
-
-       @Override
-    public void load(ISettingsStore store) {
-               fSerialPort = store.get("SerialPort", fProperties.getDefaultSerialPort());//$NON-NLS-1$
-               fBaudRate = store.get("BaudRate", fProperties.getDefaultBaudRate());//$NON-NLS-1$
-               fDataBits = store.get("DataBits", fProperties.getDefaultDataBits());//$NON-NLS-1$
-               fStopBits = store.get("StopBits", fProperties.getDefaultStopBits());//$NON-NLS-1$
-               fParity = store.get("Parity", fProperties.getDefaultParity());//$NON-NLS-1$
-               fFlowControl = store.get("FlowControl", fProperties.getDefaultFlowControl());//$NON-NLS-1$
-               fTimeout = store.get("Timeout",fProperties.getDefaultTimeout()); //$NON-NLS-1$
-       }
-
-       @Override
-    public void save(ISettingsStore store) {
-               store.put("SerialPort", fSerialPort); //$NON-NLS-1$
-               store.put("BaudRate", fBaudRate); //$NON-NLS-1$
-               store.put("DataBits", fDataBits); //$NON-NLS-1$
-               store.put("StopBits", fStopBits); //$NON-NLS-1$
-               store.put("Parity", fParity); //$NON-NLS-1$
-               store.put("FlowControl", fFlowControl); //$NON-NLS-1$
-       }
-
-       public SerialProperties getProperties() {
-               return fProperties;
-       }
-
-       @Override
-    public int getTimeout() {
-               try {
-                       return Integer.parseInt(fTimeout);
-               } catch (NumberFormatException numberFormatException) {
-                       return 10;
-               }
-       }
-       public String getTimeoutString() {
-               return fTimeout;
-       }
-
-       public void setTimeout(String timeout) {
-               fTimeout = timeout;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/controls/SerialConfigurationPanel.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/controls/SerialConfigurationPanel.java
deleted file mode 100644 (file)
index b1f6b66..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.connector.serial.controls;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel;
-
-/**
- * Serial wizard configuration panel implementation.
- */
-public class SerialConfigurationPanel extends AbstractExtendedConfigurationPanel {
-
-       private SerialLinePanel serialSettingsPage;
-
-       /**
-        * Constructor.
-        *
-        * @param container The configuration panel container or <code>null</code>.
-        */
-       public SerialConfigurationPanel(IConfigurationPanelContainer container) {
-           super(container);
-    }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#setupPanel(org.eclipse.swt.widgets.Composite)
-        */
-       @Override
-       public void setupPanel(Composite parent) {
-               Composite panel = new Composite(parent, SWT.NONE);
-               panel.setLayout(new GridLayout());
-               GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
-               panel.setLayoutData(data);
-
-               // Create the host selection combo
-               if (isWithoutSelection()) createHostsUI(panel, true);
-
-               serialSettingsPage = new SerialLinePanel(getContainer());
-               serialSettingsPage.setupPanel(panel);
-
-               // Create the encoding selection combo
-               createEncodingUI(panel, true);
-
-               setControl(panel);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#extractData(java.util.Map)
-        */
-       @Override
-       public void extractData(Map<String, Object> data) {
-       // set the terminal connector id for serial
-       data.put(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID, "org.eclipse.tm.terminal.connector.serial.SerialConnector"); //$NON-NLS-1$
-
-       serialSettingsPage.extractData(data);
-               data.put(ITerminalsConnectorConstants.PROP_ENCODING, getEncoding());
-    }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel#fillSettingsForHost(java.lang.String)
-        */
-       @Override
-       protected void fillSettingsForHost(String host){
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel#saveSettingsForHost(boolean)
-        */
-       @Override
-       protected void saveSettingsForHost(boolean add){
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#isValid()
-        */
-       @Override
-    public boolean isValid(){
-               return serialSettingsPage.isValid();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel#doSaveWidgetValues(org.eclipse.jface.dialogs.IDialogSettings, java.lang.String)
-        */
-       @Override
-    public void doSaveWidgetValues(IDialogSettings settings, String idPrefix) {
-               Assert.isNotNull(settings);
-               serialSettingsPage.doSaveWidgetValues(settings, idPrefix);
-               // Save the encodings widget values
-               doSaveEncodingsWidgetValues(settings, idPrefix);
-    }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel#doRestoreWidgetValues(org.eclipse.jface.dialogs.IDialogSettings, java.lang.String)
-        */
-       @Override
-    public void doRestoreWidgetValues(IDialogSettings settings, String idPrefix) {
-               Assert.isNotNull(settings);
-               serialSettingsPage.doRestoreWidgetValues(settings, idPrefix);
-               // Restore the encodings widget values
-               doRestoreEncodingsWidgetValues(settings, idPrefix);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel#getHostFromSettings()
-        */
-       @Override
-    protected String getHostFromSettings() {
-               return null;
-    }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel#isWithHostList()
-        */
-       @Override
-    public boolean isWithHostList() {
-       return false;
-    }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/controls/SerialLinePanel.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/controls/SerialLinePanel.java
deleted file mode 100644 (file)
index fe760cb..0000000
+++ /dev/null
@@ -1,787 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.connector.serial.controls;
-
-import gnu.io.CommPortIdentifier;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-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.terminal.connector.serial.activator.UIPlugin;
-import org.eclipse.tm.terminal.connector.serial.interfaces.ITraceIds;
-import org.eclipse.tm.terminal.connector.serial.nls.Messages;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Serial line terminal launcher configuration panel implementation.
- */
-public class SerialLinePanel extends AbstractConfigurationPanel {
-       public static final String fcDefaultTTYSpeed = "9600"; //$NON-NLS-1$
-       public static final String fcDefaultTTYDeviceWin32 = "COM1"; //$NON-NLS-1$
-       public static final String fcDefaultTTYDeviceSolaris = "/dev/cua/a"; //$NON-NLS-1$
-       public static final String fcDefaultTTYDeviceLinux = "/dev/ttyS0"; //$NON-NLS-1$
-       public static final String fcDefaultTTYDatabits = "8"; //$NON-NLS-1$
-       public static final String fcDefaultTTYParity = "None"; //$NON-NLS-1$
-       public static final String fcDefaultTTYStopbits = "1"; //$NON-NLS-1$
-       public static final String fcDefaultTTYFlowControl = "None"; //$NON-NLS-1$
-       public static final String fcDefaultTTYTimeout = "5"; //$NON-NLS-1$
-       public static final String fcEditableTTYOther = "Other..."; //$NON-NLS-1$
-
-       private static final String[] fcTTYSpeedRates = { "600", //$NON-NLS-1$
-               "1200", //$NON-NLS-1$
-               "2400", //$NON-NLS-1$
-               "4800", //$NON-NLS-1$
-               "9600", //$NON-NLS-1$
-               "14400", //$NON-NLS-1$
-               "19200", //$NON-NLS-1$
-               "38400", //$NON-NLS-1$
-               "57600", //$NON-NLS-1$
-               "115200" //$NON-NLS-1$
-       };
-
-       private static final String[] fcTTYDatabits = {
-               "8", "7" //$NON-NLS-1$ //$NON-NLS-2$
-       };
-
-       private static final String[] fcTTYParity = {
-               "None", "Odd", "Even" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-       };
-
-       private static final String[] fcTTYStopbits = {
-               "1", "2" //$NON-NLS-1$ //$NON-NLS-2$
-       };
-
-       private static final String[] fcTTYFlowControl = {
-               "None", "Hardware", "Software" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-       };
-
-       Label hostTTYDeviceLabel;
-       Combo hostTTYDeviceCombo;
-       Label hostTTYSpeedLabel;
-       Combo hostTTYSpeedCombo;
-       Label hostTTYBitsLabel;
-       Combo hostTTYBitsCombo;
-       Label hostTTYParityLabel;
-       Combo hostTTYParityCombo;
-       Label hostTTYStopbitsLabel;
-       Combo hostTTYStopbitsCombo;
-       Label hostTTYFlowControlLabel;
-       Combo hostTTYFlowControlCombo;
-       Label hostTTYTimeoutLabel;
-       Text  hostTTYTimeoutText;
-
-       // Keep the fInputValidator protected!
-       protected IInputValidator inputValidatorBaud;
-
-       int lastSelected = -1;
-       int lastSelectedBaud = -1;
-
-       /**
-        * Constructor.
-        *
-        * @param container The configuration panel container or <code>null</code>.
-        */
-       public SerialLinePanel(IConfigurationPanelContainer container) {
-               super(container);
-       }
-
-       protected class CustomSerialBaudRateInputValidator implements IInputValidator {
-
-               /* (non-Javadoc)
-                * @see org.eclipse.jface.dialogs.IInputValidator#isValid(java.lang.String)
-                */
-               @Override
-        public String isValid(String newText) {
-                       if (newText != null && newText.trim().length() > 0) {
-                               if (!newText.matches("[0-9]*")) { //$NON-NLS-1$
-                                       return Messages.SerialLinePanel_error_invalidCharactesBaudRate;
-                               }
-                       } else if (newText != null) {
-                               // Empty string is an error without message (see interface)!
-                               return ""; //$NON-NLS-1$
-                       }
-                       return null;
-               }
-       }
-
-       /**
-        * Returns the input validator to be used for checking the custom serial
-        * baud rate for basic plausibility.
-        */
-       protected IInputValidator getCustomSerialBaudRateInputValidator() {
-               if (inputValidatorBaud == null) {
-                       inputValidatorBaud = new CustomSerialBaudRateInputValidator();
-               }
-               return inputValidatorBaud;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#setupPanel(org.eclipse.swt.widgets.Composite)
-        */
-       @Override
-    public void setupPanel(Composite parent) {
-               Assert.isNotNull(parent);
-
-               Composite panel = new Composite(parent, SWT.NONE);
-               GridLayout layout = new GridLayout();
-               layout.marginHeight = 0; layout.marginWidth = 0;
-               panel.setLayout(layout);
-               panel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-               panel.setBackground(parent.getBackground());
-
-               setControl(panel);
-
-               final Composite client = new Composite(parent, SWT.NONE);
-               Assert.isNotNull(client);
-               client.setLayout(new GridLayout(2, false));
-               client.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-               client.setBackground(panel.getBackground());
-
-               // Host TTY settings
-               hostTTYDeviceLabel = new Label(client, SWT.NONE);
-               hostTTYDeviceLabel.setText(Messages.SerialLinePanel_hostTTYDevice_label);
-
-               hostTTYDeviceCombo = new Combo(client, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
-               hostTTYDeviceCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-               hostTTYDeviceCombo.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               // if the user selected the special editable device, show a dialog asking for the device name
-                               if (fcEditableTTYOther.equals(hostTTYDeviceCombo.getText())) {
-                                       List<String> tty = new ArrayList<String>();
-                                       List<String> tcp = new ArrayList<String>();
-                                       String selected = hostTTYDeviceCombo.getItem(lastSelected);
-                                       for (String device : hostTTYDeviceCombo.getItems()) {
-                                               if (!device.equalsIgnoreCase(fcEditableTTYOther)) {
-                                                       if (device.toUpperCase().startsWith("TCP:")) { //$NON-NLS-1$
-                                                               tcp.add(device);
-                                                       }
-                                                       else {
-                                                               tty.add(device);
-                                                       }
-                                               }
-                                       }
-                                       SerialPortAddressDialog dialog = new SerialPortAddressDialog(client.getShell(), selected, tty, tcp);
-                                       if (dialog.open() == Window.OK) {
-                                               // retrieve the custom serial device name and set it to the combobox drop
-                                               String device = dialog.getData();
-                                               if (device != null && device.trim().length() > 0) {
-                                                       hostTTYDeviceCombo.add(device.trim());
-                                                       hostTTYDeviceCombo.setText(device.trim());
-                                               } else if (lastSelected != -1) {
-                                                       hostTTYDeviceCombo.setText(hostTTYDeviceCombo.getItem(lastSelected));
-                                               }
-                                       } else if (lastSelected != -1){
-                                               hostTTYDeviceCombo.setText(hostTTYDeviceCombo.getItem(lastSelected));
-                                       }
-                               }
-                               lastSelected = hostTTYDeviceCombo.getSelectionIndex();
-
-                               IConfigurationPanelContainer container = SerialLinePanel.this.getContainer();
-                               if (container != null) container.validate();
-                       }
-               });
-
-               hostTTYSpeedLabel = new Label(client, SWT.NONE);
-               hostTTYSpeedLabel.setText(Messages.SerialLinePanel_hostTTYSpeed_label);
-
-               hostTTYSpeedCombo = new Combo(client, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
-               hostTTYSpeedCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-               hostTTYSpeedCombo.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               // if the user selected the special editable baud rate, show a dialog asking for the baud rate
-                               if (fcEditableTTYOther.equals(hostTTYSpeedCombo.getText())) {
-                                       InputDialog dialog = new InputDialog(getControl().getShell(),
-                                                                            Messages.SerialLinePanel_customSerialBaudRate_title,
-                                                                            Messages.SerialLinePanel_customSerialBaudRate_message,
-                                                                            "", //$NON-NLS-1$
-                                                                            getCustomSerialBaudRateInputValidator());
-                                       if (dialog.open() == Window.OK) {
-                                               // retrieve the custom serial device name and set it to the combobox drop
-                                               String device = dialog.getValue();
-                                               if (device != null && device.trim().length() > 0) {
-                                                       int index = hostTTYSpeedCombo.indexOf(fcEditableTTYOther);
-                                                       if (index != -1 && index == hostTTYSpeedCombo.getItemCount() - 1) {
-                                                               hostTTYSpeedCombo.add(device.trim());
-                                                       } else if (index != -1) {
-                                                               hostTTYSpeedCombo.setItem(index + 1, device.trim());
-                                                       }
-                                                       hostTTYSpeedCombo.setText(device.trim());
-                                               } else if (lastSelectedBaud != -1) {
-                                                       hostTTYSpeedCombo.setText(hostTTYSpeedCombo.getItem(lastSelectedBaud));
-                                               }
-                                       } else if (lastSelectedBaud != -1){
-                                               hostTTYSpeedCombo.setText(hostTTYSpeedCombo.getItem(lastSelectedBaud));
-                                       }
-                               }
-                               lastSelectedBaud = hostTTYSpeedCombo.getSelectionIndex();
-
-                               IConfigurationPanelContainer container = SerialLinePanel.this.getContainer();
-                               if (container != null) container.validate();
-                       }
-               });
-
-               // Query the list of available serial port interfaces.
-               UIPlugin.getTraceHandler().trace("SerialLinePanel: Start quering the available comm ports.", ITraceIds.TRACE_SERIAL_LINE_PANEL, this); //$NON-NLS-1$
-
-               // Query the serial devices now.
-               BusyIndicator.showWhile(getControl().getDisplay(), new Runnable() {
-                       @Override
-                       public void run() {
-                               queryAvailableSerialDevices();
-                       }
-               });
-
-               // add a special device which is being the editable one if requested at the end of the list
-               hostTTYDeviceCombo.add(fcEditableTTYOther);
-
-               if (hostTTYDeviceCombo.indexOf(getDefaultHostTTYDevice()) != -1) {
-                       hostTTYDeviceCombo.setText(getDefaultHostTTYDevice());
-               } else {
-                       if ("".equals(hostTTYDeviceCombo.getText()) && hostTTYDeviceCombo.getItemCount() > 0) { //$NON-NLS-1$
-                               // USI: For SWT-GTK we need the special empty entry as well. Otherwise we will have problems
-                               // getting the selection changed event!
-                               if (hostTTYDeviceCombo.getItemCount() == 1
-                                       && fcEditableTTYOther.equals(hostTTYDeviceCombo.getItem(0))) {
-                                       hostTTYDeviceCombo.add("", 0); //$NON-NLS-1$
-                               }
-                               hostTTYDeviceCombo.setText(hostTTYDeviceCombo.getItem(0));
-                       }
-               }
-
-               if (hostTTYDeviceCombo.getItemCount() > 0) {
-                       hostTTYDeviceCombo.setEnabled(true);
-               } else {
-                       hostTTYDeviceCombo.setEnabled(false);
-               }
-               lastSelected = hostTTYDeviceCombo.getSelectionIndex();
-
-               for (String fcTTYSpeedRate : fcTTYSpeedRates) {
-                       hostTTYSpeedCombo.add(fcTTYSpeedRate);
-               }
-               hostTTYSpeedCombo.add(fcEditableTTYOther);
-
-               hostTTYSpeedCombo.setText(fcDefaultTTYSpeed);
-               lastSelectedBaud = hostTTYSpeedCombo.getSelectionIndex();
-
-               // add the advanced serial options
-               hostTTYBitsLabel = new Label(client, SWT.NONE);
-               hostTTYBitsLabel.setText(Messages.SerialLinePanel_hostTTYDatabits_label);
-               hostTTYBitsCombo = new Combo(client, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
-               hostTTYBitsCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-               hostTTYBitsCombo.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               IConfigurationPanelContainer container = SerialLinePanel.this.getContainer();
-                               if (container != null) container.validate();
-                       }
-               });
-
-               for (String fcTTYDatabit : fcTTYDatabits) {
-                       hostTTYBitsCombo.add(fcTTYDatabit);
-               }
-               hostTTYBitsCombo.setText(fcDefaultTTYDatabits);
-
-               hostTTYParityLabel = new Label(client, SWT.NONE);
-               hostTTYParityLabel.setText(Messages.SerialLinePanel_hostTTYParity_label);
-               hostTTYParityCombo = new Combo(client, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
-               hostTTYParityCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-               hostTTYParityCombo.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               IConfigurationPanelContainer container = SerialLinePanel.this.getContainer();
-                               if (container != null) container.validate();
-                       }
-               });
-
-               for (String element : fcTTYParity) {
-                       hostTTYParityCombo.add(element);
-               }
-               hostTTYParityCombo.setText(fcDefaultTTYParity);
-
-               hostTTYStopbitsLabel = new Label(client, SWT.NONE);
-               hostTTYStopbitsLabel.setText(Messages.SerialLinePanel_hostTTYStopbits_label);
-               hostTTYStopbitsCombo = new Combo(client, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
-               hostTTYStopbitsCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-               hostTTYStopbitsCombo.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               IConfigurationPanelContainer container = SerialLinePanel.this.getContainer();
-                               if (container != null) container.validate();
-                       }
-               });
-
-               for (String fcTTYStopbit : fcTTYStopbits) {
-                       hostTTYStopbitsCombo.add(fcTTYStopbit);
-               }
-               hostTTYStopbitsCombo.setText(fcDefaultTTYStopbits);
-
-               hostTTYFlowControlLabel = new Label(client, SWT.NONE);
-               hostTTYFlowControlLabel.setText(Messages.SerialLinePanel_hostTTYFlowControl_label);
-               hostTTYFlowControlCombo = new Combo(client, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
-               hostTTYFlowControlCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-               hostTTYFlowControlCombo.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               IConfigurationPanelContainer container = SerialLinePanel.this.getContainer();
-                               if (container != null) container.validate();
-                       }
-               });
-
-               for (String element : fcTTYFlowControl) {
-                       hostTTYFlowControlCombo.add(element);
-               }
-               hostTTYFlowControlCombo.setText(fcDefaultTTYFlowControl);
-
-               hostTTYTimeoutLabel = new Label(client, SWT.NONE);
-               hostTTYTimeoutLabel.setText(Messages.SerialLinePanel_hostTTYTimeout_label);
-               hostTTYTimeoutText = new Text(client, SWT.SINGLE | SWT.BORDER);
-               hostTTYTimeoutText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-               hostTTYTimeoutText.addModifyListener(new ModifyListener() {
-                       @Override
-                       public void modifyText(ModifyEvent e) {
-                               IConfigurationPanelContainer container = SerialLinePanel.this.getContainer();
-                               if (container != null) container.validate();
-                       }
-               });
-               hostTTYTimeoutText.setText(fcDefaultTTYTimeout);
-       }
-
-       /**
-        * Query the list of serial devices.
-        */
-       protected void queryAvailableSerialDevices() {
-               // Avoid printing the library version output to stdout if the platform
-               // is not in debug mode.
-               String prop = System.getProperty("gnu.io.rxtx.NoVersionOutput"); //$NON-NLS-1$
-               if (prop == null && !Platform.inDebugMode()) {
-                       System.setProperty("gnu.io.rxtx.NoVersionOutput", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-               }
-
-               // java.lang.UnsatisfiedLinkError: ../plugins/gnu.io.rxtx.solaris.sparc_2.1.7.200702281917/os/solaris/sparc/librxtxSerial.so:
-               //       Can't load Sparc 32-bit .so on a Sparc 32-bit platform
-               // May happen in CommPortIdentifier static constructor!
-               try {
-            Enumeration<CommPortIdentifier> ttyPortIds = CommPortIdentifier.getPortIdentifiers();
-                       if (!ttyPortIds.hasMoreElements()) {
-                               UIPlugin.getTraceHandler().trace("SerialLinePanel: NO comm ports available at all!", ITraceIds.TRACE_SERIAL_LINE_PANEL, this); //$NON-NLS-1$
-                       }
-                       final List<String> ports = new ArrayList<String>();
-                       while (ttyPortIds.hasMoreElements()) {
-                               CommPortIdentifier port = ttyPortIds.nextElement();
-                               String type = "unknown"; //$NON-NLS-1$
-                               if (port.getPortType() == CommPortIdentifier.PORT_PARALLEL) {
-                                       type = "parallel"; //$NON-NLS-1$
-                               }
-                               if (port.getPortType() == CommPortIdentifier.PORT_SERIAL) {
-                                       type = "serial"; //$NON-NLS-1$
-                               }
-                               UIPlugin.getTraceHandler().trace("SerialLinePanel: Found comm port: name='" + port.getName() + "', type='" + type, ITraceIds.TRACE_SERIAL_LINE_PANEL, this); //$NON-NLS-1$ //$NON-NLS-2$
-                               // only add serial ports
-                               if (port.getPortType() == CommPortIdentifier.PORT_SERIAL) {
-                                       UIPlugin.getTraceHandler().trace("SerialLinePanel: Adding found serial comm port to combo!", ITraceIds.TRACE_SERIAL_LINE_PANEL, this); //$NON-NLS-1$
-                                       if (!ports.contains(port.getName())) {
-                                               ports.add(port.getName());
-                                       }
-                               }
-                       }
-                       if (!ports.isEmpty()) {
-                               Collections.sort(ports);
-                               // This method may executed in a separate thread. We must spawn back
-                               // into the UI thread to execute the adding of the ports to the control.
-                               PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
-                                       @Override
-                    public void run() {
-                                               for (String port : ports) {
-                                                       hostTTYDeviceCombo.add(port);
-                                               }
-                                       }
-                               });
-                       }
-               } catch (UnsatisfiedLinkError e) {
-                       IStatus status = new Status(IStatus.WARNING, UIPlugin.getUniqueIdentifier(),
-                                                                               Messages.SerialLinePanel_warning_FailedToLoadSerialPorts, e);
-                       UIPlugin.getDefault().getLog().log(status);
-               } catch (NoClassDefFoundError e) {
-                       // The NoClassDefFoundError happens the second time if the load of the library
-                       // failed once! We do ignore this error completely!
-               }
-       }
-
-       /**
-        * Enables or disables the configuration panels controls.
-        *
-        * @param enabled Specify <code>true</code> to enable the controls, <code>false</code> otherwise.
-        */
-       @Override
-    public void setEnabled(boolean enabled) {
-               hostTTYDeviceLabel.setEnabled(enabled);
-               hostTTYDeviceCombo.setEnabled(enabled);
-               hostTTYSpeedLabel.setEnabled(enabled);
-               hostTTYSpeedCombo.setEnabled(enabled);
-               hostTTYBitsLabel.setEnabled(enabled);
-               hostTTYBitsCombo.setEnabled(enabled);
-               hostTTYParityLabel.setEnabled(enabled);
-               hostTTYParityCombo.setEnabled(enabled);
-               hostTTYStopbitsLabel.setEnabled(enabled);
-               hostTTYStopbitsCombo.setEnabled(enabled);
-               hostTTYFlowControlLabel.setEnabled(enabled);
-               hostTTYFlowControlCombo.setEnabled(enabled);
-       }
-
-       /**
-        * The name of the serial ports differ between the host platforms, so we have to
-        * detect the default host TTY device based on the host platform.
-        */
-       public String getDefaultHostTTYDevice() {
-               String osName = System.getProperty("os.name"); //$NON-NLS-1$
-               // Linux ?
-               if (osName.equalsIgnoreCase("Linux")) { //$NON-NLS-1$
-                       return fcDefaultTTYDeviceLinux;
-               }
-               // Solaris ?
-               if (osName.equalsIgnoreCase("SunOS")) { //$NON-NLS-1$
-                       return fcDefaultTTYDeviceSolaris;
-               }
-               // Windows ?
-               if (osName.toLowerCase().startsWith("windows")) { //$NON-NLS-1$
-                       return fcDefaultTTYDeviceWin32;
-               }
-               return ""; //$NON-NLS-1$
-       }
-
-       /**
-        * Returns the default value for the serial port speed setting in bit/s
-        */
-       public String getDefaultHostTTYSpeed() {
-               return fcDefaultTTYSpeed;
-       }
-
-       /**
-        * Returns the default value for the serial port data bits setting
-        */
-       public String getDefaultHostTTYDatabits() {
-               return fcDefaultTTYDatabits;
-       }
-
-       /**
-        * Returns the default value for the serial port parity setting
-        */
-       public String getDefaultHostTTYParity() {
-               return fcDefaultTTYParity;
-       }
-
-       /**
-        * Returns the default value for the serial port stop bits setting
-        */
-       public String getDefaultHostTTYStopbits() {
-               return fcDefaultTTYStopbits;
-       }
-
-       /**
-        * Returns the default value for the serial port flow control setting
-        */
-       public String getDefaultHostTTYFlowControl() {
-               return fcDefaultTTYFlowControl;
-       }
-
-       /**
-        * Returns the default value for the serial port timeout setting.
-        */
-       public String getDefaultHostTTYTimeout() {
-               return fcDefaultTTYTimeout;
-       }
-
-       /**
-        * Set the text to the combo if available as selectable option.
-        *
-        * @param combo The combo box control. Must not be <code>null</code>.
-        * @param value The value to set. Must not be <code>null</code>.
-        */
-       protected void doSetTextInCombo(Combo combo, String value) {
-               Assert.isNotNull(combo);
-               Assert.isNotNull(value);
-               if (combo.indexOf(value) != 1) {
-                       combo.setText(value);
-               }
-       }
-
-       /**
-        * Select the given tty device if available.
-        *
-        * @param value The tty device to select. Must not be <code>null</code>.
-        */
-       public void setSelectedTTYDevice(String value) {
-               doSetTextInCombo(hostTTYDeviceCombo, value);
-       }
-
-       /**
-        * Select the given tty device if available. The method
-        * will do nothing if the specified index is invalid.
-        *
-        * @param index The index of the tty device to select.
-        */
-       public void setSelectedTTYDevice(int index) {
-               if (index >= 0 && index < hostTTYDeviceCombo.getItemCount()) {
-                       hostTTYDeviceCombo.setText(hostTTYDeviceCombo.getItem(index));
-               }
-       }
-
-       /**
-        * Select the given tty device speed if available.
-        *
-        * @param value The tty device speed to select. Must not be <code>null</code>.
-        */
-       public void setSelectedTTYSpeed(String value) {
-               doSetTextInCombo(hostTTYSpeedCombo, value);
-       }
-
-       /**
-        * Select the given tty device data bit configuration if available.
-        *
-        * @param value The tty device data bit configuration to select. Must not be <code>null</code>.
-        */
-       public void setSelectedTTYDatabits(String value) {
-               doSetTextInCombo(hostTTYBitsCombo, value);
-       }
-
-       /**
-        * Select the given tty device parity configuration if available.
-        *
-        * @param value The tty device parity configuration to select. Must not be <code>null</code>.
-        */
-       public void setSelectedTTYParity(String value) {
-               doSetTextInCombo(hostTTYParityCombo, value);
-       }
-
-       /**
-        * Select the given tty device stop bit configuration if available.
-        *
-        * @param value The tty device stop bit configuration to select. Must not be <code>null</code>.
-        */
-       public void setSelectedTTYStopbits(String value) {
-               doSetTextInCombo(hostTTYStopbitsCombo, value);
-       }
-
-       /**
-        * Select the given tty device flow control configuration if available.
-        *
-        * @param value The tty device flow control configuration to select. Must not be <code>null</code>.
-        */
-       public void setSelectedTTYFlowControl(String value) {
-               doSetTextInCombo(hostTTYFlowControlCombo, value);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#isValid()
-        */
-       @Override
-       public boolean isValid() {
-               String selectedTTYDevice = hostTTYDeviceCombo.getText();
-               if (selectedTTYDevice == null || selectedTTYDevice.trim().length() == 0) {
-                       setMessage(Messages.SerialLinePanel_error_emptyHostTTYDevice, IMessageProvider.ERROR);
-                       return false;
-               }
-
-               if (fcEditableTTYOther.equals(selectedTTYDevice)) {
-                       setMessage(Messages.SerialLinePanel_info_editableTTYDeviceSelected, IMessageProvider.INFORMATION);
-                       return false;
-               }
-
-               String selectedTTYSpeedRate = hostTTYSpeedCombo.getText();
-               if (selectedTTYSpeedRate == null || selectedTTYSpeedRate.trim().length() == 0) {
-                       setMessage(Messages.SerialLinePanel_error_emptyHostTTYSpeedRate, IMessageProvider.ERROR);
-                       return false;
-               }
-
-               if (fcEditableTTYOther.equals(selectedTTYSpeedRate)) {
-                       setMessage(Messages.SerialLinePanel_info_editableTTYBaudRateSelected, IMessageProvider.INFORMATION);
-                       return false;
-               }
-
-               String option = hostTTYBitsCombo.getText();
-               if (option == null || option.trim().length() == 0) {
-                       setMessage(Messages.SerialLinePanel_error_emptyHostTTYDatabits, IMessageProvider.ERROR);
-                       return false;
-               }
-
-               option = hostTTYParityCombo.getText();
-               if (option == null || option.trim().length() == 0) {
-                       setMessage(Messages.SerialLinePanel_error_emptyHostTTYParity, IMessageProvider.ERROR);
-                       return false;
-               }
-
-               option = hostTTYStopbitsCombo.getText();
-               if (option == null || option.trim().length() == 0) {
-                       setMessage(Messages.SerialLinePanel_error_emptyHostTTYStopbits, IMessageProvider.ERROR);
-                       return false;
-               }
-
-               option = hostTTYFlowControlCombo.getText();
-               if (option == null || option.trim().length() == 0) {
-                       setMessage(Messages.SerialLinePanel_error_emptyHostTTYFlowControl, IMessageProvider.ERROR);
-                       return false;
-               }
-
-               option = hostTTYTimeoutText.getText();
-               if (option == null || option.trim().length() == 0) {
-                       setMessage(Messages.SerialLinePanel_error_emptyHostTTYFlowControl, IMessageProvider.ERROR);
-                       return false;
-               }
-
-               return true;
-       }
-
-       private final String fcSelectedTTYDeviceSlotId = "SerialLinePanel.selectedTTYDevice." + System.getProperty("os.name"); //$NON-NLS-1$ //$NON-NLS-2$
-       private final String fcSelectedTTYSpeedRateSlotId = "SerialLinePanel.selectedTTYSpeedRate." + System.getProperty("os.name"); //$NON-NLS-1$ //$NON-NLS-2$
-       private final String fcSelectedTTYDatabitsSlotId = "SerialLinePanel.selectedTTYDatabits." + System.getProperty("os.name"); //$NON-NLS-1$ //$NON-NLS-2$
-       private final String fcSelectedTTYParitySlotId = "SerialLinePanel.selectedTTYParity." + System.getProperty("os.name"); //$NON-NLS-1$ //$NON-NLS-2$
-       private final String fcSelectedTTYStopbitsSlotId = "SerialLinePanel.selectedTTYStopbits." + System.getProperty("os.name"); //$NON-NLS-1$ //$NON-NLS-2$
-       private final String fcSelectedTTYFlowControlSlotId = "SerialLinePanel.selectedTTYFlowControl." + System.getProperty("os.name"); //$NON-NLS-1$ //$NON-NLS-2$
-       private final String fcSelectedTTYTimeoutSlotId = "SerialLinePanel.selectedTTYTimeout." + System.getProperty("os.name"); //$NON-NLS-1$ //$NON-NLS-2$
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#doRestoreWidgetValues(org.eclipse.jface.dialogs.IDialogSettings, java.lang.String)
-        */
-       @Override
-       public void doRestoreWidgetValues(IDialogSettings settings, String idPrefix) {
-               Assert.isNotNull(settings);
-
-               String selectedTTYDevice = settings.get(prefixDialogSettingsSlotId(fcSelectedTTYDeviceSlotId, idPrefix));
-               if (selectedTTYDevice != null && selectedTTYDevice.trim().length() > 0) {
-                       if (hostTTYDeviceCombo.indexOf(selectedTTYDevice) != -1) {
-                               hostTTYDeviceCombo.setText(selectedTTYDevice);
-                       }
-               }
-
-               String selectedTTYSpeedRate = settings.get(prefixDialogSettingsSlotId(fcSelectedTTYSpeedRateSlotId, idPrefix));
-               if (selectedTTYSpeedRate != null && selectedTTYSpeedRate.trim().length() > 0) {
-                       if (hostTTYSpeedCombo.indexOf(selectedTTYSpeedRate) != -1) {
-                               hostTTYSpeedCombo.setText(selectedTTYSpeedRate);
-                       }
-               }
-
-               String option = settings.get(prefixDialogSettingsSlotId(fcSelectedTTYDatabitsSlotId, idPrefix));
-               if (option != null && option.trim().length() > 0 && hostTTYBitsCombo.indexOf(option) != -1) {
-                       hostTTYBitsCombo.setText(option);
-               }
-
-               option = settings.get(prefixDialogSettingsSlotId(fcSelectedTTYParitySlotId, idPrefix));
-               if (option != null && option.trim().length() > 0 && hostTTYParityCombo.indexOf(option) != -1) {
-                       hostTTYParityCombo.setText(option);
-               }
-
-               option = settings.get(prefixDialogSettingsSlotId(fcSelectedTTYStopbitsSlotId, idPrefix));
-               if (option != null && option.trim().length() > 0 && hostTTYStopbitsCombo.indexOf(option) != -1) {
-                       hostTTYStopbitsCombo.setText(option);
-               }
-
-               option = settings.get(prefixDialogSettingsSlotId(fcSelectedTTYFlowControlSlotId, idPrefix));
-               if (option != null && option.trim().length() > 0 && hostTTYFlowControlCombo.indexOf(option) != -1) {
-                       hostTTYFlowControlCombo.setText(option);
-               }
-
-               option = settings.get(prefixDialogSettingsSlotId(fcSelectedTTYTimeoutSlotId, idPrefix));
-               if (option != null && option.trim().length() > 0 && !option.equals(hostTTYTimeoutText.getText())) {
-                       hostTTYTimeoutText.setText(option);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#doSaveWidgetValues(org.eclipse.jface.dialogs.IDialogSettings, java.lang.String)
-        */
-       @Override
-       public void doSaveWidgetValues(IDialogSettings settings, String idPrefix) {
-               Assert.isNotNull(settings);
-
-               settings.put(prefixDialogSettingsSlotId(fcSelectedTTYDeviceSlotId, idPrefix), hostTTYDeviceCombo.getText());
-               settings.put(prefixDialogSettingsSlotId(fcSelectedTTYSpeedRateSlotId, idPrefix), hostTTYSpeedCombo.getText());
-
-               settings.put(prefixDialogSettingsSlotId(fcSelectedTTYDatabitsSlotId, idPrefix), hostTTYBitsCombo.getText());
-               settings.put(prefixDialogSettingsSlotId(fcSelectedTTYParitySlotId, idPrefix), hostTTYParityCombo.getText());
-               settings.put(prefixDialogSettingsSlotId(fcSelectedTTYStopbitsSlotId, idPrefix), hostTTYStopbitsCombo.getText());
-               settings.put(prefixDialogSettingsSlotId(fcSelectedTTYFlowControlSlotId, idPrefix), hostTTYFlowControlCombo.getText());
-               settings.put(prefixDialogSettingsSlotId(fcSelectedTTYTimeoutSlotId, idPrefix), hostTTYTimeoutText.getText());
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#setupData(java.util.Map)
-        */
-       @Override
-       public void setupData(Map<String, Object> data) {
-               if (data == null) return;
-
-               hostTTYDeviceCombo.setText((String)data.get(ITerminalsConnectorConstants.PROP_SERIAL_DEVICE));
-               hostTTYSpeedCombo.setText((String)data.get(ITerminalsConnectorConstants.PROP_SERIAL_BAUD_RATE));
-
-               hostTTYBitsCombo.setText((String)data.get(ITerminalsConnectorConstants.PROP_SERIAL_DATA_BITS));
-               hostTTYParityCombo.setText((String)data.get(ITerminalsConnectorConstants.PROP_SERIAL_PARITY));
-               hostTTYStopbitsCombo.setText((String)data.get(ITerminalsConnectorConstants.PROP_SERIAL_STOP_BITS));
-               hostTTYFlowControlCombo.setText((String)data.get(ITerminalsConnectorConstants.PROP_SERIAL_FLOW_CONTROL));
-
-               Object value = data.get(ITerminalsConnectorConstants.PROP_TIMEOUT);
-               if (value instanceof Integer) {
-                       hostTTYTimeoutText.setText(((Integer)value).toString());
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#extractData(java.util.Map)
-        */
-       @Override
-       public void extractData(Map<String, Object> data) {
-               if (data == null) return;
-
-                       data.put(ITerminalsConnectorConstants.PROP_SERIAL_DEVICE, hostTTYDeviceCombo.getText());
-                       data.put(ITerminalsConnectorConstants.PROP_SERIAL_BAUD_RATE, hostTTYSpeedCombo.getText());
-
-                       data.put(ITerminalsConnectorConstants.PROP_SERIAL_DATA_BITS, hostTTYBitsCombo.getText());
-                       data.put(ITerminalsConnectorConstants.PROP_SERIAL_PARITY, hostTTYParityCombo.getText());
-                       data.put(ITerminalsConnectorConstants.PROP_SERIAL_STOP_BITS, hostTTYStopbitsCombo.getText());
-                       data.put(ITerminalsConnectorConstants.PROP_SERIAL_FLOW_CONTROL, hostTTYFlowControlCombo.getText());
-
-                       if (hostTTYTimeoutText.getText() != null) {
-                               Integer timeout = null;
-                               try {
-                                       timeout = Integer.decode(hostTTYTimeoutText.getText());
-                               } catch (NumberFormatException e) { /* ignored on purpose */ }
-                               if (timeout != null) data.put(ITerminalsConnectorConstants.PROP_TIMEOUT, timeout);
-                               else data.remove(ITerminalsConnectorConstants.PROP_TIMEOUT);
-                       }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/controls/SerialPortAddressDialog.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/controls/SerialPortAddressDialog.java
deleted file mode 100644 (file)
index 52ff590..0000000
+++ /dev/null
@@ -1,689 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.connector.serial.controls;
-
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-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.events.VerifyEvent;
-import org.eclipse.swt.events.VerifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tm.terminal.connector.serial.activator.UIPlugin;
-import org.eclipse.tm.terminal.connector.serial.nls.Messages;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Serial line port or address dialog.
- */
-public class SerialPortAddressDialog extends TitleAreaDialog implements IMessageProvider {
-       private String contextHelpId = null;
-
-       private String message;
-       private int messageType;
-       private String errorMessage;
-       private String title;
-
-       // The default message is shown to the user if no other message is set
-       private String defaultMessage;
-       private int defaultMessageType;
-
-       Button ttyControlSelector;
-       Combo ttyControl;
-       Button tcpControlSelector;
-       Combo addressControl;
-       Combo portControl;
-       Label portLabel;
-
-       List<String> ttyHistory;
-       List<String> tcpHistory;
-
-       String data = null;
-
-       // regular expressions for validator
-       /* default */ static final String IP_CHARACTERS_REGEX = "[0-9][0-9\\.]*"; //$NON-NLS-1$
-       /* default */ static final String IP_FRAGMENT_REGEX = "([0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])"; //$NON-NLS-1$
-       /* default */ static final String IP_REGEX = IP_FRAGMENT_REGEX + "(\\." + IP_FRAGMENT_REGEX + "){3}[ ]*"; //$NON-NLS-1$ //$NON-NLS-2$
-
-       // RFC 1034 - ftp://ftp.rfc-editor.org/in-notes/std/std13.txt
-       /* default */ static final String NAME_CHARACTERS_REGEX = "[a-zA-Z][0-9a-zA-Z\\-_\\.]*"; //$NON-NLS-1$
-       // characters that can be set at the beginning
-       /* default */ static final String NAME_START_REGEX = "[a-zA-Z]"; //$NON-NLS-1$
-       // characters that can be set after the starting character
-       /* default */ static final String NAME_FOLLOW_REGEX = "[a-zA-Z0-9-_]"; //$NON-NLS-1$
-       // characters that can be set at the end
-       /* default */ static final String NAME_END_REGEX = "[a-zA-Z0-9]"; //$NON-NLS-1$
-       // single name fragment
-       /* default */ static final String NAME_FRAGMENT_REGEX = "(" + NAME_START_REGEX + "(" + NAME_FOLLOW_REGEX + "*" + NAME_END_REGEX + ")?)"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
-       /* default */ static final String NAME_REGEX = NAME_FRAGMENT_REGEX + "(\\." + NAME_FRAGMENT_REGEX + ")*[ ]*"; //$NON-NLS-1$ //$NON-NLS-2$
-
-       /**
-        * Constructor.
-        * @param parentShell
-        */
-       public SerialPortAddressDialog(Shell parentShell, String selected, List<String> ttyHistory, List<String> tcpHistory) {
-               super(parentShell);
-               this.ttyHistory = ttyHistory;
-               this.tcpHistory = tcpHistory;
-               this.data = selected;
-
-               this.contextHelpId = UIPlugin.getUniqueIdentifier() + ".SerialPortAddressDialog"; //$NON-NLS-1$
-               setHelpAvailable(true);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.Dialog#isResizable()
-        */
-       @Override
-       protected boolean isResizable() {
-               return true;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.Dialog#create()
-        */
-       @Override
-       public void create() {
-               super.create();
-
-               // If the dialog got set a message, make sure the message is really shown
-               // to the user from the beginning.
-               if (isMessageSet()) {
-                       if (errorMessage != null) {
-                               super.setErrorMessage(errorMessage);
-                       }
-                       else {
-                               super.setMessage(message, messageType);
-                       }
-               } else if (defaultMessage != null) {
-                       // Default message set
-                       super.setMessage(defaultMessage, defaultMessageType);
-               }
-
-               // If the dialog got set a title, make sure the title is shown
-               if (title != null) {
-                       super.setTitle(title);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-        */
-       @Override
-       protected final Control createDialogArea(Composite parent) {
-               if (contextHelpId != null) {
-                       PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, contextHelpId);
-               }
-
-               // Let the super implementation create the dialog area control
-               Control control = super.createDialogArea(parent);
-               // Setup the inner panel as scrollable composite
-               if (control instanceof Composite) {
-                       ScrolledComposite sc = new ScrolledComposite((Composite)control, SWT.V_SCROLL);
-
-                       GridLayout layout = new GridLayout(1, true);
-                       layout.marginHeight = 0; layout.marginWidth = 0;
-                       layout.verticalSpacing = 0; layout.horizontalSpacing = 0;
-
-                       sc.setLayout(layout);
-                       sc.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
-
-                       sc.setExpandHorizontal(true);
-                       sc.setExpandVertical(true);
-
-                       Composite composite = new Composite(sc, SWT.NONE);
-                       composite.setLayout(new GridLayout());
-
-                       // Setup the dialog area content
-                       createDialogAreaContent(composite);
-
-                       sc.setContent(composite);
-                       sc.setMinSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
-                       // Return the scrolled composite as new dialog area control
-                       control = sc;
-               }
-
-               return control;
-       }
-
-       /**
-        * Creates the dialog area content.
-        *
-        * @param parent The parent composite. Must not be <code>null</code>.
-        */
-    protected void createDialogAreaContent(Composite parent) {
-       Assert.isNotNull(parent);
-
-               setDialogTitle(Messages.SerialPortAddressDialog_dialogtitle);
-               setTitle(Messages.SerialPortAddressDialog_title);
-
-               Composite ttyComp = new Composite(parent, SWT.NONE);
-               GridLayout layout = new GridLayout();
-               ttyComp.setLayout(layout);
-               GridData layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-               layoutData.widthHint = 250;
-               ttyComp.setLayoutData(layoutData);
-
-               Composite panel = new Composite(ttyComp, SWT.NONE);
-               layout = new GridLayout(2, false);
-               layout.marginHeight = 0; layout.marginWidth = 0;
-               panel.setLayout(layout);
-               layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-               panel.setLayoutData(layoutData);
-
-               ttyControlSelector = new Button(panel, SWT.RADIO);
-               ttyControlSelector.setText(Messages.SerialLinePanel_hostTTYDevice_label);
-               layoutData = new GridData(SWT.LEAD, SWT.CENTER, false, false);
-               ttyControlSelector.setLayoutData(layoutData);
-               ttyControlSelector.setSelection(true);
-               ttyControlSelector.addSelectionListener(new SelectionAdapter(){
-                       @Override
-            public void widgetSelected(SelectionEvent e) {
-                               boolean selected = ttyControlSelector.getSelection();
-                               setTTYControlEnabled(selected);
-                               setTCPControlEnabled(!selected);
-                               onModify();
-                       }
-               });
-
-               ttyControl = new Combo(panel, SWT.DROP_DOWN);
-               layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
-               ttyControl.setLayoutData(layoutData);
-               ttyControl.addModifyListener(new ModifyListener(){
-                       @Override
-            public void modifyText(ModifyEvent e) {
-                               onModify();
-                       }
-               });
-
-               parent.getDisplay().asyncExec(new Runnable() {
-                       @Override
-            public void run() {
-                               boolean enable = ttyHistory != null && ttyHistory.contains(data);
-                               setTTYControlEnabled(enable);
-                               setTCPControlEnabled(!enable);
-                               onModify();
-                       }
-               });
-
-               Composite tcpComp = new Composite(parent, SWT.NONE);
-               layout = new GridLayout(2, true);
-               tcpComp.setLayout(layout);
-               layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-               tcpComp.setLayoutData(layoutData);
-
-               Composite tcpAddrComp = new Composite(tcpComp, SWT.NONE);
-               layout = new GridLayout(2, false);
-               layout.marginWidth = 0; layout.marginHeight = 0;
-               tcpAddrComp.setLayout(layout);
-               layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-               tcpAddrComp.setLayoutData(layoutData);
-
-               tcpControlSelector = new Button(tcpAddrComp, SWT.RADIO);
-               tcpControlSelector.setText(Messages.SerialPortAddressDialog_address);
-               layoutData = new GridData(SWT.LEAD, SWT.CENTER, false, false);
-               tcpControlSelector.setLayoutData(layoutData);
-               tcpControlSelector.setSelection(false);
-               tcpControlSelector.addSelectionListener(new SelectionAdapter(){
-                       @Override
-            public void widgetSelected(SelectionEvent e) {
-                               boolean selected = tcpControlSelector.getSelection();
-                               setTTYControlEnabled(!selected);
-                               setTCPControlEnabled(selected);
-                               onModify();
-                       }
-               });
-
-               addressControl = new Combo(tcpAddrComp, SWT.DROP_DOWN);
-               layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
-               addressControl.setLayoutData(layoutData);
-               addressControl.addModifyListener(new ModifyListener(){
-                       @Override
-            public void modifyText(ModifyEvent e) {
-                               onModify();
-                       }
-               });
-
-               Composite tcpPortComp = new Composite(tcpComp, SWT.NONE);
-               layout = new GridLayout(2, false);
-               layout.marginWidth = 0; layout.marginHeight = 0;
-               tcpPortComp.setLayout(layout);
-               layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-               tcpPortComp.setLayoutData(layoutData);
-
-               portLabel = new Label(tcpPortComp, SWT.HORIZONTAL);
-               portLabel.setText(Messages.SerialPortAddressDialog_port);
-               layoutData = new GridData(SWT.LEAD, SWT.CENTER, false, false);
-               portLabel.setLayoutData(layoutData);
-
-               portControl = new Combo(tcpPortComp, SWT.DROP_DOWN);
-               layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
-               portControl.setLayoutData(layoutData);
-               portControl.addVerifyListener(new VerifyListener() {
-                       @Override
-                       public void verifyText(VerifyEvent e) {
-                               StringBuilder buffer = new StringBuilder(((Combo)e.widget).getText());
-
-                               try {
-                                       if (e.end > e.start) {
-                                               buffer.replace(e.start, e.end, e.text);
-                                       } else if (e.end >= 0) {
-                                               buffer.insert(e.end, e.text);
-                                       }
-                               } catch (StringIndexOutOfBoundsException exc) { /* ignored on purpose */ }
-
-                               String fulltext = buffer.toString();
-                               e.doit = fulltext.matches("([0-9]{0,5})|(0((x|X)[0-9a-fA-F]{0,4})?)"); //$NON-NLS-1$
-
-                               if (e.doit && fulltext.length() > 0 && !fulltext.equalsIgnoreCase("0x")) { //$NON-NLS-1$
-                                       try {
-                                               int value = Integer.decode(fulltext).intValue();
-                                               if (value < 0 || value > 65535) {
-                                                       e.doit = false;
-                                               }
-                                       }
-                                       catch (Exception ex) {
-                                               e.doit = false;
-                                       }
-                               }
-                       }
-               });
-               portControl.addModifyListener(new ModifyListener(){
-                       @Override
-            public void modifyText(ModifyEvent e) {
-                               onModify();
-                       }
-               });
-
-               // Trigger the runnable after having created all controls!
-               parent.getDisplay().asyncExec(new Runnable() {
-                       @Override
-            public void run() {
-                               boolean enable = tcpHistory != null && tcpHistory.contains(data);
-                               setTTYControlEnabled(!enable);
-                               setTCPControlEnabled(enable);
-                               onModify();
-                       }
-               });
-
-               applyDialogFont(ttyComp);
-               applyDialogFont(tcpComp);
-
-               setupData();
-       }
-
-       private void setupData() {
-               setTTYControlEnabled(true);
-               setTCPControlEnabled(false);
-               if (ttyHistory != null && !ttyHistory.isEmpty()) {
-                       for (String tty : ttyHistory) {
-                               if (tty != null && tty.trim().length() > 0 && ttyControl.indexOf(tty) == -1) {
-                                       ttyControl.add(tty.trim());
-                               }
-                               if (tty != null && tty.equals(data)) {
-                                       ttyControl.setText(tty.trim());
-                               }
-                       }
-               }
-               if (tcpHistory != null && !tcpHistory.isEmpty()) {
-                       for (String tcp : tcpHistory) {
-                               String[] data = tcp.split(":"); //$NON-NLS-1$
-                               if (data.length > 1) {
-                                       if (data[1] != null && data[1].trim().length() > 0 && ttyControl.indexOf(data[1]) == -1) {
-                                               addressControl.add(data[1].trim());
-                                       }
-                               }
-                               if (data.length > 2) {
-                                       if (data[2] != null && data[2].trim().length() > 0 && ttyControl.indexOf(data[2]) == -1) {
-                                               addressControl.add(data[2].trim());
-                                       }
-                               }
-                               if (tcp.equals(this.data)) {
-                                       setTTYControlEnabled(false);
-                                       setTCPControlEnabled(true);
-                                       if (data.length > 1) {
-                                               addressControl.setText(data[1]);
-                                       }
-                                       if (data.length > 2) {
-                                               portControl.setText(data[2]);
-                                       }
-                               }
-                       }
-               }
-               onModify();
-       }
-
-       void setTTYControlEnabled(boolean enable) {
-               ttyControlSelector.setSelection(enable);
-               ttyControl.setEnabled(enable);
-       }
-
-       void setTCPControlEnabled(boolean enable) {
-               tcpControlSelector.setSelection(enable);
-               addressControl.setEnabled(enable);
-               portControl.setEnabled(enable);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.TrayDialog#createButtonBar(org.eclipse.swt.widgets.Composite)
-        */
-       @Override
-       protected Control createButtonBar(Composite parent) {
-               Control control =  super.createButtonBar(parent);
-               setButtonEnabled(OK, false);
-               return control;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-        */
-       @Override
-       protected void okPressed() {
-               if (ttyControlSelector.getSelection()) {
-                       data = ttyControl.getText();
-               }
-               else {
-                       data = "tcp:" + addressControl.getText() + ":" + portControl.getText(); //$NON-NLS-1$ //$NON-NLS-2$
-               }
-               super.okPressed();
-       }
-
-       /**
-        * Called from the single controls if the content of the controls changed.
-        */
-       protected void onModify() {
-               setMessage(null);
-
-               boolean valid = false;
-
-               if (ttyControlSelector.getSelection()) {
-                       valid = isTtyControlValid();
-               } else {
-                       valid = isAddressControlValid();
-                       valid &= isPortControlValid();
-               }
-
-               if (getMessage() == null) {
-                       setDefaultMessage(Messages.SerialPortAddressDialog_message, IMessageProvider.INFORMATION);
-               }
-
-               setButtonEnabled(OK, valid);
-       }
-
-       private static final Pattern validCharacters = Platform.OS_WIN32.equals(Platform.getOS()) ? Pattern.compile("[\\w]+") : Pattern.compile("[\\w/]+"); //$NON-NLS-1$ //$NON-NLS-2$
-
-       /**
-        * Validates the tty device control.
-        *
-        * @return <code>True</code> if the control is valid, <code>false</code> otherwise.
-        */
-       protected boolean isTtyControlValid() {
-               if (ttyControl == null || ttyControl.isDisposed()) return false;
-
-               boolean valid = true;
-
-               String m = null;
-               int mt = IMessageProvider.NONE;
-
-               String newText = ttyControl.getText();
-               Assert.isNotNull(newText);
-               if (newText.trim().length() > 0) {
-                       Matcher matcher = validCharacters.matcher(newText);
-                       if (!matcher.matches()) {
-                               m = Messages.SerialLinePanel_error_invalidCharactes;
-                               mt = IMessageProvider.ERROR;
-                       }
-               }
-               else {
-                       m = Messages.SerialLinePanel_error_emptyHostTTYDevice;
-                       mt = IMessageProvider.INFORMATION;
-               }
-
-               valid = mt != IMessageProvider.ERROR;
-               if (mt > getMessageType()) setMessage(m, mt);
-
-               return valid;
-       }
-
-       /**
-        * Validates the address control.
-        *
-        * @return <code>True</code> if the control is valid, <code>false</code> otherwise.
-        */
-       protected boolean isAddressControlValid() {
-               if (addressControl == null || addressControl.isDisposed()) return false;
-
-               boolean valid = true;
-
-               String m = null;
-               int mt = IMessageProvider.NONE;
-
-               String ipOrHostName = addressControl.getText();
-
-               // info message when value is empty
-               if (ipOrHostName == null || ipOrHostName.trim().length() == 0) {
-                       m = Messages.SerialPortAddressDialog_Information_MissingTargetNameAddress;
-                       mt = IMessageProvider.INFORMATION;
-               } else {
-                       ipOrHostName = ipOrHostName.trim();
-                       // check IP address when only numeric values and '.' are entered
-                       if (ipOrHostName.matches(IP_CHARACTERS_REGEX)) {
-                               if (!ipOrHostName.matches(IP_REGEX)) {
-                                       m = Messages.SerialPortAddressDialog_Error_InvalidTargetIpAddress;
-                                       mt = IMessageProvider.ERROR;
-                               }
-                       }
-                       else if (ipOrHostName.matches(NAME_CHARACTERS_REGEX)) {
-                               if (!ipOrHostName.matches(NAME_REGEX)) {
-                                       m = Messages.SerialPortAddressDialog_Error_InvalidTargetNameAddress;
-                                       mt = IMessageProvider.ERROR;
-                               }
-                       }
-                       else {
-                               m = Messages.SerialPortAddressDialog_Error_InvalidTargetNameAddress;
-                               mt = IMessageProvider.ERROR;
-                       }
-               }
-
-               valid = mt != IMessageProvider.ERROR;
-               if (mt > getMessageType()) setMessage(m, mt);
-
-               return valid;
-       }
-
-       /**
-        * Validates the port control.
-        *
-        * @return <code>True</code> if the control is valid, <code>false</code> otherwise.
-        */
-       protected boolean isPortControlValid() {
-               if (portControl == null || portControl.isDisposed()) return false;
-
-               boolean valid = true;
-
-               String m = null;
-               int mt = IMessageProvider.NONE;
-
-               String newText = portControl.getText();
-               Assert.isNotNull(newText);
-               if (newText.trim().length() > 0) {
-                       if (!newText.matches("([0-9]{0,5})|(0((x|X)[0-9a-fA-F]{0,4})?)")) { //$NON-NLS-1$
-                               m = Messages.SerialPortAddressDialog_Error_InvalidPort;
-                               mt = IMessageProvider.ERROR;
-                       } else {
-                               try {
-                                       int value = Integer.decode(newText).intValue();
-                                       if (value < 0 || value > 65535) {
-                                               m = Messages.SerialPortAddressDialog_Error_InvalidPortRange;
-                                               mt = IMessageProvider.ERROR;
-                                       }
-                               }
-                               catch (Exception ex) { /* ignored on purpose */ }
-                       }
-               }
-               else {
-                       m = Messages.SerialPortAddressDialog_Information_MissingPort;
-                       mt = IMessageProvider.INFORMATION;
-               }
-
-               valid = mt != IMessageProvider.ERROR;
-               if (mt > getMessageType()) setMessage(m, mt);
-
-               return valid;
-       }
-
-       /**
-        * Return the new name after OK was pressed.
-        * Unless OK was pressed, the old name is returned.
-        */
-       public String getData() {
-               return data;
-       }
-
-       /**
-        * Cleanup when dialog is closed.
-        */
-       protected void dispose() {
-               message = null;
-               messageType = IMessageProvider.NONE;
-               errorMessage = null;
-               title = null;
-               defaultMessage = null;
-               defaultMessageType = IMessageProvider.NONE;
-       }
-
-       /**
-        * Cleanup the Dialog and close it.
-        */
-       @Override
-       public boolean close() {
-               dispose();
-               return super.close();
-       }
-
-       /**
-        * Set the enabled state of the dialog button specified by the given id (@see <code>IDialogConstants</code>)
-        * to the given state.
-        *
-        * @param buttonId The button id for the button to change the enabled state for.
-        * @param enabled The new enabled state to set for the button.
-        */
-       public void setButtonEnabled(int buttonId, boolean enabled) {
-               Button button = getButton(buttonId);
-               if (button != null) {
-                       button.setEnabled(enabled);
-               }
-       }
-
-       /**
-        * Sets the title for this dialog.
-        *
-        * @param title The title.
-        */
-       public void setDialogTitle(String title) {
-               if (getShell() != null && !getShell().isDisposed()) {
-                       getShell().setText(title);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.TitleAreaDialog#setTitle(java.lang.String)
-        */
-       @Override
-       public void setTitle(String newTitle) {
-               title = newTitle;
-               super.setTitle(newTitle);
-       }
-
-       /**
-        * Set the default message. The default message is shown within the
-        * dialogs message area if no other message is set.
-        *
-        * @param message The default message or <code>null</code>.
-        * @param type The default message type. See {@link IMessageProvider}.
-        */
-       public void setDefaultMessage(String message, int type) {
-               defaultMessage = message;
-               defaultMessageType = type;
-               // Push the default message to the dialog if no other message is set
-               if (!isMessageSet() && getContents() != null) {
-                       super.setMessage(defaultMessage, defaultMessageType);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.TitleAreaDialog#setMessage(java.lang.String, int)
-        */
-       @Override
-       public void setMessage(String newMessage, int newType) {
-               // To be able to implement IMessageProvider, we have to remember the
-               // set message ourselfs. There is no access to these information by the
-               // base class.
-               message = newMessage; messageType = newType;
-               // Only pass on to super implementation if the control has been created yet
-               if (getContents() != null) {
-                       super.setMessage(message != null ? message : defaultMessage, message != null ? messageType : defaultMessageType);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.TitleAreaDialog#setErrorMessage(java.lang.String)
-        */
-       @Override
-       public void setErrorMessage(String newErrorMessage) {
-               // See setMessage(...)
-               errorMessage = newErrorMessage;
-               super.setErrorMessage(newErrorMessage);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.IMessageProvider#getMessage()
-        */
-       @Override
-       public String getMessage() {
-               return errorMessage != null ? errorMessage : message;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.IMessageProvider#getMessageType()
-        */
-       @Override
-       public int getMessageType() {
-               return errorMessage != null ? IMessageProvider.ERROR : messageType;
-       }
-
-       /**
-        * Returns if or if not an message is set to the dialog.
-        *
-        * @return <code>True</code> if a message has been set, <code>false</code> otherwise.
-        */
-       public boolean isMessageSet() {
-               return errorMessage != null || message != null;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/interfaces/ITraceIds.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/interfaces/ITraceIds.java
deleted file mode 100644 (file)
index acfd6da..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.connector.serial.interfaces;
-
-/**
- * Trace slot identifiers.
- */
-public interface ITraceIds {
-
-       /**
-        * If activated, trace information about serial device discovery is printed out.
-        */
-       public static final String TRACE_SERIAL_LINE_PANEL = "trace/serialLinePanel"; //$NON-NLS-1$
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/interfaces/IWireTypeSerial.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/interfaces/IWireTypeSerial.java
deleted file mode 100644 (file)
index c8d0485..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.connector.serial.interfaces;
-
-/**
- * The properties specific to the wire type &quot;serial&quot;.
- */
-public interface IWireTypeSerial {
-
-       /**
-        * The data container.
-        */
-       public static String PROPERTY_CONTAINER_NAME = "serial"; //$NON-NLS-1$
-
-       /**
-        * The serial device name.
-        */
-       public static final String PROPERTY_SERIAL_DEVICE = "device"; //$NON-NLS-1$
-
-       /**
-        * The baud rate.
-        */
-       public static final String PROPERTY_SERIAL_BAUD_RATE = "baudrate"; //$NON-NLS-1$
-
-       /**
-        * The data bits
-        */
-       public static final String PROPERTY_SERIAL_DATA_BITS = "databits"; //$NON-NLS-1$
-
-       /**
-        * The parity
-        */
-       public static final String PROPERTY_SERIAL_PARITY = "parity"; //$NON-NLS-1$
-
-       /**
-        * The stop bits
-        */
-       public static final String PROPERTY_SERIAL_STOP_BITS = "stopbits"; //$NON-NLS-1$
-
-       /**
-        * The flow control
-        */
-       public static final String PROPERTY_SERIAL_FLOW_CONTROL = "flowcontrol"; //$NON-NLS-1$
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/launcher/SerialLauncherDelegate.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/launcher/SerialLauncherDelegate.java
deleted file mode 100644 (file)
index 7e947b8..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.connector.serial.launcher;
-
-import java.text.DateFormat;
-import java.util.Date;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalConnectorExtension;
-import org.eclipse.tm.terminal.connector.serial.connector.SerialSettings;
-import org.eclipse.tm.terminal.connector.serial.controls.SerialConfigurationPanel;
-import org.eclipse.tm.terminal.connector.serial.nls.Messages;
-import org.eclipse.tm.terminal.view.core.TerminalServiceFactory;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler;
-import org.eclipse.tm.terminal.view.ui.internal.SettingsStore;
-import org.eclipse.tm.terminal.view.ui.launcher.AbstractLauncherDelegate;
-
-/**
- * Serial launcher delegate implementation.
- */
-@SuppressWarnings("restriction")
-public class SerialLauncherDelegate extends AbstractLauncherDelegate {
-       // The serial terminal connection memento handler
-       private final IMementoHandler mementoHandler = new SerialMementoHandler();
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#needsUserConfiguration()
-        */
-       @Override
-       public boolean needsUserConfiguration() {
-               return true;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#getPanel(org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer)
-        */
-       @Override
-       public IConfigurationPanel getPanel(IConfigurationPanelContainer container) {
-               return new SerialConfigurationPanel(container);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#execute(java.util.Map, org.eclipse.tm.terminal.view.core.interfaces.ITerminalService.Done)
-        */
-       @Override
-       public void execute(Map<String, Object> properties, ITerminalService.Done done) {
-               Assert.isNotNull(properties);
-
-               // Set the terminal tab title
-               String terminalTitle = getTerminalTitle(properties);
-               if (terminalTitle != null) {
-                       properties.put(ITerminalsConnectorConstants.PROP_TITLE, terminalTitle);
-               }
-
-               // Get the terminal service
-               ITerminalService terminal = TerminalServiceFactory.getService();
-               // If not available, we cannot fulfill this request
-               if (terminal != null) {
-                       terminal.openConsole(properties, done);
-               }
-       }
-
-       /**
-        * Returns the terminal title string.
-        * <p>
-        * The default implementation constructs a title like &quot;Serial &lt;port&gt; (Start time) &quot;.
-        *
-        * @return The terminal title string or <code>null</code>.
-        */
-       private String getTerminalTitle(Map<String, Object> properties) {
-               // Try to see if the user set a title explicitly via the properties map.
-               String title = getDefaultTerminalTitle(properties);
-               if (title != null) return title;
-
-               String device = (String)properties.get(ITerminalsConnectorConstants.PROP_SERIAL_DEVICE);
-
-               if (device != null) {
-                       DateFormat format = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
-                       String date = format.format(new Date(System.currentTimeMillis()));
-                       return NLS.bind(Messages.SerialLauncherDelegate_terminalTitle, new String[]{device, date});
-               }
-
-               return Messages.SerialLauncherDelegate_terminalTitle_default;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.runtime.PlatformObject#getAdapter(java.lang.Class)
-        */
-       @Override
-       public Object getAdapter(Class adapter) {
-               if (IMementoHandler.class.equals(adapter)) {
-                       return mementoHandler;
-               }
-           return super.getAdapter(adapter);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#createTerminalConnector(java.util.Map)
-        */
-    @Override
-       public ITerminalConnector createTerminalConnector(Map<String, Object> properties) {
-       Assert.isNotNull(properties);
-
-       // Check for the terminal connector id
-       String connectorId = (String)properties.get(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID);
-               if (connectorId == null) connectorId = "org.eclipse.tm.terminal.connector.serial.SerialConnector"; //$NON-NLS-1$
-
-               String port = (String)properties.get(ITerminalsConnectorConstants.PROP_SERIAL_DEVICE);
-               String baud = (String)properties.get(ITerminalsConnectorConstants.PROP_SERIAL_BAUD_RATE);
-               Object value = properties.get(ITerminalsConnectorConstants.PROP_TIMEOUT);
-               String timeout = value instanceof Integer ? ((Integer)value).toString() : null;
-               String databits = (String)properties.get(ITerminalsConnectorConstants.PROP_SERIAL_DATA_BITS);
-               String stopbits = (String)properties.get(ITerminalsConnectorConstants.PROP_SERIAL_STOP_BITS);
-               String parity = (String)properties.get(ITerminalsConnectorConstants.PROP_SERIAL_PARITY);
-               String flowcontrol = (String)properties.get(ITerminalsConnectorConstants.PROP_SERIAL_FLOW_CONTROL);
-
-               // Construct the terminal settings store
-               ISettingsStore store = new SettingsStore();
-
-               // Construct the serial settings
-               SerialSettings serialSettings = new SerialSettings();
-               serialSettings.setSerialPort(port);
-               serialSettings.setBaudRate(baud);
-               serialSettings.setTimeout(timeout);
-               serialSettings.setDataBits(databits);
-               serialSettings.setStopBits(stopbits);
-               serialSettings.setParity(parity);
-               serialSettings.setFlowControl(flowcontrol);
-
-               // And save the settings to the store
-               serialSettings.save(store);
-
-               // Construct the terminal connector instance
-               ITerminalConnector connector = TerminalConnectorExtension.makeTerminalConnector(connectorId);
-               if (connector != null) {
-                       // Apply default settings
-                       connector.setDefaultSettings();
-                       // And load the real settings
-                       connector.load(store);
-               }
-
-               return connector;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/launcher/SerialMementoHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/launcher/SerialMementoHandler.java
deleted file mode 100644 (file)
index 5af0ef8..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.connector.serial.launcher;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler;
-import org.eclipse.ui.IMemento;
-
-/**
- * Serial terminal connection memento handler implementation.
- */
-public class SerialMementoHandler implements IMementoHandler {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler#saveState(org.eclipse.ui.IMemento, java.util.Map)
-        */
-       @Override
-       public void saveState(IMemento memento, Map<String, Object> properties) {
-               Assert.isNotNull(memento);
-               Assert.isNotNull(properties);
-
-               // Do not write the terminal title to the memento -> needs to
-               // be recreated at the time of restoration.
-               memento.putString(ITerminalsConnectorConstants.PROP_SERIAL_DEVICE, (String)properties.get(ITerminalsConnectorConstants.PROP_SERIAL_DEVICE));
-               memento.putString(ITerminalsConnectorConstants.PROP_SERIAL_BAUD_RATE, (String)properties.get(ITerminalsConnectorConstants.PROP_SERIAL_BAUD_RATE));
-               memento.putString(ITerminalsConnectorConstants.PROP_SERIAL_DATA_BITS, (String)properties.get(ITerminalsConnectorConstants.PROP_SERIAL_DATA_BITS));
-               memento.putString(ITerminalsConnectorConstants.PROP_SERIAL_PARITY, (String)properties.get(ITerminalsConnectorConstants.PROP_SERIAL_PARITY));
-               memento.putString(ITerminalsConnectorConstants.PROP_SERIAL_STOP_BITS, (String)properties.get(ITerminalsConnectorConstants.PROP_SERIAL_STOP_BITS));
-               memento.putString(ITerminalsConnectorConstants.PROP_SERIAL_FLOW_CONTROL, (String)properties.get(ITerminalsConnectorConstants.PROP_SERIAL_FLOW_CONTROL));
-               Object value = properties.get(ITerminalsConnectorConstants.PROP_TIMEOUT);
-               memento.putInteger(ITerminalsConnectorConstants.PROP_TIMEOUT, value instanceof Integer ? ((Integer)value).intValue() : -1);
-               memento.putString(ITerminalsConnectorConstants.PROP_ENCODING, (String)properties.get(ITerminalsConnectorConstants.PROP_ENCODING));
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler#restoreState(org.eclipse.ui.IMemento, java.util.Map)
-        */
-       @Override
-       public void restoreState(IMemento memento, Map<String, Object> properties) {
-               Assert.isNotNull(memento);
-               Assert.isNotNull(properties);
-
-               // Restore the terminal properties from the memento
-               properties.put(ITerminalsConnectorConstants.PROP_SERIAL_DEVICE, memento.getString(ITerminalsConnectorConstants.PROP_SERIAL_DEVICE));
-               properties.put(ITerminalsConnectorConstants.PROP_SERIAL_BAUD_RATE, memento.getString(ITerminalsConnectorConstants.PROP_SERIAL_BAUD_RATE));
-               properties.put(ITerminalsConnectorConstants.PROP_SERIAL_DATA_BITS, memento.getString(ITerminalsConnectorConstants.PROP_SERIAL_DATA_BITS));
-               properties.put(ITerminalsConnectorConstants.PROP_SERIAL_PARITY, memento.getString(ITerminalsConnectorConstants.PROP_SERIAL_PARITY));
-               properties.put(ITerminalsConnectorConstants.PROP_SERIAL_STOP_BITS, memento.getString(ITerminalsConnectorConstants.PROP_SERIAL_STOP_BITS));
-               properties.put(ITerminalsConnectorConstants.PROP_SERIAL_FLOW_CONTROL, memento.getString(ITerminalsConnectorConstants.PROP_SERIAL_FLOW_CONTROL));
-               Integer timeout = memento.getInteger(ITerminalsConnectorConstants.PROP_TIMEOUT);
-               if (timeout != null && timeout.intValue() != -1) properties.put(ITerminalsConnectorConstants.PROP_TIMEOUT, timeout);
-               properties.put(ITerminalsConnectorConstants.PROP_ENCODING, memento.getString(ITerminalsConnectorConstants.PROP_ENCODING));
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/nls/Messages.java b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/nls/Messages.java
deleted file mode 100644 (file)
index 19de4b7..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.connector.serial.nls;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Externalized strings management.
- */
-public class Messages extends NLS {
-
-       // The plug-in resource bundle name
-       private static final String BUNDLE_NAME = "org.eclipse.tm.terminal.connector.serial.nls.Messages"; //$NON-NLS-1$
-
-       /**
-        * Static constructor.
-        */
-       static {
-               // Load message values from bundle file
-               NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-       }
-
-       // **** Declare externalized string id's down here *****
-
-       public static String SerialLauncherDelegate_terminalTitle;
-       public static String SerialLauncherDelegate_terminalTitle_default;
-
-       public static String SerialLinePanel_hostTTYDevice_label;
-       public static String SerialLinePanel_hostTTYSpeed_label;
-       public static String SerialLinePanel_hostTTYDatabits_label;
-       public static String SerialLinePanel_hostTTYParity_label;
-       public static String SerialLinePanel_hostTTYStopbits_label;
-       public static String SerialLinePanel_hostTTYFlowControl_label;
-       public static String SerialLinePanel_hostTTYTimeout_label;
-       public static String SerialLinePanel_customSerialBaudRate_title;
-       public static String SerialLinePanel_customSerialBaudRate_message;
-       public static String SerialLinePanel_error_invalidCharactes;
-       public static String SerialLinePanel_error_invalidCharactesBaudRate;
-       public static String SerialLinePanel_error_emptyHostTTYDevice;
-       public static String SerialLinePanel_error_emptyHostTTYSpeedRate;
-       public static String SerialLinePanel_error_emptyHostTTYDatabits;
-       public static String SerialLinePanel_error_emptyHostTTYParity;
-       public static String SerialLinePanel_error_emptyHostTTYStopbits;
-       public static String SerialLinePanel_error_emptyHostTTYFlowControl;
-       public static String SerialLinePanel_error_emptyHostTTYTimeout;
-       public static String SerialLinePanel_info_editableTTYDeviceSelected;
-       public static String SerialLinePanel_info_editableTTYBaudRateSelected;
-       public static String SerialLinePanel_warning_FailedToLoadSerialPorts;
-
-       public static String SerialPortAddressDialog_dialogtitle;
-       public static String SerialPortAddressDialog_title;
-       public static String SerialPortAddressDialog_message;
-       public static String SerialPortAddressDialog_address;
-       public static String SerialPortAddressDialog_port;
-       public static String SerialPortAddressDialog_Information_MissingTargetNameAddress;
-       public static String SerialPortAddressDialog_Error_InvalidTargetNameAddress;
-       public static String SerialPortAddressDialog_Error_InvalidTargetIpAddress;
-       public static String SerialPortAddressDialog_Information_MissingPort;
-       public static String SerialPortAddressDialog_Error_InvalidPort;
-       public static String SerialPortAddressDialog_Error_InvalidPortRange;
-
-       public static String SerialConnector_Error_LiberayNotInstalled;
-
-       public static String SerialConnectWorker_PROP_TITLE;
-       public static String SerialConnectWorker_PORT_IN_USE;
-       public static String SerialConnectWorker_ANOTHER_TERMINAL;
-       public static String SerialConnectWorker_PORT_STOLEN;
-       public static String SerialConnectWorker_PORT_NOT_STOLEN;
-       public static String SerialConnectWorker_NO_SUCH_PORT;
-       public static String SerialConnectWorker_OWNERSHIP_GRANTED;
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/nls/Messages.properties b/rtosTMTerminal/org.eclipse.tm.terminal.connector.serial/src/org/eclipse/tm/terminal/connector/serial/nls/Messages.properties
deleted file mode 100644 (file)
index 37a9473..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-###############################################################################
-# Copyright (c) 2012, 2015 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
-###############################################################################
-
-SerialLauncherDelegate_terminalTitle=Serial {0} ({1})
-SerialLauncherDelegate_terminalTitle_default=Serial Terminal
-
-SerialLinePanel_hostTTYDevice_label=Port:
-SerialLinePanel_hostTTYSpeed_label=Baud Rate:
-SerialLinePanel_hostTTYDatabits_label=Data Bits:
-SerialLinePanel_hostTTYParity_label=Parity:
-SerialLinePanel_hostTTYStopbits_label=Stop Bits:
-SerialLinePanel_hostTTYFlowControl_label=Flow Control:
-SerialLinePanel_hostTTYTimeout_label=Timeout (sec):
-SerialLinePanel_customSerialBaudRate_title=Configure Custom Serial Baud Rate
-SerialLinePanel_customSerialBaudRate_message=Please enter the custom serial baud rate:
-SerialLinePanel_error_invalidCharactes=The device name you've entered contains invalid characters.
-SerialLinePanel_error_invalidCharactesBaudRate=The baud rate you've entered contains invalid characters.
-SerialLinePanel_error_emptyHostTTYDevice=Please select a valid host serial device.
-SerialLinePanel_error_emptyHostTTYSpeedRate=Please select a valid serial device speed.
-SerialLinePanel_error_emptyHostTTYDatabits=Please select a valid number of data bits.
-SerialLinePanel_error_emptyHostTTYParity=Please select a valid parity.
-SerialLinePanel_error_emptyHostTTYStopbits=Please select a valid number of stop bits.
-SerialLinePanel_error_emptyHostTTYFlowControl=Please select a valid flow control.
-SerialLinePanel_error_emptyHostTTYTimeout=Please select a valid timeout.
-SerialLinePanel_info_editableTTYDeviceSelected=Please re-select ''Other...'' again to activate the custom serial device input dialog.
-SerialLinePanel_info_editableTTYBaudRateSelected=Please re-select ''Other...'' again to activate the custom serial baud rate input dialog.
-SerialLinePanel_warning_FailedToLoadSerialPorts=Failed to enumerate the systems serial ports.
-
-SerialPortAddressDialog_dialogtitle=Other...
-SerialPortAddressDialog_title=Configure Custom Serial Device
-SerialPortAddressDialog_message=Select the type of the custom serial device and configure the device properties.
-SerialPortAddressDialog_address=Address:
-SerialPortAddressDialog_port=Port:
-SerialPortAddressDialog_Information_MissingTargetNameAddress=Please enter a valid target name or IP address.
-SerialPortAddressDialog_Error_InvalidTargetNameAddress=Target name or IP address is not valid.
-SerialPortAddressDialog_Error_InvalidTargetIpAddress=Target IP address is not valid.
-SerialPortAddressDialog_Information_MissingPort=Please enter a valid port number.
-SerialPortAddressDialog_Error_InvalidPort=Target port number must be a valid number in the range of 0 to 65535.
-SerialPortAddressDialog_Error_InvalidPortRange=Target port number must be in the range of 0 to 65535.
-
-
-SerialConnector_Error_LiberayNotInstalled = The RXTX library has not been installed properly! \n\
-\n\
-Installation:\n\
--------------\n\
-* Either (a) Use Help > Software Updates, Add Site and install from:\n\
-\ \ \ http://rxtx.qbang.org/eclipse/\n\
-* Or (b) Download and install RXTX for Eclipse from:\n\
-\ \ \ http://rxtx.qbang.org/eclipse/downloads/\n\
-\n\
-For other Platforms, more info and help see\n\
-\ \ \ http://www.rxtx.org/\n\
-\ \ \ https://bugs.eclipse.org/bugs/show_bug.cgi?id=175336#c6\n\
-\n\
-This message is also available in your Error Log for Copy & Paste.
-
-# Port Ownership Handling
-SerialConnectWorker_PROP_TITLE = Terminal
-SerialConnectWorker_PORT_IN_USE = Serial port \''{0}\'' is currently in use by {1}\!\nDo you want to try and steal the port?
-SerialConnectWorker_ANOTHER_TERMINAL = another Terminal View
-SerialConnectWorker_PORT_STOLEN = Port \''{0}\'' successfully obtained from {1}\r\n
-SerialConnectWorker_PORT_NOT_STOLEN = Connection Error!\r\n \''{0}\'' is already in use by {1}.\r\n
-SerialConnectWorker_NO_SUCH_PORT = No such port: \''{0}\''\r\n
-SerialConnectWorker_OWNERSHIP_GRANTED = Connection canceled due to ownership request from {0}.\r\n
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/.classpath b/rtosTMTerminal/org.eclipse.tm.terminal.control/.classpath
deleted file mode 100644 (file)
index 25d360e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-       <classpathentry kind="src" path="src/"/>
-       <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/.cvsignore b/rtosTMTerminal/org.eclipse.tm.terminal.control/.cvsignore
deleted file mode 100644 (file)
index ba077a4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/.gitignore b/rtosTMTerminal/org.eclipse.tm.terminal.control/.gitignore
deleted file mode 100644 (file)
index ae3c172..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/.options b/rtosTMTerminal/org.eclipse.tm.terminal.control/.options
deleted file mode 100644 (file)
index 7e591a4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-org.eclipse.tm.terminal.control/debug/log = false
-org.eclipse.tm.terminal.control/debug/log/char = false
-org.eclipse.tm.terminal.control/debug/log/VT100Backend = false
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/.project b/rtosTMTerminal/org.eclipse.tm.terminal.control/.project
deleted file mode 100644 (file)
index 11e18c3..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-       <name>org.eclipse.tm.terminal.control</name>
-       <comment></comment>
-       <projects>
-       </projects>
-       <buildSpec>
-               <buildCommand>
-                       <name>org.eclipse.jdt.core.javabuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.ManifestBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.SchemaBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-       </buildSpec>
-       <natures>
-               <nature>org.eclipse.pde.PluginNature</nature>
-               <nature>org.eclipse.jdt.core.javanature</nature>
-               <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-       </natures>
-</projectDescription>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/.settings/org.eclipse.core.resources.prefs b/rtosTMTerminal/org.eclipse.tm.terminal.control/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644 (file)
index 775bde2..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java=UTF-8
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/.settings/org.eclipse.jdt.core.prefs b/rtosTMTerminal/org.eclipse.tm.terminal.control/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644 (file)
index eb9982c..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/HelpContexts.xml b/rtosTMTerminal/org.eclipse.tm.terminal.control/HelpContexts.xml
deleted file mode 100644 (file)
index 761da67..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<!--
-Copyright (c) 2008 Wind River Systems, Inc.
-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: 
-Martin Oberhuber (Wind River) - initial API and implementation  
--->
-<contexts>
-  <context id="terminal_view">
-    <description>The Terminal View supports direct connections to remote systems via serial or network connections.
-    </description>
-  </context>
-</contexts>
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/META-INF/MANIFEST.MF b/rtosTMTerminal/org.eclipse.tm.terminal.control/META-INF/MANIFEST.MF
deleted file mode 100644 (file)
index 834c287..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.tm.terminal.control; singleton:=true
-Bundle-Version: 4.2.0.qualifier
-Bundle-Activator: org.eclipse.tm.internal.terminal.control.impl.TerminalPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ui
-Bundle-ActivationPolicy: lazy
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-ClassPath: .
-Export-Package: org.eclipse.tm.internal.terminal.connector;x-internal:=true,
- org.eclipse.tm.internal.terminal.control,
- org.eclipse.tm.internal.terminal.control.actions,
- org.eclipse.tm.internal.terminal.control.impl;x-internal:=true,
- org.eclipse.tm.internal.terminal.emulator;x-internal:=true,
- org.eclipse.tm.internal.terminal.model;x-internal:=true,
- org.eclipse.tm.internal.terminal.preferences,
- org.eclipse.tm.internal.terminal.provisional.api,
- org.eclipse.tm.internal.terminal.provisional.api.provider,
- org.eclipse.tm.internal.terminal.textcanvas;x-internal:=true,
- org.eclipse.tm.terminal.model
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/README.txt b/rtosTMTerminal/org.eclipse.tm.terminal.control/README.txt
deleted file mode 100644 (file)
index c88bc69..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-Terminal README
-===============
-
-The Terminal is a UI-less model of a grid of characters,
-plus an SWT widget that's updated asynchronously for 
-maximum performance. The widget can be hooked up to various
-ITerminalConnectors providing an InputStream, OutputStream,
-and a method for setting the Terminal Size.
-
-The widget processes ANSI control characters, including NUL,
-backspace, carriage return, linefeed, and a subset of ANSI
-escape sequences sufficient to allow use of screen-oriented
-applications, such as vi, Emacs, and any GNU readline-enabled
-application (Bash, bc, ncftp, etc.).
-
-This is not yet a fully compliant vt100 / vt102 terminal 
-emulator!
-
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/about.html b/rtosTMTerminal/org.eclipse.tm.terminal.control/about.html
deleted file mode 100644 (file)
index d4cc693..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-<p>June 5, 2007</p>    
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/about.ini b/rtosTMTerminal/org.eclipse.tm.terminal.control/about.ini
deleted file mode 100644 (file)
index 3adc27a..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=tm32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/about.properties b/rtosTMTerminal/org.eclipse.tm.terminal.control/about.properties
deleted file mode 100644 (file)
index ad76531..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2016 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: 
-# Martin Oberhuber - initial API and implementation 
-################################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Target Management Terminal Widget\n\
-\n\
-Version: {featureVersion}\n\
-\n\
-(c) Copyright Wind River Systems, Inc. and others 2003, 2016.  All rights reserved.\n\
-Visit http://www.eclipse.org/tm
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/build.properties b/rtosTMTerminal/org.eclipse.tm.terminal.control/build.properties
deleted file mode 100644 (file)
index 6d04269..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2015 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
-#
-# Initial Contributors:
-# The following Wind River employees contributed to the Terminal component
-# that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
-# Helmut Haigermoser and Ted Williams.
-#
-# Contributors:
-# Michael Scharf (Wind River) - split into core, view and connector plugins 
-# Martin Oberhuber (Wind River) - fixed copyright headers and beautified
-# Anna Dushistova (MontaVista) - added icons
-###############################################################################
-bin.includes = .,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties,\
-               .options,\
-               README.txt,\
-               about.html,\
-               about.ini,\
-               about.properties,\
-               tm32.png,\
-               icons/,\
-               HelpContexts.xml,\
-               css/
-               
-source.. = src/
-output.. = bin/
-src.includes = schema/,\
-               about.html
-               
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/css/org.eclipse.tm.terminal.stylesheet.dark.css b/rtosTMTerminal/org.eclipse.tm.terminal.control/css/org.eclipse.tm.terminal.stylesheet.dark.css
deleted file mode 100644 (file)
index ab89d9e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2015 vogella GmbH 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:
- * Lars Vogel <Lars.Vogel@gmail.com> - initial API and implementation
- ******************************************************************************/
-
-IEclipsePreferences#org-eclipse-tm-terminal-control {
-       preferences:
-       "TerminalPrefInvertColors=true"
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/icons/clcl16/clear_co.gif b/rtosTMTerminal/org.eclipse.tm.terminal.control/icons/clcl16/clear_co.gif
deleted file mode 100644 (file)
index af30a42..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.control/icons/clcl16/clear_co.gif and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/icons/dlcl16/clear_co.gif b/rtosTMTerminal/org.eclipse.tm.terminal.control/icons/dlcl16/clear_co.gif
deleted file mode 100644 (file)
index 6775edf..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.control/icons/dlcl16/clear_co.gif and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/icons/elcl16/clear_co.gif b/rtosTMTerminal/org.eclipse.tm.terminal.control/icons/elcl16/clear_co.gif
deleted file mode 100644 (file)
index af30a42..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.control/icons/elcl16/clear_co.gif and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/plugin.properties b/rtosTMTerminal/org.eclipse.tm.terminal.control/plugin.properties
deleted file mode 100644 (file)
index 58e317d..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-###############################################################################
-# Copyright (c) 2003 - 2015 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
-#
-# Initial Contributors:
-# The following Wind River employees contributed to the Terminal component
-# that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
-# Helmut Haigermoser and Ted Williams.
-#
-# Contributors:
-# Michael Scharf (Wind River) - split into core, view and connector plugins 
-# Martin Oberhuber (Wind River) - fixed copyright headers and beautified
-# Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
-###############################################################################
-
-# NLS_MESSAGEFORMAT_NONE
-
-pluginName = Terminal Control (Embeddable Widget)
-providerName = Eclipse.org - Target Management
-
-terminal.context.name.edit=Terminal Control in Focus
-terminal.context.description.edit=Show modified keyboard shortcuts in context menu
-
-terminal.context.name.terminal=Terminal Typing Connected
-terminal.context.description.terminal=Override ALT+x menu access keys while typing into the Terminal
-
-terminal.insertion.description=Terminal view insertion
-terminal.insertion.name=Terminal view insert
-terminal.insertion.category.name=Terminal view commands
-terminal.view.insertion.description = Terminal view commands
-
-terminal.command.copy.name=Copy
-terminal.command.paste.name=Paste
-terminal.command.maximize.name=Maximize Active View or Editor
-terminal.command.quickaccess.name=Quick Access
-
-terminal.preferences.name = Terminal
-terminal.font.description = The font for the terminal console.
-terminal.font.label = Terminal Console Font
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/plugin.xml b/rtosTMTerminal/org.eclipse.tm.terminal.control/plugin.xml
deleted file mode 100644 (file)
index f6f5f03..0000000
+++ /dev/null
@@ -1,275 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<!--
-# Copyright (c) 2006, 2014 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:
-# Michael Scharf (Wind River) - initial API and implementation 
-# Martin Oberhuber (Wind River) - fixed copyright headers and beautified
-# Michael Scharf (Wind River) - [237425] undefined tm.terminal command
-# Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
-# Martin Oberhuber (Wind River) - [434294] Add Mac bindings with COMMAND
-# Martin Oberhuber (Wind River) - [434487] Add key bindings for "maximize view" and "quick access"
-# Martin Oberhuber (Wind River) - [434939] Fix Keybinding conflicts with JEE Luna package
--->
-<plugin>
-   <extension-point id="connectors" name="Terminal Connector Extensions" schema="schema/connectors.exsd"/>
-   
-   <extension point="org.eclipse.ui.contexts">           
-      <context
-            name="%terminal.context.name.terminal"
-            description="%terminal.context.description.terminal"
-            parentId="org.eclipse.ui.contexts.window"
-            id="org.eclipse.tm.terminal.TerminalContext"
-            />
-    <context
-            name="%terminal.context.name.edit"
-            description="%terminal.context.description.edit"
-            parentId="org.eclipse.ui.contexts.window"
-            id="org.eclipse.tm.terminal.EditContext" />
-   </extension>
-
-    <extension point="org.eclipse.help.contexts">
-        <contexts file="HelpContexts.xml"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <!-- Dummy commands for bindings, see below -->
-      <command
-            categoryId="org.eclipse.tm.terminal.category1"
-            id="org.eclipse.tm.terminal.command1"
-            name="%terminal.insertion.name"/>
-      <command
-            categoryId="org.eclipse.tm.terminal.category1"
-            id="org.eclipse.tm.terminal.copy"
-            name="%terminal.command.copy.name"/>
-      <command
-            categoryId="org.eclipse.tm.terminal.category1"
-            id="org.eclipse.tm.terminal.paste"
-            name="%terminal.command.paste.name"/>
-      <command
-            categoryId="org.eclipse.tm.terminal.category1"
-            id="org.eclipse.tm.terminal.maximize"
-            name="%terminal.command.maximize.name">
-      </command>
-      <command
-            categoryId="org.eclipse.tm.terminal.category1"
-            id="org.eclipse.tm.terminal.quickaccess"
-            name="%terminal.command.quickaccess.name"/>
-      <category
-            description="%terminal.view.insertion.description"
-            id="org.eclipse.tm.terminal.category1"
-            name="%terminal.insertion.category.name"/>
-   </extension>
-
-    <extension point="org.eclipse.help.contexts">
-        <contexts file="HelpContexts.xml"/>
-    </extension>
-
-   <extension
-         point="org.eclipse.ui.bindings">
-      <!--
-      These keybindings are needed to disable the menu-activation keys (e.g.,
-      Alt-F for the File menu, etc.).  The code in method
-      TerminalControl.TerminalFocusListener.focusGained() disables the Eclipse key
-      binding service, but it doesn't disable the global menu-activation
-      keys.
-      -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+A"/> <!-- Search -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+B"/> <!-- Readline word-left: just to be safe -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+C"/> <!-- ClearCase, Extract Constant -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+D"/> <!-- Design, Diagram, Debug -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+E"/> <!-- Edit -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+F"/> <!-- File -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+G"/> <!-- Tar&get -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+H"/> <!-- Help -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+L"/> <!-- Ana&lyze -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+N"/> <!-- Navigate -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+P"/> <!-- Project, Papyrus, Ping -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+R"/> <!-- Run -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+S"/> <!-- Source -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+T"/> <!-- Refactor -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+V"/> <!-- CVS -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+W"/> <!-- Window -->
-      <key
-            commandId="org.eclipse.tm.terminal.command1"
-            contextId="org.eclipse.tm.terminal.TerminalContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="Alt+Y"/> <!-- S&ystem -->
-      <!-- 
-           For Copy and Paste, we need replacements since the default Ctrl+C / Ctrl+V
-           need to go to the terminal and thus are not available for local Copy and Paste.
-           This is not an issue on Mac, where COMMAND+C / COMMAND+V works fine.
-           
-           We add both CTRL+INSERT and CTRL+SHIFT+C since on some keyboards, an INSERT key
-           may not be available. Note: we want the "least surprising" and "most available"
-           of all bindings to be shown in the context menu according to the algorithm in 
-           IBindingService#getBestActiveBindingFor().
-           Therefore, we do not want these extra bindings to be shown on the Mac. 
-
-           Unfortunately, there is no way in Bindings to say "NOT Platforms X,Y,Z"
-           We would really like one of the following here but it doesnt work with Eclipse 4.3:
-              platforms="!carbon,!cocoa"
-              platforms="win32,motif,gtk,photon,wpf"
-           Since Eclipse doesnt support this, we will redefine the original Mac bindings below,
-           just to make them show up in the context menu.
-      -->
-      <key
-            commandId="org.eclipse.tm.terminal.copy"
-            contextId="org.eclipse.tm.terminal.EditContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+INSERT"/><!-- Ctrl+Insert -->
-      <key
-            commandId="org.eclipse.tm.terminal.copy"
-            contextId="org.eclipse.tm.terminal.EditContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+M2+C"><!-- Ctrl+Shift+C -->
-      </key>
-      <key
-            commandId="org.eclipse.tm.terminal.paste"
-            contextId="org.eclipse.tm.terminal.EditContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M2+INSERT"/><!-- Shift+Insert -->
-      <key
-            commandId="org.eclipse.tm.terminal.paste"
-            contextId="org.eclipse.tm.terminal.EditContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+M2+V"/><!-- Ctrl+Shift+V -->
-      <!--
-           Mac shortcuts need to be redefined with Platform Filter, in order to make
-           them "better" than the bindings above and thus show up in the menu.
-           See the algorithm in IBindingService#getBestActiveBindingFor().
-           It looks like the "carbon" entry is also valid for "cocoa" automatically.
-      -->
-      <key
-            commandId="org.eclipse.tm.terminal.copy"
-            contextId="org.eclipse.tm.terminal.EditContext"
-            platform="carbon"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+C">
-      </key>
-      <key
-            commandId="org.eclipse.tm.terminal.paste"
-            contextId="org.eclipse.tm.terminal.EditContext"
-            platform="carbon"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+V"/>
-      <!--
-           Additional Bindings for Quick Access (Ctrl+3) and Maximize View (Ctrl+M)
-           since these are extremely valuable, but the original shortcut may need
-           to go to the Terminal.
-      -->
-      <!-- org.eclipse.ui.window.quickAccess -->
-      <key
-            commandId="org.eclipse.tm.terminal.quickaccess"
-            contextId="org.eclipse.tm.terminal.EditContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M3+ARROW_RIGHT"/>
-      <!-- org.eclipse.ui.window.maximizePart -->
-      <key
-            commandId="org.eclipse.tm.terminal.maximize"
-            contextId="org.eclipse.tm.terminal.EditContext"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M3+ARROW_UP"/>
-   </extension>
-
-   <extension point="org.eclipse.ui.preferencePages">
-      <page
-            name="%terminal.preferences.name"
-            class="org.eclipse.tm.internal.terminal.preferences.TerminalPreferencePage"
-            id="org.eclipse.tm.terminal.TerminalPreferencePage">
-      </page>
-   </extension>
-
-   <extension point="org.eclipse.core.runtime.preferences">
-      <initializer class="org.eclipse.tm.internal.terminal.preferences.TerminalPreferenceInitializer"/>
-   </extension>
-
-   <extension point="org.eclipse.ui.themes" id="terminal.font">
-      <fontDefinition
-            defaultsTo="org.eclipse.jface.textfont"
-            id="terminal.views.view.font.definition"
-            label="%terminal.font.label">
-         <description>
-            %terminal.font.description
-         </description>
-      </fontDefinition>
-   </extension>
-   
-<!-- Theme contributions -->   
-   <extension point="org.eclipse.e4.ui.css.swt.theme">
-      <stylesheet
-            uri="css/org.eclipse.tm.terminal.stylesheet.dark.css">
-            <themeid refid="org.eclipse.e4.ui.css.theme.e4_dark"/>
-      </stylesheet>
-   </extension>
-
-</plugin>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/pom.xml b/rtosTMTerminal/org.eclipse.tm.terminal.control/pom.xml
deleted file mode 100644 (file)
index 08f92a4..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.tm.terminal</groupId>
-    <artifactId>org.eclipse.tm.terminal.maven-build</artifactId>
-    <version>4.2.0-SNAPSHOT</version>
-    <relativePath>../../admin/pom-build.xml</relativePath>
-  </parent>
-
-  <version>4.2.0-SNAPSHOT</version>
-  <artifactId>org.eclipse.tm.terminal.control</artifactId>
-  <packaging>eclipse-plugin</packaging>
-</project>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/schema/connectors.exsd b/rtosTMTerminal/org.eclipse.tm.terminal.control/schema/connectors.exsd
deleted file mode 100644 (file)
index 58681ba..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.tm.terminal.control" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.tm.terminal.control" id="connectors" name="Terminal Connector Extensions"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appInfo>
-            <meta.element />
-         </appInfo>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="1" maxOccurs="unbounded">
-            <element ref="connector"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="connector">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A class extending TerminalConnectorImpl
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl:"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Uniquely identify this connector for programmatic access. Clients will use this ID in order to find and instantiate it.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  The name of the connection (used in the UI)
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="hidden" type="boolean" use="default" value="false">
-            <annotation>
-               <documentation>
-                  When set to &quot;true&quot;, the terminal connector will not be visible to the user in connector selections.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-
-
-
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2006 - 2015 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: 
-Michael Scharf (Wind River) - initial API and implementation
-Martin Oberhuber (Wind River) - fixed copyright headers and beautified
-Uwe Stieber (Wind River) - [282996] [terminal][api] Add &quot;hidden&quot; attribute to terminal connector extension point
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/connector/TerminalConnector.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/connector/TerminalConnector.java
deleted file mode 100644 (file)
index cfbdabe..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Michael Scharf (Wind River) - [200541] Extract from TerminalConnectorExtension.TerminalConnectorProxy
- * Martin Oberhuber (Wind River) - [225853][api] Provide more default functionality in TerminalConnectorImpl 
- * Uwe Stieber (Wind River) - [282996] [terminal][api] Add "hidden" attribute to terminal connector extension point
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.connector;
-
-import java.io.OutputStream;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.tm.internal.terminal.control.impl.TerminalMessages;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalConnectorExtension;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl;
-
-/**
- * An {@link ITerminalConnector} instance, also known as terminal connection
- * type, for maintaining a single terminal connection.
- *
- * It provides all terminal connector functions that can be provided by static
- * markup without loading the actual implementation class. The actual
- * {@link TerminalConnectorImpl} implementation class is lazily loaded by the
- * provided {@link TerminalConnector.Factory} interface when needed. class, and
- * delegates to the actual implementation when needed. The following methods can
- * be called without initializing the contributed implementation class:
- * {@link #getId()}, {@link #getName()}, {@link #getSettingsSummary()},{@link #load(ISettings)},
- * {@link #setTerminalSize(int, int)}, {@link #save(ISettings)},
- * {@link #getAdapter(Class)}
- *
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
- *                Clients can get terminal connector instances through the
- *                {@link TerminalConnectorExtension} class.
- * @since org.eclipse.tm.terminal 2.0
- */
-public class TerminalConnector implements ITerminalConnector {
-       /**
-        * Creates an instance of TerminalConnectorImpl. This is used to lazily load
-        * classed defined in extensions.
-        *
-        * @since org.eclipse.tm.terminal 2.0
-        */
-       public interface Factory {
-               /**
-                * Factory method to create the actual terminal connector implementation
-                * when needed.
-                *
-                * @return a Connector
-                * @throws Exception
-                */
-               TerminalConnectorImpl makeConnector() throws Exception;
-       }
-       /**
-        * The factory for creating impl instances.
-        */
-       private final TerminalConnector.Factory fTerminalConnectorFactory;
-       /**
-        * The (display) name of the TerminalConnector
-        */
-       private final String fName;
-       /**
-        * The unique id the connector
-        */
-       private final String fId;
-       /**
-        * Flag to mark the connector as hidden.
-        */
-       private final boolean fHidden;
-       /**
-        * The connector
-        */
-       private TerminalConnectorImpl fConnector;
-       /**
-        * If the initialization of the class specified in the extension fails,
-        * this variable contains the error
-        */
-       private Exception fException;
-       /**
-        * The store might be set before the real connector is initialized.
-        * This keeps the value until the connector is created.
-        */
-       private ISettingsStore fStore;
-       /**
-        * Constructor for the terminal connector.
-        *
-        * @param terminalConnectorFactory Factory for lazily instantiating the
-        *            TerminalConnectorImpl when needed.
-        * @param id terminal connector ID. The connector is publicly known under
-        *            this ID.
-        * @param name translatable name to display the connector in the UI.
-        */
-       public TerminalConnector(TerminalConnector.Factory terminalConnectorFactory, String id, String name, boolean hidden) {
-               fTerminalConnectorFactory = terminalConnectorFactory;
-               fId = id;
-               fName = name;
-               fHidden = hidden;
-       }
-       public String getInitializationErrorMessage() {
-               getConnectorImpl();
-               if(fException!=null)
-                       return fException.getLocalizedMessage();
-               return null;
-       }
-       public String getId() {
-               return fId;
-       }
-       public String getName() {
-               return fName;
-       }
-       public boolean isHidden() {
-               return fHidden;
-       }
-       private TerminalConnectorImpl getConnectorImpl() {
-               if(!isInitialized()) {
-                       try {
-                               fConnector=fTerminalConnectorFactory.makeConnector();
-                               fConnector.initialize();
-                       } catch (Exception e) {
-                               fException=e;
-                               fConnector=new TerminalConnectorImpl(){
-                                       public void connect(ITerminalControl control) {
-                                               // super.connect(control);
-                                               control.setState(TerminalState.CLOSED);
-                                               control.setMsg(getInitializationErrorMessage());
-                                       }
-                                       public OutputStream getTerminalToRemoteStream() {
-                                               return null;
-                                       }
-                                       public String getSettingsSummary() {
-                                               return null;
-                                       }};
-                               // that's the place where we log the exception
-                               Logger.logException(e);
-                       }
-                       if(fConnector!=null && fStore!=null)
-                               fConnector.load(fStore);
-               }
-               return fConnector;
-       }
-
-       public boolean isInitialized() {
-               return fConnector!=null || fException!=null;
-       }
-       public void connect(ITerminalControl control) {
-               getConnectorImpl().connect(control);
-       }
-       public void disconnect() {
-               getConnectorImpl().disconnect();
-       }
-       public OutputStream getTerminalToRemoteStream() {
-               return getConnectorImpl().getTerminalToRemoteStream();
-       }
-       public String getSettingsSummary() {
-               if(fConnector!=null)
-                       return getConnectorImpl().getSettingsSummary();
-               else
-                       return TerminalMessages.NotInitialized;
-       }
-       public boolean isLocalEcho() {
-               return getConnectorImpl().isLocalEcho();
-       }
-       public void load(ISettingsStore store) {
-               if(fConnector==null) {
-                       fStore=store;
-               } else {
-                       getConnectorImpl().load(store);
-               }
-       }
-       @Override
-       public void setDefaultSettings() {
-               getConnectorImpl().setDefaultSettings();
-       }
-       public void save(ISettingsStore store) {
-               // no need to save the settings: it cannot have changed
-               // because we are not initialized....
-               if(fConnector!=null)
-                       getConnectorImpl().save(store);
-       }
-       public void setTerminalSize(int newWidth, int newHeight) {
-               // we assume that setTerminalSize is called also after
-               // the terminal has been initialized. Else we would have to cache
-               // the values....
-               if(fConnector!=null) {
-                       fConnector.setTerminalSize(newWidth, newHeight);
-               }
-       }
-       public Object getAdapter(Class adapter) {
-               TerminalConnectorImpl connector=null;
-               if(isInitialized())
-                       connector=getConnectorImpl();
-               // if we cannot create the connector then we cannot adapt...
-               if(connector!=null) {
-                       // maybe the connector is adaptable
-                       if(connector instanceof IAdaptable) {
-                               Object result =((IAdaptable)connector).getAdapter(adapter);
-                               // Not sure if the next block is needed....
-                               if(result==null)
-                                       //defer to the platform
-                                       result= Platform.getAdapterManager().getAdapter(connector, adapter);
-                               if(result!=null)
-                                       return result;
-                       }
-                       // maybe the real adapter is what we need....
-                       if(adapter.isInstance(connector))
-                               return connector;
-               }
-               // maybe we have to be adapted....
-               return Platform.getAdapterManager().getAdapter(this, adapter);
-       }
-}
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/connector/TerminalToRemoteInjectionOutputStream.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/connector/TerminalToRemoteInjectionOutputStream.java
deleted file mode 100644 (file)
index e73568d..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.connector;
-
-import java.io.ByteArrayOutputStream;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-class TerminalToRemoteInjectionOutputStream extends FilterOutputStream {
-       /**
-        * This class handles bytes written to the {@link TerminalToRemoteInjectionOutputStream}.
-        */
-       static abstract public class Interceptor {
-               protected OutputStream fOriginal;
-               /**
-                * @param original the injection into the original stream begins
-                * @throws IOException
-                */
-               public void begin(OutputStream original) throws IOException {
-                       fOriginal=original;
-               }
-               /**
-                * @param b a byte was written to the {@link TerminalToRemoteInjectionOutputStream}.
-                * @throws IOException
-                */
-               public void write(int b) throws IOException {
-               }
-               /**
-                * @param b bytes written to the {@link TerminalToRemoteInjectionOutputStream}.
-                * @param off   the start offset in the data.
-                * @param len   the number of bytes to write.
-                * @throws IOException
-                */
-               public void write(byte[] b, int off, int len) throws IOException {
-               }
-               /**
-                * The injection into the normal stream ends.
-                * @throws IOException
-                */
-               public void close() throws IOException {
-               }
-               public void flush() {
-               }
-       }
-       static public class BufferInterceptor extends Interceptor {
-               private final ByteArrayOutputStream fBuffer=new ByteArrayOutputStream();
-           public void close() throws IOException {
-               fOriginal.write(fBuffer.toByteArray());
-               }
-               public void write(byte[] b, int off, int len) throws IOException {
-                       fBuffer.write(b, off, len);
-               }
-               public void write(int b) throws IOException {
-                       fBuffer.write(b);
-               }
-       }
-       private class TerminalFilterOutputStream extends OutputStream {
-               final private Object fLock=TerminalToRemoteInjectionOutputStream.this;
-               public void close() throws IOException {
-                       synchronized(fLock) {
-                               if(fInjection==this) {
-                                       flush();
-                                       ungrabOutput();
-                               }
-                       }
-               }
-               public void write(byte[] b, int off, int len) throws IOException {
-                       synchronized(fLock) {
-                               checkStream();
-                               out.write(b, off, len);
-                       }
-               }
-               public void write(byte[] b) throws IOException {
-                       synchronized(fLock) {
-                               checkStream();
-                               out.write(b);
-                       }
-               }
-               public void flush() throws IOException {
-                       synchronized(fLock) {
-                               checkStream();
-                               out.flush();
-                       }
-               }
-               public void write(int b) throws IOException {
-                       synchronized(fLock) {
-                               checkStream();
-                               out.write(b);
-                       }
-               }
-               private void checkStream() throws IOException {
-                       if(fInjection!=this)
-                               throw new IOException("Stream is closed"); //$NON-NLS-1$
-               }
-       }
-    private Interceptor fInterceptor;
-    private TerminalFilterOutputStream fInjection;
-       public TerminalToRemoteInjectionOutputStream(OutputStream out) {
-               super(out);
-       }
-       synchronized protected void ungrabOutput() throws IOException {
-               if(fInterceptor!=null) {
-                       fInterceptor.close();
-                       fInterceptor=null;
-                       fInjection=null;
-               }
-       }
-    /**
-     * There can only be one injection stream active at a time. You must call close on the
-     * returned output stream to end the injection.
-     * @param interceptor This is used handle bytes sent while the injection stream is active.
-     * @return a output stream that can be used to write to the decorated stream.
-     * @throws IOException
-     */
-    public synchronized OutputStream grabOutput(Interceptor interceptor) throws IOException {
-       if(fInjection!=null) {
-               throw new IOException("Buffer in use"); //$NON-NLS-1$
-       }
-       fInterceptor=interceptor;
-       fInterceptor.begin(out);
-       fInjection=new TerminalFilterOutputStream();
-               return fInjection;
-    }
-    /** See {@link #grabOutput(TerminalToRemoteInjectionOutputStream.Interceptor)}.
-     * @return injection output stream
-     * @throws IOException
-     */
-    public synchronized OutputStream grabOutput() throws IOException {
-               return grabOutput(new BufferInterceptor());
-    }
-    synchronized public void close() throws IOException {
-       if(fInjection!=null) {
-               fInjection.close();
-       }
-               super.close();
-       }
-       synchronized public void flush() throws IOException {
-       if(fInterceptor!=null)
-               fInterceptor.flush();
-               out.flush();
-       }
-    synchronized public void write(byte[] b, int off, int len) throws IOException {
-       if(fInterceptor!=null)
-               fInterceptor.write(b, off, len);
-       else
-               out.write(b, off, len);
-       }
-       synchronized public void write(int b) throws IOException {
-       if(fInterceptor!=null)
-               fInterceptor.write(b);
-       else
-               out.write(b);
-    }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/CommandInputFieldWithHistory.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/CommandInputFieldWithHistory.java
deleted file mode 100644 (file)
index ffcdc4a..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial implementation
- * Michael Scharf (Wing River) - [211659] Add field assist to terminal input field
- * Michael Scharf (Wing River) - [196447] The optional terminal input line should be resizeable
- * Martin Oberhuber (Wind River) - [168197] Fix Terminal for CDC-1.1/Foundation-1.1
- * Michael Scharf (Wing River) - [236458] Fix 168197 lost the last entry
- * Anton Leherbauer (Wind River) - [220971] The optional terminal input line has redraw problems when resizing
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.fieldassist.IContentProposal;
-import org.eclipse.jface.fieldassist.IContentProposalProvider;
-import org.eclipse.jface.fieldassist.TextContentAdapter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.fieldassist.ContentAssistCommandAdapter;
-
-
-
-/**
- * Manages the Command History for the command line input
- * of the terminal control.
- * <li>
- * <ul>Navigate with ARROW_UP,ARROW_DOWN,PAGE_UP,PAGE_DOWN
- * <ul>ESC to cancel history editing
- * <ul>History can be edited (by moving up and edit) but changes are
- * not persistent (like in bash).
- * <ul>If the same command is entered multiple times in a row,
- * only one entry is kept in the history.
- * </li>
- *
- */
-public class CommandInputFieldWithHistory implements ICommandInputField {
-       private class FieldAssist implements IContentProposalProvider {
-
-               public IContentProposal[] getProposals(String contents, int position) {
-                       String prefix=contents.substring(0, position);
-                       List<Proposal> result=new ArrayList<Proposal>();
-                       // show an entry only once
-                       Set<String> seen=new HashSet<String>();
-                       for (Iterator<String> iterator = fHistory.iterator(); iterator.hasNext();) {
-                               String history = iterator.next();
-                               if(history.startsWith(prefix) && !seen.contains(history)) {
-                                       // the content is the rest of the history item
-                                       String content=history.substring(prefix.length());
-                                       result.add(new Proposal(content,history));
-                                       // don't add this proposal again
-                                       seen.add(history);
-                               }
-                       }
-                       return result.toArray(new IContentProposal[result.size()]);
-               }
-
-       }
-       private static class Proposal implements IContentProposal {
-
-               private final String fContent;
-               private final String fLabel;
-               Proposal(String content, String label) {
-                       fContent= content;
-                       fLabel= label;
-               }
-               public String getContent() {
-                       return fContent;
-               }
-
-               public String getLabel() {
-                       return fLabel;
-               }
-
-               public String getDescription() {
-                       return null;
-               }
-
-               public int getCursorPosition() {
-                       return fContent.length();
-               }
-       }
-
-       final List<String> fHistory=new ArrayList<String>();
-       /**
-        * Keeps a modifiable history while in history editing mode
-        */
-       List<Object> fEditedHistory;
-       /**
-        * The current position in the edit history
-        */
-       private int fEditHistoryPos=0;
-       /**
-        * The limit of the history.
-        */
-       private final int fMaxSize;
-       /**
-        * The input text field.
-        */
-       private Text fInputField;
-       private Sash fSash;
-       private Composite fPanel;
-       public CommandInputFieldWithHistory(int maxHistorySize) {
-               fMaxSize=maxHistorySize;
-       }
-       /**
-        * Add a line to the history.
-        * @param line The line to be added to the history.
-        */
-       protected void pushLine(String line) {
-               endHistoryMode();
-               // anything to remember?
-               if(line==null || line.trim().length()==0)
-                       return;
-               fHistory.add(0,line);
-               // ignore if the same as last
-               if(fHistory.size()>1 && line.equals(fHistory.get(1)))
-                       fHistory.remove(0);
-               // limit the history size.
-               if(fHistory.size()>=fMaxSize)
-                       fHistory.remove(fHistory.size()-1);
-       }
-       /**
-        * Sets the history
-        * @param history or null
-        */
-       public void setHistory(String history) {
-               endHistoryMode();
-               fHistory.clear();
-               if(history==null)
-                       return;
-               // add history entries separated by '\n'
-               // fHistory.addAll(Arrays.asList(history.split("\n"))); //$NON-NLS-1$
-               //<J2ME CDC-1.1 Foundation-1.1 variant>
-               StringTokenizer tok=new StringTokenizer(history,"\n"); //$NON-NLS-1$
-               while(tok.hasMoreElements())
-                       fHistory.add((String) tok.nextElement());
-               //</J2ME CDC-1.1 Foundation-1.1 variant>
-       }
-       /**
-        * @return the current content of the history buffer and new line separated list
-        */
-       public String getHistory() {
-               StringBuffer buff=new StringBuffer();
-               boolean sep=false;
-               for (Iterator<String> iterator = fHistory.iterator(); iterator.hasNext();) {
-                       String line=iterator.next();
-                       if(line.length()>0) {
-                               if(sep)
-                                       buff.append("\n"); //$NON-NLS-1$
-                               else
-                                       sep=true;
-                               buff.append(line);
-                       }
-               }
-               return buff.toString();
-       }
-       /**
-        * @param currLine Line of text to be moved in history
-        * @param count (+1 or -1) for forward and backward movement. -1 goes back
-        * @return the new string to be displayed in the command line or null,
-        * if the limit is reached.
-        */
-       public String move(String currLine, int count) {
-               if(!inHistoryMode()) {
-                       fEditedHistory=new ArrayList<Object>(fHistory.size()+1);
-                       fEditedHistory.add(currLine);
-                       fEditedHistory.addAll(fHistory);
-                       fEditHistoryPos=0;
-               }
-               fEditedHistory.set(fEditHistoryPos,currLine);
-               if(fEditHistoryPos+count>=fEditedHistory.size())
-                       return null;
-               if(fEditHistoryPos+count<0)
-                       return null;
-               fEditHistoryPos+=count;
-               return (String) fEditedHistory.get(fEditHistoryPos);
-       }
-       private boolean inHistoryMode() {
-               return fEditedHistory!=null;
-       }
-
-       /**
-        * Exit the history movements and go to position 0;
-        * @return the string to be shown in the command line
-        */
-       protected String escape() {
-               if(!inHistoryMode())
-                       return null;
-               String line= (String) fEditedHistory.get(0);
-               endHistoryMode();
-               return line;
-       }
-       /**
-        * End history editing
-        */
-       private void endHistoryMode() {
-               fEditedHistory=null;
-               fEditHistoryPos=0;
-       }
-       public void createControl(final Composite parent,final ITerminalViewControl terminal) {
-//             fSash = new Sash(parent,SWT.HORIZONTAL|SWT.SMOOTH);
-               fSash = new Sash(parent,SWT.HORIZONTAL);
-               final GridData gd_sash = new GridData(SWT.FILL, SWT.CENTER, true, false);
-               gd_sash.heightHint=5;
-               fSash.setLayoutData(gd_sash);
-               fSash.addListener (SWT.Selection, new Listener () {
-                       public void handleEvent (Event e) {
-                               if (e.detail == SWT.DRAG) {
-                                       // don't redraw during drag, it causes paint errors - bug 220971
-                                       return;
-                               }
-                               // no idea why this is needed
-                               GridData gdata = (GridData) fInputField.getLayoutData();
-                               Rectangle sashRect = fSash.getBounds ();
-                               Rectangle containerRect = parent.getClientArea ();
-
-                               int h=fInputField.getLineHeight();
-                               // make sure the input filed height is a multiple of the line height
-                               gdata.heightHint = Math.max(((containerRect.height-e.y-sashRect.height)/h)*h,h);
-                               // do not show less then one line
-                               e.y=Math.min(e.y,containerRect.height-h);
-                               fInputField.setLayoutData(gdata);
-                               parent.layout();
-                               // else the content assist icon will be replicated
-                               parent.redraw();
-                       }
-               });
-               fPanel = new Composite(parent, SWT.NONE);
-               GridLayout layout = new GridLayout();
-               layout.marginWidth = 0; layout.marginHeight = 0; layout.marginTop = 0; layout.marginBottom = 2;
-               fPanel.setLayout(layout);
-               fPanel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-               fInputField=new Text(fPanel, SWT.MULTI|SWT.BORDER|SWT.WRAP|SWT.V_SCROLL);
-               GridData data=new GridData(SWT.FILL, SWT.FILL, true, false);
-               boolean installDecoration=true;
-               if(installDecoration) {
-                       // The ContentAssistCommandAdapter says: "The client is responsible for
-                       // ensuring that adequate space is reserved for the decoration."
-                       // TODO: what is the "adequate space"???
-                       data.horizontalIndent=6;
-               }
-               fInputField.setLayoutData(data);
-               fInputField.setFont(terminal.getFont());
-               // Register field assist *before* the key listener.
-               // Else the ENTER key is sent *first* to the input field
-               // and then to the field assist popup.
-               // (https://bugs.eclipse.org/bugs/show_bug.cgi?id=211659)
-               new ContentAssistCommandAdapter(
-                               fInputField,
-                               new TextContentAdapter(),
-                               new FieldAssist(),
-                               null,
-                               null,
-                               installDecoration);
-               fInputField.addKeyListener(new KeyListener(){
-                       public void keyPressed(KeyEvent e) {
-                               // if the field assist has handled the key already then
-                               // ignore it (https://bugs.eclipse.org/bugs/show_bug.cgi?id=211659)
-                               if(!e.doit)
-                                       return;
-                               if(e.character==SWT.CR || e.character==SWT.LF) {
-                                       e.doit=false;
-                                       String line=fInputField.getText();
-                                       if(!terminal.pasteString(line+'\r'))
-                                               return;
-                                       pushLine(line);
-                                       setCommand("");//$NON-NLS-1$
-                               } else if(e.keyCode==SWT.ARROW_UP || e.keyCode==SWT.PAGE_UP) {
-                                       e.doit=false;
-                                       setCommand(move(fInputField.getText(),1));
-                               } else if(e.keyCode==SWT.ARROW_DOWN || e.keyCode==SWT.PAGE_DOWN) {
-                                       e.doit=false;
-                                       setCommand(move(fInputField.getText(),-1));
-                               } else if(e.keyCode==SWT.ESC) {
-                                       e.doit=false;
-                                       setCommand(escape());
-                               }
-                       }
-                       private void setCommand(String line) {
-                               if(line==null)
-                                       return;
-                               fInputField.setText(line);
-                               fInputField.setSelection(fInputField.getCharCount());
-                       }
-                       public void keyReleased(KeyEvent e) {
-                       }
-               });
-       }
-       public void setFont(Font font) {
-               fInputField.setFont(font);
-               fInputField.getParent().layout(true);
-       }
-       public void dispose() {
-               fSash.dispose();
-               fSash=null;
-               fPanel.dispose();
-               fPanel=null;
-               fInputField.dispose();
-               fInputField=null;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ICommandInputField.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ICommandInputField.java
deleted file mode 100644 (file)
index a65a61c..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control;
-
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Interface to create a command input control.
- *
- */
-public interface ICommandInputField {
-       /**
-        * @param parent
-        * @param terminal
-        */
-       void createControl(Composite parent, ITerminalViewControl terminal);
-       
-       void dispose();
-       /**
-        * Sets the font of a control created with {@link #createControl(Composite, ITerminalViewControl)}
-        * @param control
-        * @param font the new text font
-        */
-       void setFont(Font font);
-
-}
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ITerminalListener.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ITerminalListener.java
deleted file mode 100644 (file)
index 587abfd..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control;
-
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-
-/**
- * Provided by a view implementation.
- * @author Michael Scharf
- *
- */
-public interface ITerminalListener {
-       /**
-        * Called when the state of the connection has changed.
-        * @param state
-        */
-       void setState(TerminalState state);
-
-       /**
-        * Set the title of the terminal.
-        * @param title
-        */
-       void setTerminalTitle(String title);
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ITerminalListener2.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ITerminalListener2.java
deleted file mode 100644 (file)
index 76bc56d..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.control;
-
-/**
- * Terminal listener allowing to listen to terminal selection changes.
- * 
- * @since 4.1
- */
-public interface ITerminalListener2 extends ITerminalListener {
-
-       /**
-        * selection has been changed internally e.g. select all
-        * clients might want to react on that
-        * NOTE: this does not include mouse selections
-        * those are handled in separate MouseListeners
-        * TODO should be unified
-        */
-       void setTerminalSelectionChanged();
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ITerminalMouseListener.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ITerminalMouseListener.java
deleted file mode 100644 (file)
index d72c26c..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 CWI. 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:
- * Davy Landman (CWI) - [475267][api] Initial definition of interface
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control;
-
-import org.eclipse.tm.terminal.model.ITerminalTextDataReadOnly;
-
-/**
- * Terminal specific version of {@link org.eclipse.swt.events.MouseListener}
- * @since 4.1
- */
-public interface ITerminalMouseListener  {
-       /**
-        * Invoked when a double-click has happend inside the terminal control.<br>
-        * <br>
-        * <strong>Important:</strong> the event fires for every click, even outside the text region.
-        * @param terminalText a read-only view of the current terminal text
-        * @param button see {@link org.eclipse.swt.events.MouseEvent#button} for the meaning of the button values
-        */
-       void mouseDoubleClick(ITerminalTextDataReadOnly terminalText, int line, int column, int button);
-       /**
-        * Invoked when a mouse button is pushed down inside the terminal control.<br>
-        * <br>
-        * <strong>Important:</strong> the event fires for every mouse down, even outside the text region.
-        * @param terminalText a read-only view of the current terminal text
-        * @param button see {@link org.eclipse.swt.events.MouseEvent#button} for the meaning of the button values
-        */
-       void mouseDown(ITerminalTextDataReadOnly terminalText, int line, int column, int button);
-       /**
-        * Invoked when a mouse button is released inside the terminal control.<br>
-        * <br>
-        * <strong>Important:</strong> the event fires for every mouse up, even outside the text region.
-        * @param terminalText a read-only view of the current terminal text
-        * @param button see {@link org.eclipse.swt.events.MouseEvent#button} for the meaning of the button values
-        */
-       void mouseUp(ITerminalTextDataReadOnly terminalText, int line, int column, int button);
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ITerminalViewControl.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/ITerminalViewControl.java
deleted file mode 100644 (file)
index 904897c..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [204796] Terminal should allow setting the encoding to use
- * Martin Oberhuber (Wind River) - [265352][api] Allow setting fonts programmatically
- * Davy Landman (CWI) - [475267][api] Allow custom mouse listeners
- ******************************************************************************/
-package org.eclipse.tm.internal.terminal.control;
-
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-
-/**
- * @author Michael Scharf
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface ITerminalViewControl {
-       /**
-        * Set the encoding that the Terminal uses to decode byte streams into
-        * characters.
-        *
-        * @see ITerminalControl#setEncoding(String)
-        * @since org.eclipse.tm.terminal 2.0
-        */
-       void setEncoding(String encoding) throws UnsupportedEncodingException;
-
-       /**
-        * Get the Terminal's current encoding.
-        *
-        * @return the current Encoding of the Terminal.
-        * @see ITerminalControl#getEncoding()
-        * @since org.eclipse.tm.terminal 2.0
-        */
-       String getEncoding();
-
-    boolean isEmpty();
-    /**
-     * Sets the Terminal font
-     * @deprecated use {@link #setFont(String)} in order to support bold and italic variants of the given font
-     * @param font
-     */
-       void setFont(Font font);
-       /**
-        * Sets the font for the Terminal, using a JFace symbolic font name, such
-        * that bold and italic variants can be leveraged.
-        * @since 3.2
-        * @param fontName
-        */
-       void setFont(String fontName);
-       void setInvertedColors(boolean invert);
-       Font getFont();
-       /**
-        * @return the text control
-        */
-       Control getControl();
-       /**
-        * @return the root of all controls
-        */
-       Control getRootControl();
-    boolean isDisposed();
-    void selectAll();
-    void clearTerminal();
-    void copy();
-    void paste();
-    String getSelection();
-    TerminalState getState();
-    Clipboard getClipboard();
-    void disconnectTerminal();
-    void disposeTerminal();
-    String getSettingsSummary();
-    ITerminalConnector[] getConnectors();
-    void setFocus();
-    ITerminalConnector getTerminalConnector();
-    void setConnector(ITerminalConnector connector);
-    void connectTerminal();
-    /**
-     * @param write a single character to terminal
-     */
-    void sendKey(char arg0);
-       /**
-        * @param string write string to terminal
-        */
-       public boolean pasteString(String string);
-
-    boolean isConnected();
-
-    /**
-     * @param inputField null means no input field is shown
-     */
-    void setCommandInputField(ICommandInputField inputField);
-    /**
-     * @return null or the current input field
-     */
-    ICommandInputField getCommandInputField();
-
-       /**
-        * @return the maximum number of lines to display
-        * in the terminal view. -1 means unlimited.
-        */
-       public int getBufferLineLimit();
-
-       /**
-        * @param bufferLineLimit the maximum number of lines to show
-        * in the terminal view. -1 means unlimited.
-        */
-       public void setBufferLineLimit(int bufferLineLimit);
-       boolean isScrollLock();
-       void setScrollLock(boolean on);
-       
-       /**
-        * @since 4.1
-        */
-       void addMouseListener(ITerminalMouseListener listener);
-       /**
-        * @since 4.1
-        */
-       void removeMouseListener(ITerminalMouseListener listener);
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/TerminalViewControlFactory.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/TerminalViewControlFactory.java
deleted file mode 100644 (file)
index 9ccbdaa..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tm.internal.terminal.emulator.VT100TerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-
-public class TerminalViewControlFactory {
-       /**
-        * Instantiate a Terminal widget.
-        * @param target Callback for notifying the owner of Terminal state changes.
-        * @param wndParent The Window parent to embed the Terminal in.
-        * @param connectors Provided connectors.
-        */
-       public static ITerminalViewControl makeControl(ITerminalListener target, Composite wndParent, ITerminalConnector[] connectors) {
-               return makeControl(target, wndParent, connectors, false);
-       }
-
-       /**
-        * Instantiate a Terminal widget.
-        * @param target Callback for notifying the owner of Terminal state changes.
-        * @param wndParent The Window parent to embed the Terminal in.
-        * @param connectors Provided connectors.
-        * @param useCommonPrefs If <code>true</code>, the Terminal widget will pick up settings 
-        *    from the <code>org.eclipse.tm.terminal.TerminalPreferencePage</code> Preference page.
-        *    Otherwise, clients need to maintain settings themselves.
-        * @since 3.2
-        */
-       public static ITerminalViewControl makeControl(ITerminalListener target, Composite wndParent, ITerminalConnector[] connectors, boolean useCommonPrefs) {
-               return new VT100TerminalControl(target, wndParent, connectors, useCommonPrefs);
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/AbstractTerminalAction.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/AbstractTerminalAction.java
deleted file mode 100644 (file)
index 08561b8..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Anna Dushistova (MontaVista) - Adapted from TerminalAction
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.impl.TerminalPlugin;
-
-public abstract class AbstractTerminalAction extends Action {
-       private final ITerminalViewControl fTarget;
-
-       public AbstractTerminalAction(String strId) {
-               this(null, strId, 0);
-       }
-
-       public AbstractTerminalAction(ITerminalViewControl target,
-                       String strId) {
-               this(target, strId, 0);
-       }
-
-       public AbstractTerminalAction(ITerminalViewControl target,
-                       String strId, int style) {
-               super("", style); //$NON-NLS-1$
-
-               fTarget = target;
-
-               setId(strId);
-       }
-
-       abstract public void run();
-
-       protected void setupAction(String strText, String strToolTip,
-                       String strImage, String strEnabledImage, String strDisabledImage,
-                       boolean bEnabled) {
-               setupAction(strText, strToolTip, strImage, strEnabledImage,
-                               strDisabledImage, bEnabled, TerminalPlugin.getDefault()
-                                               .getImageRegistry());
-       }
-
-       protected void setupAction(String strText, String strToolTip,
-                       String strHoverImage, String strEnabledImage,
-                       String strDisabledImage, boolean bEnabled,
-                       ImageRegistry imageRegistry) {
-               setupAction(strText, strToolTip, imageRegistry
-                               .getDescriptor(strHoverImage), imageRegistry
-                               .getDescriptor(strEnabledImage), imageRegistry
-                               .getDescriptor(strDisabledImage), bEnabled);
-       }
-
-       protected void setupAction(String strText, String strToolTip,
-                       ImageDescriptor hoverImage, ImageDescriptor enabledImage,
-                       ImageDescriptor disabledImage, boolean bEnabled) {
-               setText(strText);
-               setToolTipText(strToolTip);
-               setEnabled(bEnabled);
-               if (enabledImage != null) {
-                       setImageDescriptor(enabledImage);
-               }
-               if (disabledImage != null) {
-                       setDisabledImageDescriptor(disabledImage);
-               }
-               if (hoverImage != null) {
-                       setHoverImageDescriptor(hoverImage);
-               }
-       }
-
-       /**
-        * Return the terminal instance on which the action should operate.
-        * 
-        * @return the terminal instance on which the action should operate.
-        */
-       protected ITerminalViewControl getTarget() {
-               return fTarget;
-       }
-
-       /**
-        * Subclasses can update their action
-        *
-        * @param aboutToShow true before the menu is shown -- false when the menu
-        *            gets hidden
-        */
-       public void updateAction(boolean aboutToShow) {
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/ActionMessages.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/ActionMessages.java
deleted file mode 100644 (file)
index ddcc65b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Anna Dushistova (MontaVista) - [227537] moved actions from terminal.view to terminal plugin
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control.actions;
-
-import org.eclipse.osgi.util.NLS;
-
-public class ActionMessages extends NLS {
-       static {
-               NLS.initializeMessages(ActionMessages.class.getName(),
-                               ActionMessages.class);
-       }
-
-       public static String COPY;
-       public static String CUT;
-       public static String PASTE;
-       public static String SELECTALL;
-       public static String CLEARALL;
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/ActionMessages.properties b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/ActionMessages.properties
deleted file mode 100644 (file)
index 558ab80..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2015 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
-#
-# Initial Contributors:
-# The following Wind River employees contributed to the Terminal component
-# that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
-# Helmut Haigermoser and Ted Williams.
-#
-# Contributors:
-# Michael Scharf (Wind River) - split into core, view and connector plugins 
-# Martin Oberhuber (Wind River) - fixed copyright headers and beautified
-# Anna Dushistova (MontaVista) - [227537] moved actions from terminal.view to terminal plugin
-###############################################################################
-
-# NLS_MESSAGEFORMAT_NONE
-
-COPY                      = Copy
-CUT                       = Cut
-PASTE                     = Paste
-SELECTALL                 = Select All
-CLEARALL                  = Clear Terminal
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/ImageConsts.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/ImageConsts.java
deleted file mode 100644 (file)
index eda9eff..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - extracted from TerminalConsts
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Anna Dushistova (MontaVista) - [227537] moved actions from terminal.view to terminal plugin
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control.actions;
-
-public interface ImageConsts {
-       public final static String IMAGE_DIR_ROOT = "icons/"; //$NON-NLS-1$
-       public final static String IMAGE_DIR_LOCALTOOL = IMAGE_DIR_ROOT + "clcl16/"; // basic colors - size 16x16 //$NON-NLS-1$
-       public final static String IMAGE_DIR_DLCL = IMAGE_DIR_ROOT + "dlcl16/"; // disabled - size 16x16 //$NON-NLS-1$
-       public final static String IMAGE_DIR_ELCL = IMAGE_DIR_ROOT+ "elcl16/"; // enabled - size 16x16 //$NON-NLS-1$
-
-       public static final String IMAGE_CLCL_CLEAR_ALL = "ImageClclClearAll"; //$NON-NLS-1$
-
-       public static final String IMAGE_DLCL_CLEAR_ALL = "ImageDlclClearAll"; //$NON-NLS-1$
-
-       public static final String IMAGE_ELCL_CLEAR_ALL = "ImageElclClearAll"; //$NON-NLS-1$
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionClearAll.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionClearAll.java
deleted file mode 100644 (file)
index 85650f6..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Anna Dushistova (MontaVista) - [227537] moved actions from terminal.view to terminal plugin
- * Uwe Stieber (Wind River) - [260372] [terminal] Certain terminal actions are enabled if no target terminal control is available
- ********************************************************************************/
-package org.eclipse.tm.internal.terminal.control.actions;
-
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-
-public class TerminalActionClearAll extends AbstractTerminalAction {
-       public TerminalActionClearAll() {
-               super(TerminalActionClearAll.class.getName());
-
-               setupAction(ActionMessages.CLEARALL, ActionMessages.CLEARALL,
-                               ImageConsts.IMAGE_CLCL_CLEAR_ALL,
-                               ImageConsts.IMAGE_ELCL_CLEAR_ALL,
-                               ImageConsts.IMAGE_DLCL_CLEAR_ALL, false);
-       }
-
-       public TerminalActionClearAll(ITerminalViewControl target) {
-               super(target, TerminalActionClearAll.class.getName());
-
-               setupAction(ActionMessages.CLEARALL, ActionMessages.CLEARALL,
-                               ImageConsts.IMAGE_CLCL_CLEAR_ALL,
-                               ImageConsts.IMAGE_ELCL_CLEAR_ALL,
-                               ImageConsts.IMAGE_DLCL_CLEAR_ALL, false);
-       }
-
-       public void run() {
-               ITerminalViewControl target = getTarget();
-               if (target != null) {
-                       target.clearTerminal();
-               }
-       }
-
-       public void updateAction(boolean aboutToShow) {
-               ITerminalViewControl target = getTarget();
-               setEnabled(target != null && !target.isEmpty());
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionCopy.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionCopy.java
deleted file mode 100644 (file)
index 49260c1..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Anna Dushistova (MontaVista) - [227537] moved actions from terminal.view to terminal plugin
- * Uwe Stieber (Wind River) - [260372] [terminal] Certain terminal actions are enabled if no target terminal control is available
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control.actions;
-
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-
-public class TerminalActionCopy extends AbstractTerminalAction {
-       public TerminalActionCopy() {
-               super(TerminalActionCopy.class.getName());
-               setActionDefinitionId("org.eclipse.tm.terminal.copy"); //$NON-NLS-1$
-               ISharedImages si = PlatformUI.getWorkbench().getSharedImages();
-               setupAction(ActionMessages.COPY, ActionMessages.COPY, si
-                               .getImageDescriptor(ISharedImages.IMG_TOOL_COPY), si
-                               .getImageDescriptor(ISharedImages.IMG_TOOL_COPY), si
-                               .getImageDescriptor(ISharedImages.IMG_TOOL_COPY_DISABLED), true);
-       }
-
-       public TerminalActionCopy(ITerminalViewControl target) {
-               super(target, TerminalActionCopy.class.getName());
-               setActionDefinitionId("org.eclipse.tm.terminal.copy"); //$NON-NLS-1$
-               ISharedImages si = PlatformUI.getWorkbench().getSharedImages();
-               setupAction(ActionMessages.COPY, ActionMessages.COPY, si
-                               .getImageDescriptor(ISharedImages.IMG_TOOL_COPY), si
-                               .getImageDescriptor(ISharedImages.IMG_TOOL_COPY), si
-                               .getImageDescriptor(ISharedImages.IMG_TOOL_COPY_DISABLED), true);
-       }
-
-       public void run() {
-               ITerminalViewControl target = getTarget();
-               if (target != null) {
-                       String selection = target.getSelection();
-
-                       if (!selection.equals("")) {//$NON-NLS-1$
-                               target.copy();
-                       } else {
-                               target.sendKey('\u0003');
-                       }
-               }
-       }
-
-       public void updateAction(boolean aboutToShow) {
-               ITerminalViewControl target = getTarget();
-               boolean bEnabled = target != null;
-               if (aboutToShow && bEnabled) {
-                       bEnabled = target.getSelection().length() > 0;
-               }
-               setEnabled(bEnabled);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionCut.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionCut.java
deleted file mode 100644 (file)
index 63532bd..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Uwe Stieber (Wind River) - [260372] [terminal] Certain terminal actions are enabled if no target terminal control is available
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control.actions;
-
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-
-public class TerminalActionCut extends AbstractTerminalAction {
-       public TerminalActionCut() {
-               super(TerminalActionCut.class.getName());
-               ISharedImages si = PlatformUI.getWorkbench().getSharedImages();
-               setupAction(ActionMessages.CUT, ActionMessages.CUT, si
-                               .getImageDescriptor(ISharedImages.IMG_TOOL_CUT), si
-                               .getImageDescriptor(ISharedImages.IMG_TOOL_CUT), si
-                               .getImageDescriptor(ISharedImages.IMG_TOOL_CUT_DISABLED), true);
-       }
-
-       public TerminalActionCut(ITerminalViewControl target) {
-               super(target, TerminalActionCut.class.getName());
-               ISharedImages si = PlatformUI.getWorkbench().getSharedImages();
-               setupAction(ActionMessages.CUT, ActionMessages.CUT, si
-                               .getImageDescriptor(ISharedImages.IMG_TOOL_CUT), si
-                               .getImageDescriptor(ISharedImages.IMG_TOOL_CUT), si
-                               .getImageDescriptor(ISharedImages.IMG_TOOL_CUT_DISABLED), true);
-       }
-
-       public void run() {
-               ITerminalViewControl target = getTarget();
-               if (target != null) {
-                       target.sendKey('\u0018');
-               }
-       }
-
-       public void updateAction(boolean aboutToShow) {
-               // Cut is always disabled
-               setEnabled(false);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionPaste.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionPaste.java
deleted file mode 100644 (file)
index ca1011c..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Anna Dushistova (MontaVista) - [227537] moved actions from terminal.view to terminal plugin
- * Uwe Stieber (Wind River) - [260372] [terminal] Certain terminal actions are enabled if no target terminal control is available
- * Uwe Stieber (Wind River) - [294719] [terminal] SWT Widget disposed in TerminalActionPaste
- * Martin Oberhuber (Wind River) - [296212] Cannot paste text into terminal on some Linux hosts
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control.actions;
-
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-
-public class TerminalActionPaste extends AbstractTerminalAction {
-       public TerminalActionPaste() {
-               super(TerminalActionPaste.class.getName());
-               setActionDefinitionId("org.eclipse.tm.terminal.paste"); //$NON-NLS-1$
-               ISharedImages si = PlatformUI.getWorkbench().getSharedImages();
-               setupAction(ActionMessages.PASTE, ActionMessages.PASTE,
-                                       si.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE),
-                                       si.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE),
-                                       si.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE_DISABLED),
-                                       false);
-       }
-
-       public TerminalActionPaste(ITerminalViewControl target) {
-               super(target, TerminalActionPaste.class.getName());
-               setActionDefinitionId("org.eclipse.tm.terminal.paste"); //$NON-NLS-1$
-               ISharedImages si = PlatformUI.getWorkbench().getSharedImages();
-               setupAction(ActionMessages.PASTE, ActionMessages.PASTE,
-                                       si.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE),
-                                       si.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE),
-                                       si.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE_DISABLED),
-                                       false);
-       }
-
-       public void run() {
-               ITerminalViewControl target = getTarget();
-               if (target != null) {
-                       target.paste();
-               }
-       }
-
-       public void updateAction(boolean aboutToShow) {
-               ITerminalViewControl target = getTarget();
-               boolean bEnabled = target != null && target.getClipboard() != null && !target.getClipboard().isDisposed();
-               if (bEnabled) {
-                       String strText = (String) target.getClipboard().getContents(
-                                       TextTransfer.getInstance());
-                       bEnabled = ((strText != null) && (!strText.equals("")) && (target.getState() == TerminalState.CONNECTED));//$NON-NLS-1$
-               }
-               setEnabled(bEnabled);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionSelectAll.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/actions/TerminalActionSelectAll.java
deleted file mode 100644 (file)
index a91ec1c..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Anna Dushistova (MontaVista) - [227537] moved actions from terminal.view to terminal plugin
- * Uwe Stieber (Wind River) - [260372] [terminal] Certain terminal actions are enabled if no target terminal control is available
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control.actions;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-
-public class TerminalActionSelectAll extends AbstractTerminalAction {
-       public TerminalActionSelectAll() {
-               super(TerminalActionSelectAll.class.getName());
-
-               setupAction(ActionMessages.SELECTALL, ActionMessages.SELECTALL,
-                               (ImageDescriptor) null, null, null, false);
-       }
-
-       public TerminalActionSelectAll(ITerminalViewControl target) {
-               super(target, TerminalActionSelectAll.class.getName());
-
-               setupAction(ActionMessages.SELECTALL, ActionMessages.SELECTALL,
-                               (ImageDescriptor) null, null, null, false);
-       }
-
-       public void run() {
-               ITerminalViewControl target = getTarget();
-               if (target != null) {
-                       target.selectAll();
-               }
-       }
-
-       public void updateAction(boolean aboutToShow) {
-               ITerminalViewControl target = getTarget();
-               setEnabled(target != null && !target.isEmpty());
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/impl/ITerminalControlForText.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/impl/ITerminalControlForText.java
deleted file mode 100644 (file)
index f154680..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Anton Leherbauer (Wind River) - [458398] Add support for normal/application cursor keys mode
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control.impl;
-
-import java.io.OutputStream;
-
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-
-/**
- * need a better name!
- * @author Michael Scharf
- *
- */
-public interface ITerminalControlForText {
-       
-       TerminalState getState();
-       void setState(TerminalState state);
-       void setTerminalTitle(String title);
-       
-       ITerminalConnector getTerminalConnector();
-
-       OutputStream getOutputStream();
-       
-       /**
-        * Enable/disable Application Cursor Keys mode (DECCKM)
-        * @param enable
-        */
-       void enableApplicationCursorKeys(boolean enable);
-       
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/impl/TerminalMessages.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/impl/TerminalMessages.java
deleted file mode 100644 (file)
index 137d67a..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control.impl;
-
-import org.eclipse.osgi.util.NLS;
-
-public class TerminalMessages extends NLS {
-       static {
-               NLS.initializeMessages(TerminalMessages.class.getName(), TerminalMessages.class);
-       }
-
-    public static String TerminalError;
-    public static String SocketError;
-    public static String IOError;
-    public static String CannotConnectTo;
-    public static String NotInitialized;
-
-    //Preference Page
-    public static String INVERT_COLORS;
-    public static String BUFFERLINES;
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/impl/TerminalMessages.properties b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/impl/TerminalMessages.properties
deleted file mode 100644 (file)
index dd249e2..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2015 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
-#
-# Initial Contributors:
-# The following Wind River employees contributed to the Terminal component
-# that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
-# Helmut Haigermoser and Ted Williams.
-#
-# Contributors:
-# Michael Scharf (Wind River) - split into core, view and connector plugins 
-# Martin Oberhuber (Wind River) - fixed copyright headers and beautified
-# Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
-###############################################################################
-
-# NLS_MESSAGEFORMAT_VAR
-
-TerminalError = Terminal Error
-SocketError = Socket Error
-IOError = IO Error
-CannotConnectTo = Cannot initialize {0}:\n{1}
-NotInitialized = Not Initialized
-
-INVERT_COLORS = Invert terminal colors
-BUFFERLINES = Terminal buffer lines:
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/impl/TerminalPlugin.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/control/impl/TerminalPlugin.java
deleted file mode 100644 (file)
index de791f8..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Anna Dushistova (MontaVista) - [227537] moved actions from terminal.view to terminal plugin
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.control.impl;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.tm.internal.terminal.control.actions.ImageConsts;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-public class TerminalPlugin extends AbstractUIPlugin {
-       private static TerminalPlugin plugin;
-       public static final String  PLUGIN_ID  = "org.eclipse.tm.terminal.control"; //$NON-NLS-1$
-       public static final String  HELP_VIEW  = PLUGIN_ID + ".terminal_view"; //$NON-NLS-1$
-
-       /**
-        * The constructor.
-        */
-       public TerminalPlugin() {
-       }
-       /**
-        * Returns the shared instance.
-        */
-       public static TerminalPlugin getDefault() {
-               return plugin;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-        */
-       @Override
-    public void start(BundleContext context) throws Exception {
-               super.start(context);
-               plugin = this;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-        */
-       @Override
-    public void stop(BundleContext context) throws Exception {
-               plugin = null;
-               super.stop(context);
-       }
-
-       public static boolean isOptionEnabled(String strOption) {
-               String strEnabled = Platform.getDebugOption(strOption);
-               if (strEnabled == null)
-                       return false;
-
-               return new Boolean(strEnabled).booleanValue();
-       }
-
-       @Override
-    protected void initializeImageRegistry(ImageRegistry imageRegistry) {
-               try {
-                       // Local toolbars
-                       putImageInRegistry(imageRegistry, ImageConsts.IMAGE_CLCL_CLEAR_ALL, ImageConsts.IMAGE_DIR_LOCALTOOL + "clear_co.gif"); //$NON-NLS-1$
-                       // Enabled local toolbars
-                       putImageInRegistry(imageRegistry, ImageConsts.IMAGE_ELCL_CLEAR_ALL, ImageConsts.IMAGE_DIR_ELCL + "clear_co.gif"); //$NON-NLS-1$
-                       // Disabled local toolbars
-                       putImageInRegistry(imageRegistry, ImageConsts.IMAGE_DLCL_CLEAR_ALL, ImageConsts.IMAGE_DIR_DLCL + "clear_co.gif"); //$NON-NLS-1$
-               } catch (MalformedURLException malformedURLException) {
-                       malformedURLException.printStackTrace();
-               }
-       }
-
-       protected void putImageInRegistry(ImageRegistry imageRegistry, String strKey, String relativePath) throws MalformedURLException {
-               URL url = TerminalPlugin.getDefault().getBundle().getEntry(relativePath);
-               ImageDescriptor imageDescriptor = ImageDescriptor.createFromURL(url);
-               imageRegistry.put(strKey, imageDescriptor);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/EditActionAccelerators.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/EditActionAccelerators.java
deleted file mode 100644 (file)
index e95d69e..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013, 2015 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
- *******************************************************************************/
-
-package org.eclipse.tm.internal.terminal.emulator;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.bindings.keys.SWTKeySupport;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.keys.IBindingService;
-
-class EditActionAccelerators {
-       private static final String COPY_COMMAND_ID = "org.eclipse.tm.terminal.copy"; //$NON-NLS-1$
-       private static final String PASTE_COMMAND_ID = "org.eclipse.tm.terminal.paste"; //$NON-NLS-1$
-
-       private final Map commandIdsByAccelerator = new HashMap();
-
-       private void load() {
-               addAccelerator(COPY_COMMAND_ID);
-               addAccelerator(PASTE_COMMAND_ID);
-       }
-
-       private void addAccelerator(String commandId) {
-               TriggerSequence[] bindings = bindingsFor(commandId);
-               for (int i=0; i<bindings.length; ++i) {
-                       if (bindings[i] instanceof KeySequence) {
-                               KeyStroke[] keyStrokes = ((KeySequence) bindings[i]).getKeyStrokes();
-                               if (keyStrokes.length != 0) {
-                                       int accelerator = SWTKeySupport.convertKeyStrokeToAccelerator(keyStrokes[0]);
-                                       commandIdsByAccelerator.put(new Integer(accelerator), commandId);
-                               }
-                       }
-               }
-       }
-
-       private static TriggerSequence[] bindingsFor(String commandId) {
-               IBindingService bindingService = bindingService();
-               return bindingService.getActiveBindingsFor(commandId);
-       }
-
-       private static IBindingService bindingService() {
-               return (IBindingService) PlatformUI.getWorkbench().getAdapter(IBindingService.class);
-       }
-
-       boolean isCopyAction(int accelerator) {
-               return isMatchingAction(accelerator, COPY_COMMAND_ID);
-       }
-
-       boolean isPasteAction(int accelerator) {
-               return isMatchingAction(accelerator, PASTE_COMMAND_ID);
-       }
-
-       private boolean isMatchingAction(int accelerator, String commandId) {
-               if (commandIdsByAccelerator.isEmpty()) {
-                       load();
-               }
-               return commandId.equals(commandIdsByAccelerator.get(new Integer(accelerator)));
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/IVT100EmulatorBackend.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/IVT100EmulatorBackend.java
deleted file mode 100644 (file)
index aff9089..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Anton Leherbauer (Wind River) - [433751] Add option to enable VT100 line wrapping mode
- * Anton Leherbauer (Wind River) - [458218] Add support for ANSI insert mode
- * Anton Leherbauer (Wind River) - [458402] Add support for scroll up/down and scroll region
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.emulator;
-
-import org.eclipse.tm.terminal.model.Style;
-
-/**
- *
- */
-public interface IVT100EmulatorBackend {
-
-       /**
-        * This method erases all text from the Terminal view. Including the history
-        */
-       void clearAll();
-
-       /**
-        * Sets the Dimensions of the addressable scroll space of the screen....
-        * Keeps the cursor position relative to the bottom of the screen!
-        * @param lines
-        * @param cols
-        */
-       void setDimensions(int lines, int cols);
-
-       /**
-        * This method makes room for N characters on the current line at the cursor
-        * position. Text under the cursor moves right without wrapping at the end
-        * of the line.
-        * 01234
-        * 0 123
-        */
-       void insertCharacters(int charactersToInsert);
-
-       /**
-        *      Erases from cursor to end of screen, including cursor position. Cursor does not move.
-        */
-       void eraseToEndOfScreen();
-
-       /**
-        * Erases from beginning of screen to cursor, including cursor position. Cursor does not move.
-        */
-       void eraseToCursor();
-
-       /**
-        * Erases complete display. All lines are erased and changed to single-width. Cursor does not move.
-        */
-       void eraseAll();
-
-       /**
-        * Erases complete line.
-        */
-       void eraseLine();
-
-       /**
-        * Erases from cursor to end of line, including cursor position.
-        */
-       void eraseLineToEnd();
-
-       /**
-        * Erases from beginning of line to cursor, including cursor position.
-        */
-       void eraseLineToCursor();
-
-       /**
-        * Inserts n lines at line with cursor. Lines displayed below cursor move down. 
-        * Lines moved past the bottom margin are lost. This sequence is ignored when 
-        * cursor is outside scrolling region.
-        * @param n the number of lines to insert
-        */
-       void insertLines(int n);
-
-       /**
-        * Deletes n characters, starting with the character at cursor position. 
-        * When a character is deleted, all characters to the right of cursor move 
-        * left. This creates a space character at right margin. This character 
-        * has same character attribute as the last character moved left.
-        * @param n
-        * 012345
-        * 0145xx
-        */
-       void deleteCharacters(int n);
-
-       /**
-        * Deletes n lines, starting at line with cursor. As lines are deleted, 
-        * lines displayed below cursor move up. Lines added to bottom of screen 
-        * have spaces with same character attributes as last line moved up. This 
-        * sequence is ignored when cursor is outside scrolling region.
-        * @param n the number of lines to delete
-        */
-       void deleteLines(int n);
-
-       Style getDefaultStyle();
-
-       void setDefaultStyle(Style defaultStyle);
-
-       Style getStyle();
-
-       /**
-        * Sets the style to be used from now on
-        * @param style
-        */
-       void setStyle(Style style);
-
-       /**
-        * This method displays a subset of the newly-received text in the Terminal
-        * view, wrapping text at the right edge of the screen and overwriting text
-        * when the cursor is not at the very end of the screen's text.
-        * <p>
-        * 
-        * There are never any ANSI control characters or escape sequences in the
-        * text being displayed by this method (this includes newlines, carriage
-        * returns, and tabs).
-        * <p>
-        */
-       void appendString(String buffer);
-
-       /**
-        * Process a newline (Control-J) character. A newline (NL) character just
-        * moves the cursor to the same column on the next line, creating new lines
-        * when the cursor reaches the bottom edge of the terminal. This is
-        * counter-intuitive, especially to UNIX programmers who are taught that
-        * writing a single NL to a terminal is sufficient to move the cursor to the
-        * first column of the next line, as if a carriage return (CR) and a NL were
-        * written.
-        * <p>
-        * 
-        * UNIX terminals typically display a NL character as a CR followed by a NL
-        * because the terminal device typically has the ONLCR attribute bit set
-        * (see the termios(4) man page for details), which causes the terminal
-        * device driver to translate NL to CR + NL on output. The terminal itself
-        * (i.e., a hardware terminal or a terminal emulator, like xterm or this
-        * code) _always_ interprets a CR to mean "move the cursor to the beginning
-        * of the current line" and a NL to mean "move the cursor to the same column
-        * on the next line".
-        * <p>
-        */
-       void processNewline();
-
-       /**
-        * This method returns the relative line number of the line containing the
-        * cursor. The returned line number is relative to the topmost visible line,
-        * which has relative line number 0.
-        * 
-        * @return The relative line number of the line containing the cursor.
-        */
-       int getCursorLine();
-
-       int getCursorColumn();
-
-       /**
-        * This method moves the cursor to the specified line and column. Parameter
-        * <i>targetLine</i> is the line number of a screen line, so it has a
-        * minimum value of 0 (the topmost screen line) and a maximum value of
-        * heightInLines - 1 (the bottommost screen line). A line does not have to
-        * contain any text to move the cursor to any column in that line.
-        */
-       void setCursor(int targetLine, int targetColumn);
-
-       void setCursorColumn(int targetColumn);
-
-       void setCursorLine(int targetLine);
-
-       int getLines();
-
-       int getColumns();
-
-       /**
-        * Enables VT100 line wrapping mode (default is off).
-        * This corresponds to the VT100 'eat_newline_glitch' terminal capability.
-        * If enabled, writing to the rightmost column does not cause
-        * an immediate wrap to the next line. Instead the line wrap occurs on the
-        * next output character.
-        * 
-        * @param enable  whether to enable or disable VT100 line wrapping mode
-        */
-       void setVT100LineWrapping(boolean enable);
-
-       /**
-        * @return whether VT100 line wrapping mode is enabled
-        */
-       boolean isVT100LineWrapping();
-
-       /**
-        * Enables/disables insert mode (IRM).
-        * 
-        * @param enable  whether to enable insert mode
-        */
-       void setInsertMode(boolean enable);
-
-       /**
-        * Set scrolling region. Negative values reset the scroll region.
-        * 
-        * @param top  top line of scroll region
-        * @param bottom  bottom line of scroll region
-        */
-       void setScrollRegion(int top, int bottom);
-
-       /**
-        * Scroll text upwards.
-        * 
-        * @param lines  number of lines to scroll
-        */
-       void scrollUp(int lines);
-
-       /**
-        * Scroll text downwards.
-        * 
-        * @param lines  number of lines to scroll
-        */
-       void scrollDown(int lines);
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/LoggingOutputStream.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/LoggingOutputStream.java
deleted file mode 100644 (file)
index 20c176f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.emulator;
-
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-
-public class LoggingOutputStream extends FilterOutputStream {
-
-       public LoggingOutputStream(OutputStream out) {
-               super(out);
-       }
-
-       public void write(byte[] b, int off, int len) throws IOException {
-               if(Logger.isLogEnabled())
-                       Logger.log("Received " + len + " bytes: '" + //$NON-NLS-1$ //$NON-NLS-2$
-                                       Logger.encode(new String(b, 0, len)) + "'"); //$NON-NLS-1$
-               
-               // we cannot call super.write, because this would call our write
-               // which logs character by character.....
-               //super.write(b, off, len);
-               if ((off | len | (b.length - (len + off)) | (off + len)) < 0)
-                   throw new IndexOutOfBoundsException();
-
-               for (int i = 0 ; i < len ; i++) {
-                   super.write(b[off + i]);
-               }
-       }
-
-       public void write(int b) throws IOException {
-               if(Logger.isLogEnabled())
-                       Logger.log("Received " + 1 + " bytes: '" + //$NON-NLS-1$ //$NON-NLS-2$
-                                       Logger.encode(new String(new byte[]{(byte)b}, 0, 1)) + "'"); //$NON-NLS-1$
-               super.write(b);
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/VT100BackendTraceDecorator.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/VT100BackendTraceDecorator.java
deleted file mode 100644 (file)
index 7853143..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Anton Leherbauer (Wind River) - [433751] Add option to enable VT100 line wrapping mode
- * Anton Leherbauer (Wind River) - [458218] Add support for ANSI insert mode
- * Anton Leherbauer (Wind River) - [458402] Add support for scroll up/down and scroll region
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.emulator;
-
-import java.io.PrintStream;
-
-import org.eclipse.tm.terminal.model.Style;
-
-public class VT100BackendTraceDecorator implements IVT100EmulatorBackend {
-       final IVT100EmulatorBackend fBackend;
-       final PrintStream fWriter;
-       public VT100BackendTraceDecorator(IVT100EmulatorBackend backend, PrintStream out) {
-               fBackend = backend;
-               fWriter=out;
-       }
-
-       public void appendString(String buffer) {
-               fWriter.println("appendString(\""+buffer+"\")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.appendString(buffer);
-       }
-
-       public void clearAll() {
-               fWriter.println("clearAll()"); //$NON-NLS-1$
-               fBackend.clearAll();
-       }
-
-       public void deleteCharacters(int n) {
-               fWriter.println("deleteCharacters("+n+")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.deleteCharacters(n);
-       }
-
-       public void deleteLines(int n) {
-               fWriter.println("deleteLines("+n+")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.deleteLines(n);
-       }
-
-       public void eraseAll() {
-               fWriter.println("eraseAll()"); //$NON-NLS-1$
-               fBackend.eraseAll();
-       }
-
-       public void eraseLine() {
-               fWriter.println("eraseLine()"); //$NON-NLS-1$
-               fBackend.eraseLine();
-       }
-
-       public void eraseLineToCursor() {
-               fWriter.println("eraseLineToCursor()"); //$NON-NLS-1$
-               fBackend.eraseLineToCursor();
-       }
-
-       public void eraseLineToEnd() {
-               fWriter.println("eraseLineToEnd()"); //$NON-NLS-1$
-               fBackend.eraseLineToEnd();
-       }
-
-       public void eraseToCursor() {
-               fWriter.println("eraseToCursor()"); //$NON-NLS-1$
-               fBackend.eraseToCursor();
-       }
-
-       public void eraseToEndOfScreen() {
-               fWriter.println("eraseToEndOfScreen()"); //$NON-NLS-1$
-               fBackend.eraseToEndOfScreen();
-       }
-
-       public int getColumns() {
-               return fBackend.getColumns();
-       }
-
-       public int getCursorColumn() {
-               return fBackend.getCursorColumn();
-       }
-
-       public int getCursorLine() {
-               return fBackend.getCursorLine();
-       }
-
-       public Style getDefaultStyle() {
-               return fBackend.getDefaultStyle();
-       }
-
-       public int getLines() {
-               return fBackend.getLines();
-       }
-
-       public Style getStyle() {
-               return fBackend.getStyle();
-       }
-
-       public void insertCharacters(int charactersToInsert) {
-               fWriter.println("insertCharacters("+charactersToInsert+")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.insertCharacters(charactersToInsert);
-       }
-
-       public void insertLines(int n) {
-               fWriter.println("insertLines("+n+")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.insertLines(n);
-       }
-
-       public void processNewline() {
-               fWriter.println("processNewline()"); //$NON-NLS-1$
-               fBackend.processNewline();
-       }
-
-       public void setCursor(int targetLine, int targetColumn) {
-               fWriter.println("setCursor("+targetLine+", "+targetColumn+")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               fBackend.setCursor(targetLine, targetColumn);
-       }
-
-       public void setCursorColumn(int targetColumn) {
-               fWriter.println("setCursorColumn("+targetColumn+")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.setCursorColumn(targetColumn);
-       }
-
-       public void setCursorLine(int targetLine) {
-               fWriter.println("setCursorLine("+targetLine+")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.setCursorLine(targetLine);
-       }
-
-       public void setDefaultStyle(Style defaultStyle) {
-               fWriter.println("setDefaultStyle("+defaultStyle+")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.setDefaultStyle(defaultStyle);
-       }
-
-       public void setDimensions(int lines, int cols) {
-               fWriter.println("setDimensions("+lines+","+cols+")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               fBackend.setDimensions(lines, cols);
-       }
-
-       public void setStyle(Style style) {
-               fWriter.println("setStyle("+style+")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.setStyle(style);
-       }
-
-       public void setVT100LineWrapping(boolean enable) {
-               fWriter.println("setVT100LineWrapping("+enable+")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.setVT100LineWrapping(enable);
-       }
-
-       public boolean isVT100LineWrapping() {
-               return fBackend.isVT100LineWrapping();
-       }
-
-       public void setInsertMode(boolean enable) {
-               fWriter.println("setInsertMode("+enable+")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.setInsertMode(enable);
-       }
-
-       public void setScrollRegion(int top, int bottom) {
-               fWriter.println("setScrollRegion("+top+','+bottom+")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.setScrollRegion(top, bottom);
-       }
-
-       public void scrollUp(int lines) {
-               fWriter.println("scrollUp("+lines+")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.scrollUp(lines);
-       }
-
-       public void scrollDown(int lines) {
-               fWriter.println("scrollDown("+lines+")"); //$NON-NLS-1$ //$NON-NLS-2$
-               fBackend.scrollDown(lines);
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/VT100Emulator.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/VT100Emulator.java
deleted file mode 100644 (file)
index 5e6817a..0000000
+++ /dev/null
@@ -1,1396 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Michael Scharf (Wind River) - [209746] There are cases where some colors not displayed correctly
- * Martin Oberhuber (Wind River) - [168197] Fix Terminal for CDC-1.1/Foundation-1.1
- * Michael Scharf (Wind River) - [262996] get rid of TerminalState.OPENED
- * Martin Oberhuber (Wind River) - [334969] Fix multi-command SGR sequence
- * Kris De Volder (VMWare) - [392107] Switched interpretation for ESC[0K and ESC[1K sequences
- * Martin Oberhuber (Wind River) - [401386] Regression: No header on top due to incorrect ESC[K interpretation
- * Martin Oberhuber (Wind River) - [401480] Handle ESC[39;49m and ESC[G
- * Anton Leherbauer (Wind River) - [433751] Add option to enable VT100 line wrapping mode
- * Anton Leherbauer (Wind River) - [458218] Add support for ANSI insert mode
- * Anton Leherbauer (Wind River) - [458398] Add support for normal/application cursor keys mode
- * Anton Leherbauer (Wind River) - [458402] Add support for scroll up/down and scroll region
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.emulator;
-
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.tm.internal.terminal.control.impl.ITerminalControlForText;
-import org.eclipse.tm.internal.terminal.control.impl.TerminalPlugin;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.Style;
-
-/**
- * This class processes character data received from the remote host and
- * displays it to the user using the Terminal view's StyledText widget. This
- * class processes ANSI control characters, including NUL, backspace, carriage
- * return, linefeed, and a subset of ANSI escape sequences sufficient to allow
- * use of screen-oriented applications, such as vi, Emacs, and any GNU
- * readline-enabled application (Bash, bc, ncftp, etc.).
- * <p>
- *
- * @author Fran Litterio <francis.litterio@windriver.com>
- * @author Chris Thew <chris.thew@windriver.com>
- */
-public class VT100Emulator implements ControlListener {
-       /** This is a character processing state: Initial state. */
-       private static final int ANSISTATE_INITIAL = 0;
-
-       /** This is a character processing state: We've seen an escape character. */
-       private static final int ANSISTATE_ESCAPE = 1;
-
-       /**
-        * This is a character processing state: We've seen a '[' after an escape
-        * character. Expecting a parameter character or a command character next.
-        */
-       private static final int ANSISTATE_EXPECTING_PARAMETER_OR_COMMAND = 2;
-
-       /**
-        * This is a character processing state: We've seen a ']' after an escape
-        * character. We are now expecting an operating system command that
-        * reprograms an intelligent terminal.
-        */
-       private static final int ANSISTATE_EXPECTING_OS_COMMAND = 3;
-
-       /**
-        * This is a character processing state: We've seen a '[?' after an escape
-        * character. Expecting a parameter character or a command character next.
-        */
-       private static final int ANSISTATE_EXPECTING_DEC_PRIVATE_COMMAND = 4;
-
-       /**
-        * This is a character processing state: We've seen one of ()*+-./ after an escape
-        * character. Expecting a character set designation character.
-        */
-       private static final int ANSISTATE_EXPECTING_CHARSET_DESIGNATION = 5;
-       
-
-       /**
-        * This field holds the current state of the Finite TerminalState Automaton (FSA)
-        * that recognizes ANSI escape sequences.
-        *
-        * @see #processNewText()
-        */
-       private int ansiState = ANSISTATE_INITIAL;
-
-       /**
-        * This field holds a reference to the {@link TerminalControl} object that
-        * instantiates this class.
-        */
-       private final ITerminalControlForText terminal;
-
-       /**
-        * This field holds a reference to the StyledText widget that is used to
-        * display text to the user.
-        */
-       final private IVT100EmulatorBackend text;
-       /**
-        * This field hold the saved absolute line number of the cursor when
-        * processing the "ESC 7" and "ESC 8" command sequences.
-        */
-       private int savedCursorLine = 0;
-
-       /**
-        * This field hold the saved column number of the cursor when processing the
-        * "ESC 7" and "ESC 8" command sequences.
-        */
-       private int savedCursorColumn = 0;
-
-       /**
-        * This field holds an array of StringBuffer objects, each of which is one
-        * parameter from the current ANSI escape sequence. For example, when
-        * parsing the escape sequence "\e[20;10H", this array holds the strings
-        * "20" and "10".
-        */
-       private final StringBuffer[] ansiParameters = new StringBuffer[16];
-
-       /**
-        * This field holds the OS-specific command found in an escape sequence of
-        * the form "\e]...\u0007".
-        */
-       private final StringBuffer ansiOsCommand = new StringBuffer(128);
-
-       /**
-        * This field holds the index of the next unused element of the array stored
-        * in field {@link #ansiParameters}.
-        */
-       private int nextAnsiParameter = 0;
-
-       Reader fReader;
-
-       boolean fCrAfterNewLine;
-       /**
-        * The constructor.
-        */
-       public VT100Emulator(ITerminalTextData data, ITerminalControlForText terminal, Reader reader) {
-               super();
-
-               Logger.log("entered"); //$NON-NLS-1$
-
-               this.terminal = terminal;
-
-               for (int i = 0; i < ansiParameters.length; ++i) {
-                       ansiParameters[i] = new StringBuffer();
-               }
-               setInputStreamReader(reader);
-               if(TerminalPlugin.isOptionEnabled(Logger.TRACE_DEBUG_LOG_VT100BACKEND))
-                       text=new VT100BackendTraceDecorator(new VT100EmulatorBackend(data),System.out);
-               else
-                       text=new VT100EmulatorBackend(data);
-
-//             text.setDimensions(24, 80);
-               Style  style=Style.getStyle("BLACK", "WHITE"); //$NON-NLS-1$ //$NON-NLS-2$
-               text.setDefaultStyle(style);
-               text.setStyle(style);
-       }
-
-       /**
-        * Set the reader that this Terminal gets its input from.
-        *
-        * The reader can be changed while the Terminal is running, but a change of
-        * the reader likely loses some characters which have not yet been fully
-        * read. Changing the reader can be done in order to change the selected
-        * Encoding, though. This is typically done when the Terminal is
-        * constructed, i.e. before it really starts operation; or, when the user
-        * manually selects a different encoding and thus doesn't care about losing
-        * old characters.
-        *
-        * @param reader the new Reader
-        */
-       public void setInputStreamReader(Reader reader) {
-               fReader = reader;
-       }
-
-       public void setDimensions(int lines,int cols) {
-               text.setDimensions(lines, cols);
-               ITerminalConnector telnetConnection = getConnector();
-               if (telnetConnection != null) {
-                       telnetConnection.setTerminalSize(text.getColumns(), text.getLines());
-               }
-
-       }
-
-       /**
-        * This method performs clean up when this VT100Emulator object is no longer
-        * needed. After calling this method, no other method on this object should
-        * be called.
-        */
-       public void dispose() {
-       }
-
-       /**
-        * This method is required by interface ControlListener. It allows us to
-        * know when the StyledText widget is moved.
-        */
-       public void controlMoved(ControlEvent event) {
-               Logger.log("entered"); //$NON-NLS-1$
-               // Empty.
-       }
-
-       /**
-        * This method is required by interface ControlListener. It allows us to
-        * know when the StyledText widget is resized.
-        */
-       public void controlResized(ControlEvent event) {
-               Logger.log("entered"); //$NON-NLS-1$
-               adjustTerminalDimensions();
-       }
-
-       /**
-        * This method erases all text from the Terminal view.
-        */
-       public void clearTerminal() {
-               Logger.log("entered"); //$NON-NLS-1$
-               text.clearAll();
-       }
-
-       /**
-        * This method is called when the user changes the Terminal view's font. We
-        * attempt to recompute the pixel width of the new font's characters and fix
-        * the terminal's dimensions.
-        */
-       public void fontChanged() {
-               Logger.log("entered"); //$NON-NLS-1$
-
-               if (text != null)
-                       adjustTerminalDimensions();
-       }
-//     /**
-//      * This method executes in the Display thread to process data received from
-//      * the remote host by class {@link org.eclipse.tm.internal.terminal.telnet.TelnetConnection} and
-//      * other implementors of {@link ITerminalConnector}, like the
-//      * SerialPortHandler.
-//      * <p>
-//      * These connectors write text to the terminal's buffer through
-//      * {@link TerminalControl#writeToTerminal(String)} and then have
-//      * this run method executed in the display thread. This method
-//      * must not execute at the same time as methods
-//      * {@link #setNewText(StringBuffer)} and {@link #clearTerminal()}.
-//      * <p>
-//      * IMPORTANT: This method must be called in strict alternation with method
-//      * {@link #setNewText(StringBuffer)}.
-//      * <p>
-//      */
-       public void processText() {
-               try {
-                       // Find the width and height of the terminal, and resize it to display an
-                       // integral number of lines and columns.
-
-                       adjustTerminalDimensions();
-
-                       // Restore the caret offset, process and display the new text, then save
-                       // the caret offset. See the documentation for field caretOffset for
-                       // details.
-
-                       // ISSUE: Is this causing the scroll-to-bottom-on-output behavior?
-
-                       try {
-                               processNewText();
-                       } catch (IOException e) {
-                               Logger.logException(e);
-                       }
-
-               } catch (Exception ex) {
-                       Logger.logException(ex);
-               }
-       }
-       /**
-        * This method scans the newly received text, processing ANSI control
-        * characters and escape sequences and displaying normal text.
-        * @throws IOException
-        */
-       private void processNewText() throws IOException {
-               Logger.log("entered"); //$NON-NLS-1$
-
-
-               // Scan the newly received text.
-
-               while (hasNextChar()) {
-                       char character = getNextChar();
-
-                       switch (ansiState) {
-                       case ANSISTATE_INITIAL:
-                               switch (character) {
-                               case '\u0000':
-                                       break; // NUL character. Ignore it.
-
-                               case '\u0007':
-                                       processBEL(); // BEL (Control-G)
-                                       break;
-
-                               case '\b':
-                                       processBackspace(); // Backspace
-                                       break;
-
-                               case '\t':
-                                       processTab(); // Tab.
-                                       break;
-
-                               case '\n':
-                                       processNewline(); // Newline (Control-J)
-                                       if(fCrAfterNewLine)
-                                               processCarriageReturn(); // Carriage Return (Control-M)
-                                       break;
-
-                               case '\r':
-                                       processCarriageReturn(); // Carriage Return (Control-M)
-                                       break;
-
-                               case '\u001b':
-                                       ansiState = ANSISTATE_ESCAPE; // Escape.
-                                       break;
-
-                               default:
-                                       processNonControlCharacters(character);
-                                       break;
-                               }
-                               break;
-
-                       case ANSISTATE_ESCAPE:
-                               // We've seen an escape character. Here, we process the character
-                               // immediately following the escape.
-
-                               switch (character) {
-                               case '[':
-                                       ansiState = ANSISTATE_EXPECTING_PARAMETER_OR_COMMAND;
-                                       nextAnsiParameter = 0;
-
-                                       // Erase the parameter strings in preparation for optional
-                                       // parameter characters.
-
-                                       for (int i = 0; i < ansiParameters.length; ++i) {
-                                               ansiParameters[i].delete(0, ansiParameters[i].length());
-                                       }
-                                       break;
-
-                               case ']':
-                                       ansiState = ANSISTATE_EXPECTING_OS_COMMAND;
-                                       ansiOsCommand.delete(0, ansiOsCommand.length());
-                                       break;
-
-                               case ')':
-                               case '(':
-                               case '*':
-                               case '+':
-                               case '-':
-                               case '.':
-                               case '/':
-                                       ansiState = ANSISTATE_EXPECTING_CHARSET_DESIGNATION;
-                                       break;
-
-                               case '7':
-                                       // Save cursor position and character attributes
-
-                                       ansiState = ANSISTATE_INITIAL;
-                                       savedCursorLine = relativeCursorLine();
-                                       savedCursorColumn = getCursorColumn();
-                                       break;
-
-                               case '8':
-                                       // Restore cursor and attributes to previously saved
-                                       // position
-
-                                       ansiState = ANSISTATE_INITIAL;
-                                       moveCursor(savedCursorLine, savedCursorColumn);
-                                       break;
-
-                               case 'c':
-                                       // Reset the terminal
-                                       ansiState = ANSISTATE_INITIAL;
-                                       resetTerminal();
-                                       break;
-
-                               default:
-                                       Logger
-                                                       .log("Unsupported escape sequence: escape '" + character + "'"); //$NON-NLS-1$ //$NON-NLS-2$
-                                       ansiState = ANSISTATE_INITIAL;
-                                       break;
-                               }
-                               break;
-
-                       case ANSISTATE_EXPECTING_PARAMETER_OR_COMMAND:
-                               if (character == '?') {
-                                       ansiState = ANSISTATE_EXPECTING_DEC_PRIVATE_COMMAND;
-                                       break;
-                               }
-
-                               // Parameters can appear after the '[' in an escape sequence, but they
-                               // are optional.
-
-                               if (character == '@' || (character >= 'A' && character <= 'Z')
-                                               || (character >= 'a' && character <= 'z')) {
-                                       ansiState = ANSISTATE_INITIAL;
-                                       processAnsiCommandCharacter(character);
-                               } else {
-                                       processAnsiParameterCharacter(character);
-                               }
-                               break;
-
-                       case ANSISTATE_EXPECTING_OS_COMMAND:
-                               // A BEL (\u0007) character marks the end of the OSC sequence.
-
-                               if (character == '\u0007') {
-                                       ansiState = ANSISTATE_INITIAL;
-                                       processAnsiOsCommand();
-                               } else {
-                                       ansiOsCommand.append(character);
-                               }
-                               break;
-
-                       case ANSISTATE_EXPECTING_DEC_PRIVATE_COMMAND:
-                               // Parameters can appear after the '[?' in an escape sequence, but they
-                               // are optional.
-
-                               if (character == '@' || (character >= 'A' && character <= 'Z')
-                                               || (character >= 'a' && character <= 'z')) {
-                                       ansiState = ANSISTATE_INITIAL;
-                                       processDecPrivateCommandCharacter(character);
-                               } else {
-                                       processAnsiParameterCharacter(character);
-                               }
-                               break;
-
-                       case ANSISTATE_EXPECTING_CHARSET_DESIGNATION:
-                               if (character != '%')
-                                       ansiState = ANSISTATE_INITIAL;
-                               // Character set designation commands are ignored
-                               break;
-
-                       default:
-                               // This should never happen! If it does happen, it means there is a
-                               // bug in the FSA. For robustness, we return to the initial
-                               // state.
-
-                               Logger.log("INVALID ANSI FSA STATE: " + ansiState); //$NON-NLS-1$
-                               ansiState = ANSISTATE_INITIAL;
-                               break;
-                       }
-               }
-       }
-       private void resetTerminal() {
-               text.eraseAll();
-               text.setCursor(0, 0);
-               text.setStyle(text.getDefaultStyle());
-               text.setScrollRegion(-1, -1);
-               text.setInsertMode(false);
-               terminal.enableApplicationCursorKeys(false);
-       }
-       /**
-        * This method is called when we have parsed an OS Command escape sequence.
-        * The only one we support is "\e]0;...\u0007", which sets the terminal
-        * title.
-        */
-       private void processAnsiOsCommand() {
-               if (ansiOsCommand.charAt(0) != '0' || ansiOsCommand.charAt(1) != ';') {
-                       Logger
-                                       .log("Ignoring unsupported ANSI OSC sequence: '" + ansiOsCommand + "'"); //$NON-NLS-1$ //$NON-NLS-2$
-                       return;
-               }
-               terminal.setTerminalTitle(ansiOsCommand.substring(2));
-       }
-
-       /**
-        * This method dispatches control to various processing methods based on the
-        * command character found in the most recently received ANSI escape
-        * sequence. This method only handles command characters that follow the
-        * ANSI standard Control Sequence Introducer (CSI), which is "\e[...", where
-        * "..." is an optional ';'-separated sequence of numeric parameters.
-        * <p>
-        */
-       private void processAnsiCommandCharacter(char ansiCommandCharacter) {
-               // If the width or height of the terminal is ridiculously small (one line or
-               // column or less), don't even try to process the escape sequence. This avoids
-               // throwing an exception (SPR 107450). The display will be messed up, but what
-               // did you user expect by making the terminal so small?
-
-               switch (ansiCommandCharacter) {
-               case '@':
-                       // Insert character(s).
-                       processAnsiCommand_atsign();
-                       break;
-
-               case 'A':
-                       // Move cursor up N lines (default 1).
-                       processAnsiCommand_A();
-                       break;
-
-               case 'B':
-                       // Move cursor down N lines (default 1).
-                       processAnsiCommand_B();
-                       break;
-
-               case 'C':
-                       // Move cursor forward N columns (default 1).
-                       processAnsiCommand_C();
-                       break;
-
-               case 'D':
-                       // Move cursor backward N columns (default 1).
-                       processAnsiCommand_D();
-                       break;
-
-               case 'd':
-                       // Line Position Absolute [row] (default = [1,column]) (VPA).
-                       processAnsiCommand_d();
-                       break;
-                       
-               case 'E':
-                       // Move cursor to first column of Nth next line (default 1).
-                       processAnsiCommand_E();
-                       break;
-
-               case 'F':
-                       // Move cursor to first column of Nth previous line (default 1).
-                       processAnsiCommand_F();
-                       break;
-
-               case 'G':
-                       // Move to column N of current line (default 1).
-                       processAnsiCommand_G();
-                       break;
-
-               case 'H':
-                       // Set cursor Position.
-                       processAnsiCommand_H();
-                       break;
-
-               case 'h':
-                       // Reset Mode.
-                       processAnsiCommand_h();
-                       break;
-
-               case 'J':
-                       // Erase part or all of display. Cursor does not move.
-                       processAnsiCommand_J();
-                       break;
-
-               case 'K':
-                       // Erase in line (cursor does not move).
-                       processAnsiCommand_K();
-                       break;
-
-               case 'L':
-                       // Insert line(s) (current line moves down).
-                       processAnsiCommand_L();
-                       break;
-
-               case 'l':
-                       // Set Mode.
-                       processAnsiCommand_l();
-                       break;
-                       
-               case 'M':
-                       // Delete line(s).
-                       processAnsiCommand_M();
-                       break;
-
-               case 'm':
-                       // Set Graphics Rendition (SGR).
-                       processAnsiCommand_m();
-                       break;
-
-               case 'n':
-                       // Device Status Report (DSR).
-                       processAnsiCommand_n();
-                       break;
-
-               case 'P':
-                       // Delete character(s).
-                       processAnsiCommand_P();
-                       break;
-
-               case 'r':
-                       // Set Scrolling Region.
-                       processAnsiCommand_r();
-                       break;
-
-               case 'S':
-                       // Scroll up.
-                       processAnsiCommand_S();
-                       break;
-
-               case 'T':
-                       // Scroll down.
-                       processAnsiCommand_T();
-                       break;
-
-               case 'X':
-                       // Erase character.
-                       // Emacs, vi, and GNU readline don't seem to use this command, so we ignore
-                       // it for now.
-                       break;
-
-               case 'Z':
-                       // Cursor back tab.
-                       // Emacs, vi, and GNU readline don't seem to use this command, so we ignore
-                       // it for now.
-                       break;
-
-               default:
-                       Logger.log("Ignoring unsupported ANSI command character: '" + //$NON-NLS-1$
-                                       ansiCommandCharacter + "'"); //$NON-NLS-1$
-                       break;
-               }
-       }
-
-       /**
-        * This method dispatches control to various processing methods based on the
-        * command character found in the most recently received DEC private mode escape
-        * sequence. This method only handles command characters that follow the
-        * control sequence CSI ?
-        */
-       private void processDecPrivateCommandCharacter(char commandCharacter) {
-               switch (commandCharacter) {
-               case 'h':
-                       // DEC Private Mode Set (DECSET)
-                       processDecPrivateCommand_h();
-                       break;
-
-               case 'l':
-                       // DEC Private Mode Reset (DECRST)
-                       processDecPrivateCommand_l();
-                       break;
-
-               default:
-                       Logger.log("Ignoring unsupported DEC private command character: '" + //$NON-NLS-1$
-                                       commandCharacter + "'"); //$NON-NLS-1$
-                       break;
-               }
-       }
-
-       /**
-        * This method makes room for N characters on the current line at the cursor
-        * position. Text under the cursor moves right without wrapping at the end
-        * of the line.
-        */
-       private void processAnsiCommand_atsign() {
-               int charactersToInsert = getAnsiParameter(0);
-               text.insertCharacters(charactersToInsert);
-       }
-
-       /**
-        * This method moves the cursor up by the number of lines specified by the
-        * escape sequence parameter (default 1).
-        */
-       private void processAnsiCommand_A() {
-               moveCursorUp(getAnsiParameter(0));
-       }
-
-       /**
-        * This method moves the cursor down by the number of lines specified by the
-        * escape sequence parameter (default 1).
-        */
-       private void processAnsiCommand_B() {
-               moveCursorDown(getAnsiParameter(0));
-       }
-
-       /**
-        * This method moves the cursor forward by the number of columns specified
-        * by the escape sequence parameter (default 1).
-        */
-       private void processAnsiCommand_C() {
-               moveCursorForward(getAnsiParameter(0));
-       }
-
-       /**
-        * This method moves the cursor backward by the number of columns specified
-        * by the escape sequence parameter (default 1).
-        */
-       private void processAnsiCommand_D() {
-               moveCursorBackward(getAnsiParameter(0));
-       }
-
-       /**
-        * This method moves the cursor to a specific row.
-        */
-       private void processAnsiCommand_d() {
-               // Line Position Absolute [row] (default = [1,column]) (VPA).
-               text.setCursorLine(getAnsiParameter(0) - 1);
-       }
-       
-       /**
-        * This method moves the cursor to the first column of the Nth next line,
-        * where N is specified by the ANSI parameter (default 1).
-        */
-       private void processAnsiCommand_E() {
-               int linesToMove = getAnsiParameter(0);
-
-               moveCursor(relativeCursorLine() + linesToMove, 0);
-       }
-
-       /**
-        * This method moves the cursor to the first column of the Nth previous
-        * line, where N is specified by the ANSI parameter (default 1).
-        */
-       private void processAnsiCommand_F() {
-               int linesToMove = getAnsiParameter(0);
-
-               moveCursor(relativeCursorLine() - linesToMove, 0);
-       }
-
-       /**
-        * This method moves the cursor within the current line to the column
-        * specified by the ANSI parameter (default is column 1).
-        */
-       private void processAnsiCommand_G() {
-               moveCursor(relativeCursorLine(), getAnsiParameter(0) - 1);
-       }
-
-       /**
-        * This method sets the cursor to a position specified by the escape
-        * sequence parameters (default is the upper left corner of the screen).
-        */
-       private void processAnsiCommand_H() {
-               moveCursor(getAnsiParameter(0) - 1, getAnsiParameter(1) - 1);
-       }
-
-       /**
-        * This method sets terminal modes.
-        */
-       private void processAnsiCommand_h() {
-               if (getAnsiParameter(0) == 4) {
-                       // set insert mode
-                       text.setInsertMode(true);
-               }
-       }
-
-       /**
-        * This method deletes some (or all) of the text on the screen without
-        * moving the cursor.
-        */
-       private void processAnsiCommand_J() {
-               int ansiParameter;
-
-               if (ansiParameters[0].length() == 0)
-                       ansiParameter = 0;
-               else
-                       ansiParameter = getAnsiParameter(0);
-
-               switch (ansiParameter) {
-               case 0:
-                       text.eraseToEndOfScreen();
-                       break;
-
-               case 1:
-                       // Erase from beginning to current position (inclusive).
-                       text.eraseToCursor();
-                       break;
-
-               case 2:
-                       // Erase entire display.
-
-                       text.eraseAll();
-                       break;
-
-               default:
-                       Logger.log("Unexpected J-command parameter: " + ansiParameter); //$NON-NLS-1$
-                       break;
-               }
-       }
-
-       /**
-        * This method deletes some (or all) of the text in the current line without
-        * moving the cursor.
-        */
-       private void processAnsiCommand_K() {
-               //Bug 401386: missing parameter must be interpreted as 0, and not 1 like most other defaults.
-               int ansiParameter = 0;
-               if (ansiParameters[0].length() > 0)
-                       ansiParameter = getAnsiParameter(0);
-
-               switch (ansiParameter) {
-               case 0:
-                       // Erase from current position to end (inclusive).
-                       text.eraseLineToEnd();
-                       break;
-
-               case 1:
-                       // Erase from beginning to current position (inclusive).
-                       text.eraseLineToCursor();
-                       break;
-
-               case 2:
-                       // Erase entire line.
-                       text.eraseLine();
-                       break;
-
-               default:
-                       Logger.log("Unexpected K-command parameter: " + ansiParameter); //$NON-NLS-1$
-                       break;
-               }
-       }
-
-       /**
-        * Insert one or more blank lines. The current line of text moves down. Text
-        * that falls off the bottom of the screen is deleted.
-        */
-       private void processAnsiCommand_L() {
-               text.insertLines(getAnsiParameter(0));
-       }
-
-       /**
-        * This method resets terminal modes.
-        */
-       private void processAnsiCommand_l() {
-               if (getAnsiParameter(0) == 4) {
-                       // reset insert mode
-                       text.setInsertMode(false);
-               }
-       }
-
-       /**
-        * Delete one or more lines of text. Any lines below the deleted lines move
-        * up, which we implement by appending newlines to the end of the text.
-        */
-       private void processAnsiCommand_M() {
-               text.deleteLines(getAnsiParameter(0));
-       }
-
-       /**
-        * This method sets a new graphics rendition mode, such as
-        * foreground/background color, bold/normal text, and reverse video.
-        */
-       private void processAnsiCommand_m() {
-               if (ansiParameters[0].length() == 0) {
-                       // This a special case: when no ANSI parameter is specified, act like a
-                       // single parameter equal to 0 was specified.
-
-                       ansiParameters[0].append('0');
-               }
-               Style style=text.getStyle();
-               // There are a non-zero number of ANSI parameters. Process each one in
-               // order.
-
-               int totalParameters = ansiParameters.length;
-               int parameterIndex = 0;
-
-               while (parameterIndex < totalParameters
-                               && ansiParameters[parameterIndex].length() > 0) {
-                       int ansiParameter = getAnsiParameter(parameterIndex);
-
-                       switch (ansiParameter) {
-                       case 0:
-                               // Reset all graphics modes.
-                               style = text.getDefaultStyle();
-                               break;
-
-                       case 1:
-                               style = style.setBold(true);
-                               break;
-
-                       case 4:
-                               style = style.setUnderline(true);
-                               break;
-
-                       case 5:
-                               style = style.setBlink(true);
-                               break;
-
-                       case 7:
-                               style = style.setReverse(true);
-                               break;
-
-                       case 10: // Set primary font. Ignored.
-                               break;
-
-                       case 21:
-                       case 22:
-                               style = style.setBold(false);
-                               break;
-
-                       case 24:
-                               style = style.setUnderline(false);
-                               break;
-
-                       case 25:
-                               style = style.setBlink(false);
-                               break;
-
-                       case 27:
-                               style = style.setReverse(false);
-                               break;
-
-                       case 30:
-                               style = style.setForground("BLACK"); //$NON-NLS-1$
-                               break;
-
-                       case 31:
-                               style = style.setForground("RED");  //$NON-NLS-1$
-                               break;
-
-                       case 32:
-                               style = style.setForground("GREEN");  //$NON-NLS-1$
-                               break;
-
-                       case 33:
-                               style = style.setForground("YELLOW");  //$NON-NLS-1$
-                               break;
-
-                       case 34:
-                               style = style.setForground("BLUE"); //$NON-NLS-1$
-                               break;
-
-                       case 35:
-                               style = style.setForground("MAGENTA");  //$NON-NLS-1$
-                               break;
-
-                       case 36:
-                               style = style.setForground("CYAN"); //$NON-NLS-1$
-                               break;
-
-                       case 37:
-                               style = style.setForground("WHITE_FOREGROUND"); //$NON-NLS-1$
-                               break;
-
-                       case 39: //Foreground: Default
-                               style = style.setForground(text.getDefaultStyle().getForground());
-                               break;
-
-                       case 40:
-                               style = style.setBackground("BLACK"); //$NON-NLS-1$
-                               break;
-
-                       case 41:
-                               style = style.setBackground("RED"); //$NON-NLS-1$
-                               break;
-
-                       case 42:
-                               style = style.setBackground("GREEN"); //$NON-NLS-1$
-                               break;
-
-                       case 43:
-                               style = style.setBackground("YELLOW"); //$NON-NLS-1$
-                               break;
-
-                       case 44:
-                               style = style.setBackground("BLUE"); //$NON-NLS-1$
-                               break;
-
-                       case 45:
-                               style = style.setBackground("MAGENTA"); //$NON-NLS-1$
-                               break;
-
-                       case 46:
-                               style = style.setBackground("CYAN"); //$NON-NLS-1$
-                               break;
-
-                       case 47:
-                               style = style.setBackground("WHITE"); //$NON-NLS-1$
-                               break;
-
-                       case 49: //Background: Default
-                               style = style.setBackground(text.getDefaultStyle().getBackground());
-                               break;
-
-                       default:
-                               Logger
-                                               .log("Unsupported graphics rendition parameter: " + ansiParameter); //$NON-NLS-1$
-                               break;
-                       }
-
-                       ++parameterIndex;
-               }
-               text.setStyle(style);
-       }
-
-       /**
-        * This method responds to an ANSI Device Status Report (DSR) command from
-        * the remote endpoint requesting the ready status or the cursor position.
-        * Requests for other kinds of status are ignored.
-        */
-       private void processAnsiCommand_n() {
-               String reply;
-
-               if (getAnsiParameter(0) == 5) {
-                       // Report that the terminal is ready and has no malfunctions.
-                       reply = "\u001b[0n"; //$NON-NLS-1$
-
-               } else if (getAnsiParameter(0) == 6) {
-                       // Send the ANSI cursor position (which is 1-based) to the remote
-                       // endpoint.
-                       reply = "\u001b[" + (relativeCursorLine() + 1) + ";" + //$NON-NLS-1$ //$NON-NLS-2$
-                                       (getCursorColumn() + 1) + "R"; //$NON-NLS-1$
-
-               } else {
-                       // Do nothing if the numeric parameter was not 5 or 6.
-                       return;
-               }
-
-               try {
-                       terminal.getOutputStream().write(reply.getBytes("ISO-8859-1")); //$NON-NLS-1$
-                       terminal.getOutputStream().flush();
-               } catch (IOException ex) {
-                       Logger.log("Caught IOException!"); //$NON-NLS-1$
-               }
-       }
-
-       /**
-        * Deletes one or more characters starting at the current cursor position.
-        * Characters on the same line and to the right of the deleted characters
-        * move left. If there are no characters on the current line at or to the
-        * right of the cursor column, no text is deleted.
-        */
-       private void processAnsiCommand_P() {
-               text.deleteCharacters(getAnsiParameter(0));
-       }
-
-       /**
-        *  Set Scrolling Region [top;bottom] (default = full size of window) (DECSTBM).
-        */
-       private void processAnsiCommand_r() {
-               int top = 0;
-               int bottom = 0;
-               if (ansiParameters[0].length() > 0 && ansiParameters[1].length() > 0) {
-                       top = getAnsiParameter(0);
-                       bottom = getAnsiParameter(1);
-               }
-               text.setScrollRegion(top-1, bottom-1);
-       }
-       
-       /**
-        * Scroll up n lines (default = 1 line).
-        */
-       private void processAnsiCommand_S() {
-               text.scrollUp(getAnsiParameter(0));
-       }
-       
-       /**
-        * Scroll down n lines (default = 1 line).
-        */
-       private void processAnsiCommand_T() {
-               text.scrollDown(getAnsiParameter(0));
-       }
-       
-       private void processDecPrivateCommand_h() {
-               int param = getAnsiParameter(0);
-               switch (param) {
-               case 1:
-                       // Enable Application Cursor Keys (DECCKM)
-                       terminal.enableApplicationCursorKeys(true);
-                       break;
-               case 47:
-               case 1047:
-               case 1048:
-               case 1049:
-                       // Use Alternate Screen Buffer (ignored).
-                       break;
-               default:
-                       Logger.log("Unsupported command parameter: CSI ?" + param + 'h'); //$NON-NLS-1$
-                       break;
-               }
-       }
-
-       private void processDecPrivateCommand_l() {
-               int param = getAnsiParameter(0);
-               switch (param) {
-               case 1:
-                       // Enable Normal Cursor Keys (DECCKM)
-                       terminal.enableApplicationCursorKeys(false);
-                       break;
-               case 47:
-               case 1047:
-               case 1048:
-               case 1049:
-                       // Use Normal Screen Buffer (ignored, but reset scroll region).
-                       text.setScrollRegion(-1, -1);
-                       break;
-               default:
-                       Logger.log("Unsupported command parameter: CSI ?" + param + 'l'); //$NON-NLS-1$
-                       break;
-               }
-       }
-       
-       /**
-        * This method returns one of the numeric ANSI parameters received in the
-        * most recent escape sequence.
-        *
-        * @return The <i>parameterIndex</i>th numeric ANSI parameter or -1 if the
-        *         index is out of range.
-        */
-       private int getAnsiParameter(int parameterIndex) {
-               if (parameterIndex < 0 || parameterIndex >= ansiParameters.length) {
-                       // This should never happen.
-                       return -1;
-               }
-
-               String parameter = ansiParameters[parameterIndex].toString();
-
-               if (parameter.length() == 0)
-                       return 1;
-
-               int parameterValue = 1;
-
-               // Don't trust the remote endpoint to send well formed numeric
-               // parameters.
-
-               try {
-                       parameterValue = Integer.parseInt(parameter);
-               } catch (NumberFormatException ex) {
-                       parameterValue = 1;
-               }
-
-               return parameterValue;
-       }
-
-       /**
-        * This method processes a single parameter character in an ANSI escape
-        * sequence. Parameters are the (optional) characters between the leading
-        * "\e[" and the command character in an escape sequence (e.g., in the
-        * escape sequence "\e[20;10H", the parameter characters are "20;10").
-        * Parameters are integers separated by one or more ';'s.
-        */
-       private void processAnsiParameterCharacter(char ch) {
-               if (ch == ';') {
-                       ++nextAnsiParameter;
-               } else {
-                       if (nextAnsiParameter < ansiParameters.length)
-                               ansiParameters[nextAnsiParameter].append(ch);
-               }
-       }
-       /**
-        * This method processes a contiguous sequence of non-control characters.
-        * This is a performance optimization, so that we don't have to insert or
-        * append each non-control character individually to the StyledText widget.
-        * A non-control character is any character that passes the condition in the
-        * below while loop.
-        * @throws IOException
-        */
-       private void processNonControlCharacters(char character) throws IOException {
-               StringBuffer buffer=new StringBuffer();
-               buffer.append(character);
-               // Identify a contiguous sequence of non-control characters, starting at
-               // firstNonControlCharacterIndex in newText.
-               while(hasNextChar()) {
-                       character=getNextChar();
-                       if(character == '\u0000' || character == '\b' || character == '\t'
-                               || character == '\u0007' || character == '\n'
-                               || character == '\r' || character == '\u001b') {
-                               pushBackChar(character);
-                               break;
-                       }
-                       buffer.append(character);
-               }
-
-               // Now insert the sequence of non-control characters in the StyledText widget
-               // at the location of the cursor.
-
-               displayNewText(buffer.toString());
-       }
-
-       /**
-        * This method displays a subset of the newly-received text in the Terminal
-        * view, wrapping text at the right edge of the screen and overwriting text
-        * when the cursor is not at the very end of the screen's text.
-        * <p>
-        *
-        * There are never any ANSI control characters or escape sequences in the
-        * text being displayed by this method (this includes newlines, carriage
-        * returns, and tabs).
-        * <p>
-        */
-       private void displayNewText(String buffer) {
-               text.appendString(buffer);
-       }
-
-
-       /**
-        * Process a BEL (Control-G) character.
-        */
-       private void processBEL() {
-               // TODO
-               //Display.getDefault().beep();
-       }
-
-       /**
-        * Process a backspace (Control-H) character.
-        */
-       private void processBackspace() {
-               moveCursorBackward(1);
-       }
-
-       /**
-        * Process a tab (Control-I) character. We don't insert a tab character into
-        * the StyledText widget. Instead, we move the cursor forward to the next
-        * tab stop, without altering any of the text. Tab stops are every 8
-        * columns. The cursor will never move past the rightmost column.
-        */
-       private void processTab() {
-               moveCursorForward(8 - (getCursorColumn() % 8));
-       }
-
-       /**
-        * Process a newline (Control-J) character. A newline (NL) character just
-        * moves the cursor to the same column on the next line, creating new lines
-        * when the cursor reaches the bottom edge of the terminal. This is
-        * counter-intuitive, especially to UNIX programmers who are taught that
-        * writing a single NL to a terminal is sufficient to move the cursor to the
-        * first column of the next line, as if a carriage return (CR) and a NL were
-        * written.
-        * <p>
-        *
-        * UNIX terminals typically display a NL character as a CR followed by a NL
-        * because the terminal device typically has the ONLCR attribute bit set
-        * (see the termios(4) man page for details), which causes the terminal
-        * device driver to translate NL to CR + NL on output. The terminal itself
-        * (i.e., a hardware terminal or a terminal emulator, like xterm or this
-        * code) _always_ interprets a CR to mean "move the cursor to the beginning
-        * of the current line" and a NL to mean "move the cursor to the same column
-        * on the next line".
-        * <p>
-        */
-       private void processNewline() {
-               text.processNewline();
-       }
-
-       /**
-        * Process a Carriage Return (Control-M).
-        */
-       private void processCarriageReturn() {
-               text.setCursorColumn(0);
-       }
-
-       /**
-        * This method computes the width of the terminal in columns and its height
-        * in lines, then adjusts the width and height of the view's StyledText
-        * widget so that it displays an integral number of lines and columns of
-        * text. The adjustment is always to shrink the widget vertically or
-        * horizontally, because if the control were to grow, it would be clipped by
-        * the edges of the view window (i.e., the view window does not become
-        * larger to accommodate its contents becoming larger).
-        * <p>
-        *
-        * This method must be called immediately before each time text is written
-        * to the terminal so that we can properly line wrap text. Because it is
-        * called so frequently, it must be fast when there is no resizing to be
-        * done.
-        * <p>
-        */
-       private void adjustTerminalDimensions() {
-               // Compute how many pixels we need to shrink the StyledText control vertically
-               // to make it display an integral number of lines of text.
-
-               // TODO
-//             if(text.getColumns()!=80 && text.getLines()!=80)
-//                     text.setDimensions(24, 80);
-               // If we are in a TELNET connection and we know the dimensions of the terminal,
-               // we give the size information to the TELNET connection object so it can
-               // communicate it to the TELNET server. If we are in a serial connection,
-               // there is nothing we can do to tell the remote host about the size of the
-               // terminal.
-               ITerminalConnector telnetConnection = getConnector();
-               // TODO MSA: send only if dimensions have really changed!
-               if (telnetConnection != null) {
-                       telnetConnection.setTerminalSize(text.getColumns(), text.getLines());
-               }
-
-       }
-
-       private ITerminalConnector getConnector() {
-               if(terminal.getTerminalConnector()!=null)
-                       return terminal.getTerminalConnector();
-               return null;
-       }
-
-       /**
-        * This method returns the relative line number of the line containing the
-        * cursor. The returned line number is relative to the topmost visible line,
-        * which has relative line number 0.
-        *
-        * @return The relative line number of the line containing the cursor.
-        */
-       private int relativeCursorLine() {
-               return text.getCursorLine();
-       }
-
-       /**
-        * This method moves the cursor to the specified line and column. Parameter
-        * <i>targetLine</i> is the line number of a screen line, so it has a
-        * minimum value of 0 (the topmost screen line) and a maximum value of
-        * heightInLines - 1 (the bottommost screen line). A line does not have to
-        * contain any text to move the cursor to any column in that line.
-        */
-       private void moveCursor(int targetLine, int targetColumn) {
-               text.setCursor(targetLine,targetColumn);
-       }
-
-       /**
-        * This method moves the cursor down <i>lines</i> lines, but won't move the
-        * cursor past the bottom of the screen. This method does not cause any
-        * scrolling.
-        */
-       private void moveCursorDown(int lines) {
-               moveCursor(relativeCursorLine() + lines, getCursorColumn());
-       }
-
-       /**
-        * This method moves the cursor up <i>lines</i> lines, but won't move the
-        * cursor past the top of the screen. This method does not cause any
-        * scrolling.
-        */
-       private void moveCursorUp(int lines) {
-               moveCursor(relativeCursorLine() - lines, getCursorColumn());
-       }
-
-       /**
-        * This method moves the cursor forward <i>columns</i> columns, but won't
-        * move the cursor past the right edge of the screen, nor will it move the
-        * cursor onto the next line. This method does not cause any scrolling.
-        */
-       private void moveCursorForward(int columnsToMove) {
-               moveCursor(relativeCursorLine(), getCursorColumn() + columnsToMove);
-       }
-
-       /**
-        * This method moves the cursor backward <i>columnsToMove</i> columns, but
-        * won't move the cursor past the left edge of the screen, nor will it move
-        * the cursor onto the previous line. This method does not cause any
-        * scrolling.
-        */
-       private void moveCursorBackward(int columnsToMove) {
-               moveCursor(relativeCursorLine(), getCursorColumn() - columnsToMove);
-       }
-       /**
-        * Resets the state of the terminal text (foreground color, background color,
-        * font style and other internal state). It essentially makes it ready for new input.
-        */
-       public void resetState() {
-               ansiState=ANSISTATE_INITIAL;
-               text.setStyle(text.getDefaultStyle());
-               text.setScrollRegion(-1, -1);
-               text.setInsertMode(false);
-       }
-
-//     public OutputStream getOutputStream() {
-//             return fTerminalInputStream.getOutputStream();
-//     }
-
-       /**
-        * Buffer for {@link #pushBackChar(char)}.
-        */
-       private int fNextChar=-1;
-
-       private char getNextChar() throws IOException {
-               int c=-1;
-               if(fNextChar!=-1) {
-                       c= fNextChar;
-                       fNextChar=-1;
-               } else {
-                       c = fReader.read();
-               }
-               // TODO: better end of file handling
-               if(c==-1)
-                       c=0;
-               return (char)c;
-       }
-
-       private boolean hasNextChar() throws IOException  {
-               if(fNextChar>=0)
-                       return true;
-               return fReader.ready();
-       }
-
-       /**
-        * Put back one character to the stream. This method can push
-        * back exactly one character. The character is the next character
-        * returned by {@link #getNextChar}
-        * @param c the character to be pushed back.
-        */
-       void pushBackChar(char c) {
-               //assert fNextChar!=-1: "Already a character waiting:"+fNextChar; //$NON-NLS-1$
-               fNextChar=c;
-       }
-       private int getCursorColumn() {
-               return text.getCursorColumn();
-       }
-       public boolean isCrAfterNewLine() {
-               return fCrAfterNewLine;
-       }
-       public void setCrAfterNewLine(boolean crAfterNewLine) {
-               fCrAfterNewLine = crAfterNewLine;
-       }
-       void setVT100LineWrapping(boolean enable) {
-               text.setVT100LineWrapping(enable);
-       }
-       boolean isVT100LineWrapping() {
-               return text.isVT100LineWrapping();
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/VT100EmulatorBackend.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/VT100EmulatorBackend.java
deleted file mode 100644 (file)
index 36140d6..0000000
+++ /dev/null
@@ -1,494 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Anton Leherbauer (Wind River) - [206329] Changing terminal size right after connect does not scroll properly
- * Anton Leherbauer (Wind River) - [433751] Add option to enable VT100 line wrapping mode
- * Anton Leherbauer (Wind River) - [458218] Add support for ANSI insert mode
- * Anton Leherbauer (Wind River) - [458402] Add support for scroll up/down and scroll region
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.emulator;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.Style;
-
-/**
- *
- */
-public class VT100EmulatorBackend implements IVT100EmulatorBackend {
-
-       private static class ScrollRegion {
-               static final ScrollRegion FULL_WINDOW = new ScrollRegion(0, Integer.MAX_VALUE-1);
-               private final int fTop;
-               private final int fBottom;
-               ScrollRegion(int top, int bottom) {
-                       fTop = top;
-                       fBottom = bottom;
-               }
-               boolean contains(int line) {
-                       return line >= fTop && line <= fBottom;
-               }
-               int getTopLine() {
-                       return fTop;
-               }
-               int getBottomLine() {
-                       return fBottom;
-               }
-               int getHeight() {
-                       return fBottom - fTop + 1;
-               }
-       }
-
-       /**
-        * This field holds the number of the column in which the cursor is
-        * logically positioned. The leftmost column on the screen is column 0, and
-        * column numbers increase to the right. The maximum value of this field is
-        * {@link #widthInColumns} - 1. We track the cursor column using this field
-        * to avoid having to recompute it repeatly using StyledText method calls.
-        * <p>
-        * 
-        * The StyledText widget that displays text has a vertical bar (called the
-        * "caret") that appears _between_ character cells, but ANSI terminals have
-        * the concept of a cursor that appears _in_ a character cell, so we need a
-        * convention for which character cell the cursor logically occupies when
-        * the caret is physically between two cells. The convention used in this
-        * class is that the cursor is logically in column N when the caret is
-        * physically positioned immediately to the _left_ of column N.
-        * <p>
-        * 
-        * When fCursorColumn is N, the next character output to the terminal appears
-        * in column N. When a character is output to the rightmost column on a
-        * given line (column widthInColumns - 1), the cursor moves to column 0 on
-        * the next line after the character is drawn (this is the default line wrapping
-        * mode). If VT100 line wrapping mode is enabled, the cursor does not move
-        * to the next line until the next character is printed (this is known as 
-        * the VT100 'eat_newline_glitch').
-        * If the cursor is in the bottommost line when line wrapping
-        * occurs, the topmost visible line is scrolled off the top edge of the
-        * screen.
-        * <p>
-        */
-       private int fCursorColumn;
-       private int fCursorLine;
-       /* true if last output occurred on rightmost column 
-        * and next output requires line wrap */
-       private boolean fWrapPending;
-       private boolean fInsertMode;
-       private Style fDefaultStyle;
-       private Style fStyle;
-       int fLines;
-       int fColumns;
-       final private ITerminalTextData fTerminal;
-       private boolean fVT100LineWrapping;
-       private ScrollRegion fScrollRegion = ScrollRegion.FULL_WINDOW;
-
-       public VT100EmulatorBackend(ITerminalTextData terminal) {
-               fTerminal=terminal;
-       }
-       
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#clearAll()
-        */
-       public void clearAll() {
-               synchronized (fTerminal) {
-                       // clear the history
-                       int n=fTerminal.getHeight();
-                       for (int line = 0; line < n; line++) {
-                               fTerminal.cleanLine(line);
-                       }
-                       fTerminal.setDimensions(fLines, fTerminal.getWidth());
-                       setStyle(getDefaultStyle());
-                       setCursor(0, 0);
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#setDimensions(int, int)
-        */
-       public void setDimensions(int lines, int cols) {
-               synchronized (fTerminal) {
-                       if(lines==fLines && cols==fColumns)
-                               return; // nothing to do
-                       // relative cursor line
-                       int cl=getCursorLine();
-                       int cc=getCursorColumn();
-                       int height=fTerminal.getHeight();
-                       // absolute cursor line
-                       int acl=cl+height-fLines;
-                       int newLines=Math.max(lines,height);
-                       if(lines<fLines) {
-                               if(height==fLines) {
-                                       // if the terminal has no history, then resize by
-                                       // setting the size to the new size
-                                       // TODO We are assuming that cursor line points at end of text
-                                       newLines=Math.max(lines, cl+1);
-                               }
-                       }
-                       fLines=lines;
-                       fColumns=cols;
-                       // make the terminal at least as high as we need lines
-                       fTerminal.setDimensions(newLines, fColumns);
-                       // compute relative cursor line
-                       cl=acl-(newLines-fLines);
-                       setCursor(cl, cc);
-               }
-       }
-       
-       int toAbsoluteLine(int line) {
-               synchronized (fTerminal) {
-                       return fTerminal.getHeight()-fLines+line;
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#insertCharacters(int)
-        */
-       public void insertCharacters(int charactersToInsert) {
-               synchronized (fTerminal) {
-                       int line=toAbsoluteLine(fCursorLine);
-                       int n=charactersToInsert;
-                       for (int col = fColumns-1; col >=fCursorColumn+n; col--) {
-                               char c=fTerminal.getChar(line, col-n);
-                               Style style=fTerminal.getStyle(line, col-n);
-                               fTerminal.setChar(line, col,c, style);
-                       }
-                       int last=Math.min(fCursorColumn+n, fColumns);
-                       for (int col = fCursorColumn; col <last; col++) {
-                               fTerminal.setChar(line, col,'\000', null);
-                       }
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#eraseToEndOfScreen()
-        */
-       public void eraseToEndOfScreen() {
-               synchronized (fTerminal) {
-                       eraseLineToEnd();
-                       for (int line = toAbsoluteLine(fCursorLine+1); line < toAbsoluteLine(fLines); line++) {
-                               fTerminal.cleanLine(line);
-                       }
-               }
-               
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#eraseToCursor()
-        */
-       public void eraseToCursor() {
-               synchronized (fTerminal) {
-                       for (int line = toAbsoluteLine(0); line < toAbsoluteLine(fCursorLine); line++) {
-                               fTerminal.cleanLine(line);
-                       }
-                       eraseLineToCursor();
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#eraseAll()
-        */
-       public void eraseAll() {
-               synchronized (fTerminal) {
-                       for (int line = toAbsoluteLine(0); line < toAbsoluteLine(fLines); line++) {
-                               fTerminal.cleanLine(line);
-                       }
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#eraseLine()
-        */
-       public void eraseLine() {
-               synchronized (fTerminal) {
-                       fTerminal.cleanLine(toAbsoluteLine(fCursorLine));
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#eraseLineToEnd()
-        */
-       public void eraseLineToEnd() {
-               synchronized (fTerminal) {
-                       int line=toAbsoluteLine(fCursorLine);
-                       for (int col = fCursorColumn; col < fColumns; col++) {
-                               fTerminal.setChar(line, col, '\000', null);
-                       }
-               }
-       }       
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#eraseLineToCursor()
-        */
-       public void eraseLineToCursor() {
-               synchronized (fTerminal) {
-                       int line=toAbsoluteLine(fCursorLine);
-                       for (int col = 0; col <= fCursorColumn; col++) {
-                               fTerminal.setChar(line, col, '\000', null);
-                       }
-               }
-       }       
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#insertLines(int)
-        */
-       public void insertLines(int n) {
-               synchronized (fTerminal) {
-                       if(!isCusorInScrollingRegion())
-                               return;
-                       assert n>0;
-                       int line=toAbsoluteLine(fCursorLine);
-                       int nLines=Math.min(fTerminal.getHeight()-line, fScrollRegion.getBottomLine()-fCursorLine+1);
-                       fTerminal.scroll(line, nLines, n);
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#deleteCharacters(int)
-        */
-       public void deleteCharacters(int n) {
-               synchronized (fTerminal) {
-                       int line=toAbsoluteLine(fCursorLine);
-                       for (int col = fCursorColumn+n; col < fColumns; col++) {
-                               char c=fTerminal.getChar(line, col);
-                               Style style=fTerminal.getStyle(line, col);
-                               fTerminal.setChar(line, col-n,c, style);
-                       }
-                       int first=Math.max(fCursorColumn, fColumns-n);
-                       for (int col = first; col <fColumns; col++) {
-                               fTerminal.setChar(line, col,'\000', null);
-                       }
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#deleteLines(int)
-        */
-       public void deleteLines(int n) {
-               synchronized (fTerminal) {
-                       if(!isCusorInScrollingRegion())
-                               return;
-                       assert n>0;
-                       int line=toAbsoluteLine(fCursorLine);
-                       int nLines=Math.min(fTerminal.getHeight()-line, fScrollRegion.getBottomLine()-fCursorLine+1);
-                       fTerminal.scroll(line, nLines, -n);
-               }
-       }
-       private boolean isCusorInScrollingRegion() {
-               return fScrollRegion.contains(fCursorLine);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#getDefaultStyle()
-        */
-       public Style getDefaultStyle() {
-               synchronized (fTerminal) {
-                       return fDefaultStyle;
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#setDefaultStyle(org.eclipse.tm.terminal.model.Style)
-        */
-       public void setDefaultStyle(Style defaultStyle) {
-               synchronized (fTerminal) {
-                       fDefaultStyle = defaultStyle;
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#getStyle()
-        */
-       public Style getStyle() {
-               synchronized (fTerminal) {
-                       if(fStyle==null)
-                               return fDefaultStyle;
-                       return fStyle;
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#setStyle(org.eclipse.tm.terminal.model.Style)
-        */
-       public void setStyle(Style style) {
-               synchronized (fTerminal) {
-                       fStyle=style;
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#appendString(java.lang.String)
-        */
-       public void appendString(String buffer) {
-               synchronized (fTerminal) {
-                       char[] chars=buffer.toCharArray();
-                       if (fInsertMode)
-                               insertCharacters(chars.length);
-                       int line=toAbsoluteLine(fCursorLine);
-                       int i=0;
-                       while (i < chars.length) {
-                               if(fWrapPending) {
-                                       line = doLineWrap();
-                               }
-                               int n=Math.min(fColumns-fCursorColumn,chars.length-i);
-                               fTerminal.setChars(line, fCursorColumn, chars, i, n, fStyle);
-                               int col=fCursorColumn+n;
-                               i+=n;
-                               // wrap needed?
-                               if(col == fColumns) {
-                                       if (fVT100LineWrapping) {
-                                               // deferred line wrapping (eat_newline_glitch)
-                                               setCursorColumn(col - 1);
-                                               fWrapPending = true;
-                                       } else {
-                                               line = doLineWrap();
-                                       }
-                               } else {
-                                       setCursorColumn(col);
-                               }
-                       }
-               }
-       }
-
-       private int doLineWrap() {
-               int line;
-               line=toAbsoluteLine(fCursorLine);
-               fTerminal.setWrappedLine(line);
-               doNewline();
-               line=toAbsoluteLine(fCursorLine);
-               setCursorColumn(0);
-               return line;
-       }
-
-       /**
-        * MUST be called from a synchronized block!
-        */
-       private void doNewline() {
-               if (fCursorLine == fScrollRegion.getBottomLine())
-                       scrollUp(1);
-               else if (fCursorLine+1>=fLines) {
-                       int h=fTerminal.getHeight();
-                       fTerminal.addLine();
-                       if(h!=fTerminal.getHeight())
-                               setCursorLine(fCursorLine+1);
-               } else {
-                       setCursorLine(fCursorLine+1);
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#processNewline()
-        */
-       public void processNewline() {
-               synchronized (fTerminal) {
-                       doNewline();
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#getCursorLine()
-        */
-       public int getCursorLine() {
-               synchronized (fTerminal) {
-                       return fCursorLine;
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#getCursorColumn()
-        */
-       public int getCursorColumn() {
-               synchronized (fTerminal) {
-                       return fCursorColumn;
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#setCursor(int, int)
-        */
-       public void setCursor(int targetLine, int targetColumn) {
-               synchronized (fTerminal) {
-                       setCursorLine(targetLine);
-                       setCursorColumn(targetColumn);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#setCursorColumn(int)
-        */
-       public void setCursorColumn(int targetColumn) {
-               synchronized (fTerminal) {
-                       if(targetColumn<0)
-                               targetColumn=0;
-                       else if(targetColumn>=fColumns)
-                               targetColumn=fColumns-1;
-                       fCursorColumn=targetColumn;
-                       fWrapPending = false;
-                       // We make the assumption that nobody is changing the
-                       // terminal cursor except this class!
-                       // This assumption gives a huge performance improvement
-                       fTerminal.setCursorColumn(targetColumn);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#setCursorLine(int)
-        */
-       public void setCursorLine(int targetLine) {
-               synchronized (fTerminal) {
-                       if(targetLine<0)
-                               targetLine=0;
-                       else if(targetLine>=fLines)
-                               targetLine=fLines-1;
-                       fCursorLine=targetLine;
-                       // We make the assumption that nobody is changing the
-                       // terminal cursor except this class!
-                       // This assumption gives a huge performance improvement
-                       fTerminal.setCursorLine(toAbsoluteLine(targetLine));
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#getLines()
-        */
-       public int getLines() {
-               synchronized (fTerminal) {
-                       return fLines;
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.emulator.IVT100EmulatorBackend#getColumns()
-        */
-       public int getColumns() {
-               synchronized (fTerminal) {
-                       return fColumns;
-               }
-       }
-
-       public void setVT100LineWrapping(boolean enable) {
-               fVT100LineWrapping = enable;
-       }
-
-       public boolean isVT100LineWrapping() {
-               return fVT100LineWrapping;
-       }
-       
-       public void setInsertMode(boolean enable) {
-               fInsertMode = enable;
-       }
-
-       public void setScrollRegion(int top, int bottom) {
-               if (top < 0 || bottom < 0)
-                       fScrollRegion  = ScrollRegion.FULL_WINDOW;
-               else if (top < bottom)
-                       fScrollRegion = new ScrollRegion(top, bottom);
-       }
-
-       public void scrollUp(int n) {
-               assert n>0;
-               synchronized (fTerminal) {
-                       int line = toAbsoluteLine(fScrollRegion.getTopLine());
-                       int nLines = Math.min(fTerminal.getHeight()-line, fScrollRegion.getHeight());
-                       fTerminal.scroll(line, nLines, -n);
-               }
-       }
-
-       public void scrollDown(int n) {
-               assert n>0;
-               synchronized (fTerminal) {
-                       int line = toAbsoluteLine(fScrollRegion.getTopLine());
-                       int nLines = Math.min(fTerminal.getHeight()-line, fScrollRegion.getHeight());
-                       fTerminal.scroll(line, nLines, n);
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java
deleted file mode 100644 (file)
index b5d62b5..0000000
+++ /dev/null
@@ -1,1414 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [206892] State handling: Only allow connect when CLOSED
- * Martin Oberhuber (Wind River) - [206883] Serial Terminal leaks Jobs
- * Martin Oberhuber (Wind River) - [208145] Terminal prints garbage after quick disconnect/reconnect
- * Martin Oberhuber (Wind River) - [207785] NPE when trying to send char while no longer connected
- * Michael Scharf (Wind River) - [209665] Add ability to log byte streams from terminal
- * Ruslan Sychev (Xored Software) - [217675] NPE or SWTException when closing Terminal View while connection establishing
- * Michael Scharf (Wing River) - [196447] The optional terminal input line should be resizeable
- * Martin Oberhuber (Wind River) - [168197] Replace JFace MessagDialog by SWT MessageBox
- * Martin Oberhuber (Wind River) - [204796] Terminal should allow setting the encoding to use
- * Michael Scharf (Wind River) - [237398] Terminal get Invalid Thread Access when the title is set
- * Martin Oberhuber (Wind River) - [240745] Pressing Ctrl+F1 in the Terminal should bring up context help
- * Michael Scharf (Wind River) - [240098] The cursor should not blink when the terminal is disconnected
- * Anton Leherbauer (Wind River) - [335021] Middle mouse button copy/paste does not work with the terminal
- * Max Stepanov (Appcelerator) - [339768] Fix ANSI code for PgUp / PgDn
- * Pawel Piech (Wind River) - [333613] "Job found still running" after shutdown
- * Martin Oberhuber (Wind River) - [348700] Terminal unusable after disconnect
- * Simon Bernard (Sierra Wireless) - [351424] [terminal] Terminal does not support del and insert key
- * Martin Oberhuber (Wind River) - [265352][api] Allow setting fonts programmatically
- * Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
- * Anton Leherbauer (Wind River) - [433751] Add option to enable VT100 line wrapping mode
- * Anton Leherbauer (Wind River) - [434294] Incorrect handling of function keys with modifiers
- * Martin Oberhuber (Wind River) - [434294] Add Mac bindings with COMMAND
- * Anton Leherbauer (Wind River) - [434749] UnhandledEventLoopException when copying to clipboard while the selection is empty
- * Martin Oberhuber (Wind River) - [436612] Restore Eclipse 3.4 compatibility by using Reflection
- * Anton Leherbauer (Wind River) - [458398] Add support for normal/application cursor keys mode
- * Anton Leherbauer (Wind River) - [420928] Terminal widget leaks memory
- * Davy Landman (CWI) - [475267][api] Allow custom mouse listeners
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.emulator;
-
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-import java.lang.reflect.Field;
-import java.net.SocketException;
-import java.nio.charset.Charset;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.bindings.keys.SWTKeySupport;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tm.internal.terminal.control.ICommandInputField;
-import org.eclipse.tm.internal.terminal.control.ITerminalListener;
-import org.eclipse.tm.internal.terminal.control.ITerminalListener2;
-import org.eclipse.tm.internal.terminal.control.ITerminalMouseListener;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.impl.ITerminalControlForText;
-import org.eclipse.tm.internal.terminal.control.impl.TerminalMessages;
-import org.eclipse.tm.internal.terminal.control.impl.TerminalPlugin;
-import org.eclipse.tm.internal.terminal.preferences.ITerminalConstants;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.internal.terminal.textcanvas.PipedInputStream;
-import org.eclipse.tm.internal.terminal.textcanvas.PollingTextCanvasModel;
-import org.eclipse.tm.internal.terminal.textcanvas.TextCanvas;
-import org.eclipse.tm.internal.terminal.textcanvas.TextLineRenderer;
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataSnapshot;
-import org.eclipse.tm.terminal.model.TerminalTextDataFactory;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.keys.IBindingService;
-
-/**
- *
- * This class was originally written to use nested classes, which unfortunately makes
- * this source file larger and more complex than it needs to be.  In particular, the
- * methods in the nested classes directly access the fields of the enclosing class.
- * One day we should pull the nested classes out into their own source files (but still
- * in this package).
- *
- * @author Chris Thew <chris.thew@windriver.com>
- */
-public class VT100TerminalControl implements ITerminalControlForText, ITerminalControl, ITerminalViewControl
-{
-    protected final static String[] LINE_DELIMITERS = { "\n" }; //$NON-NLS-1$
-
-    /**
-     * This field holds a reference to a TerminalText object that performs all ANSI
-     * text processing on data received from the remote host and controls how text is
-     * displayed using the view's StyledText widget.
-     */
-    private final VT100Emulator                          fTerminalText;
-    private Display                   fDisplay;
-    private TextCanvas                fCtlText;
-    private Composite                 fWndParent;
-    private Clipboard                 fClipboard;
-    private KeyListener               fKeyHandler;
-    private final ITerminalListener   fTerminalListener;
-    private String                    fMsg = ""; //$NON-NLS-1$
-    private TerminalFocusListener     fFocusListener;
-    private ITerminalConnector           fConnector;
-    private final ITerminalConnector[]      fConnectors;
-       private final boolean fUseCommonPrefs;
-       private boolean connectOnEnterIfClosed  = true;
-
-    PipedInputStream fInputStream;
-       private static final String defaultEncoding = Charset.defaultCharset().name();
-       private String fEncoding = defaultEncoding;
-       private InputStreamReader fInputStreamReader;
-
-       private ICommandInputField fCommandInputField;
-
-       private volatile TerminalState fState;
-
-       private final ITerminalTextData fTerminalModel;
-
-       private final EditActionAccelerators editActionAccelerators = new EditActionAccelerators();
-
-       private boolean fApplicationCursorKeys;
-
-       /**
-        * Listens to changes in the preferences
-        */
-       private final IPropertyChangeListener fPreferenceListener=new IPropertyChangeListener() {
-               @Override
-        public void propertyChange(PropertyChangeEvent event) {
-                       if(event.getProperty().equals(ITerminalConstants.PREF_BUFFERLINES)
-                                       || event.getProperty().equals(ITerminalConstants.PREF_INVERT_COLORS)) {
-                               updatePreferences();
-                       }
-               }
-       };
-       private final IPropertyChangeListener fFontListener = new IPropertyChangeListener() {
-               @Override
-        public void propertyChange(PropertyChangeEvent event) {
-                       if (event.getProperty().equals(ITerminalConstants.FONT_DEFINITION)) {
-                               onTerminalFontChanged();
-                       }
-               }
-       };
-
-       /**
-        * Is protected by synchronize on this
-        */
-       volatile private Job fJob;
-
-       private PollingTextCanvasModel fPollingTextCanvasModel;
-
-       public VT100TerminalControl(ITerminalListener target, Composite wndParent, ITerminalConnector[] connectors) {
-               this(target, wndParent, connectors, false);
-       }
-
-       /**
-        * Instantiate a Terminal widget.
-        * @param target Callback for notifying the owner of Terminal state changes.
-        * @param wndParent The Window parent to embed the Terminal in.
-        * @param connectors Provided connectors.
-        * @param useCommonPrefs If <code>true</code>, the Terminal widget will pick up settings
-        *    from the <code>org.eclipse.tm.terminal.TerminalPreferencePage</code> Preference page.
-        *    Otherwise, clients need to maintain settings themselves.
-        * @since 3.2
-        */
-       public VT100TerminalControl(ITerminalListener target, Composite wndParent, ITerminalConnector[] connectors, boolean useCommonPrefs) {
-               fConnectors=connectors;
-               fUseCommonPrefs = useCommonPrefs;
-               fTerminalListener=target;
-               fTerminalModel=TerminalTextDataFactory.makeTerminalTextData();
-               fTerminalModel.setMaxHeight(1000);
-               fInputStream=new PipedInputStream(8*1024);
-               fTerminalText = new VT100Emulator(fTerminalModel, this, null);
-               try {
-                       // Use Default Encoding as start, until setEncoding() is called
-                       setEncoding(null);
-               } catch (UnsupportedEncodingException e) {
-                       // Should never happen
-                       e.printStackTrace();
-                       // Fall back to local Platform Default Encoding
-                       fEncoding = defaultEncoding;
-                       fInputStreamReader = new InputStreamReader(fInputStream);
-                       fTerminalText.setInputStreamReader(fInputStreamReader);
-               }
-
-               setupTerminal(wndParent);
-       }
-
-       @Override
-    public void setEncoding(String encoding) throws UnsupportedEncodingException {
-               if (encoding == null) {
-                       // TODO better use a standard remote-to-local encoding?
-                       encoding = "ISO-8859-1"; //$NON-NLS-1$
-                       // TODO or better use the local default encoding?
-                       // encoding = defaultEncoding;
-               }
-               fInputStreamReader = new InputStreamReader(fInputStream, encoding);
-               // remember encoding if above didn't throw an exception
-               fEncoding = encoding;
-               fTerminalText.setInputStreamReader(fInputStreamReader);
-       }
-
-       @Override
-    public String getEncoding() {
-               return fEncoding;
-       }
-
-       @Override
-    public ITerminalConnector[] getConnectors() {
-               return fConnectors;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#copy()
-        */
-       @Override
-    public void copy() {
-               copy(DND.CLIPBOARD);
-       }
-
-       private void copy(int clipboardType) {
-               String selection = getSelection();
-               if (selection.length() > 0) {
-                       Object[] data = new Object[] { selection };
-                       Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
-                       fClipboard.setContents(data, types, clipboardType);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#paste()
-        */
-       @Override
-    public void paste() {
-               paste(DND.CLIPBOARD);
-// TODO paste in another thread.... to avoid blocking
-//             new Thread() {
-//                     public void run() {
-//                             for (int i = 0; i < strText.length(); i++) {
-//                                     sendChar(strText.charAt(i), false);
-//                             }
-//
-//                     }
-//             }.start();
-       }
-
-       private void paste(int clipboardType) {
-               TextTransfer textTransfer = TextTransfer.getInstance();
-               String strText = (String) fClipboard.getContents(textTransfer, clipboardType);
-               pasteString(strText);
-       }
-
-       /**
-        * @param strText the text to paste
-        */
-       @Override
-    public boolean pasteString(String strText) {
-               if(!isConnected())
-                       return false;
-               if (strText == null)
-                       return false;
-               if (!fEncoding.equals(defaultEncoding)) {
-                       sendString(strText);
-               } else {
-                       // TODO I do not understand why pasteString would do this here...
-                       for (int i = 0; i < strText.length(); i++) {
-                               sendChar(strText.charAt(i), false);
-                       }
-               }
-               return true;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#selectAll()
-        */
-       @Override
-    public void selectAll() {
-               getCtlText().selectAll();
-               if (fTerminalListener instanceof ITerminalListener2) {
-                       ((ITerminalListener2)fTerminalListener).setTerminalSelectionChanged();
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#sendKey(char)
-        */
-       @Override
-    public void sendKey(char character) {
-               Event event;
-               KeyEvent keyEvent;
-
-               event = new Event();
-               event.widget = getCtlText();
-               event.character = character;
-               event.keyCode = 0;
-               event.stateMask = 0;
-               event.doit = true;
-               keyEvent = new KeyEvent(event);
-
-               fKeyHandler.keyPressed(keyEvent);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#clearTerminal()
-        */
-       @Override
-    public void clearTerminal() {
-               // The TerminalText object does all text manipulation.
-               getTerminalText().clearTerminal();
-               getCtlText().clearSelection();
-               if (fTerminalListener instanceof ITerminalListener2) {
-                       ((ITerminalListener2)fTerminalListener).setTerminalSelectionChanged();
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#getClipboard()
-        */
-       @Override
-    public Clipboard getClipboard() {
-               return fClipboard;
-       }
-
-       /**
-        * @return non null selection
-        */
-       @Override
-    public String getSelection() {
-               String txt= fCtlText.getSelectionText();
-               if(txt==null)
-                       txt=""; //$NON-NLS-1$
-               return txt;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#setFocus()
-        */
-       @Override
-    public void setFocus() {
-               getCtlText().setFocus();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#isEmpty()
-        */
-       @Override
-    public boolean isEmpty() {
-               return getCtlText().isEmpty();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#isDisposed()
-        */
-       @Override
-    public boolean isDisposed() {
-               return getCtlText().isDisposed();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#isConnected()
-        */
-       @Override
-    public boolean isConnected() {
-               return fState==TerminalState.CONNECTED;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#disposeTerminal()
-        */
-       @Override
-    public void disposeTerminal() {
-               Logger.log("entered."); //$NON-NLS-1$
-               if(fUseCommonPrefs) {
-                       TerminalPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(fPreferenceListener);
-                       JFaceResources.getFontRegistry().removeListener(fFontListener);
-               }
-               disconnectTerminal();
-               fClipboard.dispose();
-               getTerminalText().dispose();
-       }
-
-       @Override
-    public void connectTerminal() {
-               Logger.log("entered."); //$NON-NLS-1$
-               if(getTerminalConnector()==null)
-                       return;
-               fTerminalText.resetState();
-               fApplicationCursorKeys = false;
-               if(fConnector.getInitializationErrorMessage()!=null) {
-                       showErrorMessage(NLS.bind(
-                                       TerminalMessages.CannotConnectTo,
-                                       fConnector.getName(),
-                                       fConnector.getInitializationErrorMessage()));
-                       // we cannot connect because the connector was not initialized
-                       return;
-               }
-               // clean the error message
-               setMsg(""); //$NON-NLS-1$
-               getTerminalConnector().connect(this);
-               waitForConnect();
-       }
-
-       @Override
-    public ITerminalConnector getTerminalConnector() {
-               return fConnector;
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#disconnectTerminal()
-        */
-       @Override
-    public void disconnectTerminal() {
-               Logger.log("entered."); //$NON-NLS-1$
-
-               //Disconnect the remote side first
-               if (getState()!=TerminalState.CLOSED) {
-                       if(getTerminalConnector()!=null) {
-                               getTerminalConnector().disconnect();
-                       }
-               }
-
-        //Ensure that a new Job can be started; then clean up old Job.
-        Job job;
-        synchronized(this) {
-            job = fJob;
-            fJob = null;
-        }
-        if (job!=null) {
-            job.cancel();
-            // Join job to avoid leaving job running after workbench shutdown (333613).
-            // Interrupt to be fast enough; cannot close fInputStream since it is re-used (bug 348700).
-            Thread t = job.getThread();
-            if(t!=null) t.interrupt();
-            try {
-                job.join();
-            } catch (InterruptedException e) {}
-        }
-               fPollingTextCanvasModel.stopPolling();
-       }
-
-       private void waitForConnect() {
-               Logger.log("entered."); //$NON-NLS-1$
-
-               // TODO Eliminate the nested dispatch loop
-               do {
-                       if (!fDisplay.readAndDispatch())
-                               fDisplay.sleep();
-               } while (getState()==TerminalState.CONNECTING);
-
-               if (getCtlText().isDisposed()) {
-                       disconnectTerminal();
-                       return;
-               }
-               if (getMsg().length() > 0) {
-                       showErrorMessage(getMsg());
-                       disconnectTerminal();
-                       return;
-               }
-               if (getCtlText().isFocusControl()) {
-                       if (getState() == TerminalState.CONNECTED)
-                               fFocusListener.captureKeyEvents(true);
-               }
-               fPollingTextCanvasModel.startPolling();
-               startReaderJob();
-       }
-
-       private synchronized void startReaderJob() {
-               if(fJob==null) {
-                       fJob=new Job("Terminal data reader") { //$NON-NLS-1$
-                               @Override
-                protected IStatus run(IProgressMonitor monitor) {
-                                       IStatus status=Status.OK_STATUS;
-                                       try {
-                                               while(true) {
-                                                       while(fInputStream.available()==0 && !monitor.isCanceled()) {
-                                                               try {
-                                                                       fInputStream.waitForAvailable(500);
-                                                               } catch (InterruptedException e) {
-                                                                       Thread.currentThread().interrupt();
-                                                               }
-                                                       }
-                                                       if(monitor.isCanceled()) {
-                                                               //Do not disconnect terminal here because another reader job may already be running
-                                                               status=Status.CANCEL_STATUS;
-                                                               break;
-                                                       }
-                                                       try {
-                                                               // TODO: should block when no text is available!
-                                                               fTerminalText.processText();
-                                                       } catch (Exception e) {
-                                                               disconnectTerminal();
-                                                               status=new Status(IStatus.ERROR,TerminalPlugin.PLUGIN_ID,e.getLocalizedMessage(),e);
-                                                               break;
-                                                       }
-                                               }
-                                       } finally {
-                                               // clean the job: start a new one when the connection gets restarted
-                                               // Bug 208145: make sure we do not clean an other job that's already started (since it would become a Zombie)
-                                               synchronized (VT100TerminalControl.this) {
-                                                       if (fJob==this) {
-                                                               fJob=null;
-                                                       }
-                                               }
-                                       }
-                                       return status;
-                               }
-
-                       };
-                       fJob.setSystem(true);
-                       fJob.schedule();
-               }
-       }
-
-       private void showErrorMessage(String message) {
-               String strTitle = TerminalMessages.TerminalError;
-               // [168197] Replace JFace MessagDialog by SWT MessageBox
-               //MessageDialog.openError( getShell(), strTitle, message);
-               MessageBox mb = new MessageBox(getShell(), SWT.ICON_ERROR | SWT.OK);
-               mb.setText(strTitle);
-               mb.setMessage(message);
-               mb.open();
-       }
-
-       protected void sendString(String string) {
-               Logger.log(string);
-               try {
-                       // Send the string after converting it to an array of bytes using the
-                       // platform's default character encoding.
-                       //
-                       // TODO: Find a way to force this to use the ISO Latin-1 encoding.
-                       // TODO: handle Encoding Errors in a better way
-
-                       getOutputStream().write(string.getBytes(fEncoding));
-                       getOutputStream().flush();
-               } catch (SocketException socketException) {
-                       displayTextInTerminal(socketException.getMessage());
-
-                       String strMsg = TerminalMessages.SocketError
-                                       + "!\n" + socketException.getMessage(); //$NON-NLS-1$
-                       showErrorMessage(strMsg);
-
-                       Logger.logException(socketException);
-
-                       disconnectTerminal();
-               } catch (IOException ioException) {
-                       showErrorMessage(TerminalMessages.IOError + "!\n" + ioException.getMessage());//$NON-NLS-1$
-
-                       Logger.logException(ioException);
-
-                       disconnectTerminal();
-               }
-       }
-
-       @Override
-    public Shell getShell() {
-               return getCtlText().getShell();
-       }
-
-       protected void sendChar(char chKey, boolean altKeyPressed) {
-               try {
-                       int byteToSend = chKey;
-                       OutputStream os = getOutputStream();
-                       if (os==null) {
-                               // Bug 207785: NPE when trying to send char while no longer connected
-                               Logger.log("NOT sending '" + byteToSend + "' because no longer connected"); //$NON-NLS-1$ //$NON-NLS-2$
-                       } else {
-                               if (altKeyPressed) {
-                                       // When the ALT key is pressed at the same time that a character is
-                                       // typed, translate it into an ESCAPE followed by the character.  The
-                                       // alternative in this case is to set the high bit of the character
-                                       // being transmitted, but that will cause input such as ALT-f to be
-                                       // seen as the ISO Latin-1 character '�', which can be confusing to
-                                       // European users running Emacs, for whom Alt-f should move forward a
-                                       // word instead of inserting the '�' character.
-                                       //
-                                       // TODO: Make the ESCAPE-vs-highbit behavior user configurable.
-
-                                       byte[] bytesToSend = String.valueOf(chKey).getBytes(fEncoding);
-                                       StringBuilder b = new StringBuilder("sending ESC"); //$NON-NLS-1$
-                                       for (int i = 0; i < bytesToSend.length; i++) {
-                                               if (i != 0) b.append(" +"); //$NON-NLS-1$
-                                               b.append(" '" + bytesToSend[i] + "'"); //$NON-NLS-1$ //$NON-NLS-2$
-                                       }
-                                       Logger.log(b.toString());
-                                       os.write('\u001b');
-                                       os.write(bytesToSend);
-                               } else {
-                                       byte[] bytesToSend = String.valueOf(chKey).getBytes(fEncoding);
-                                       StringBuilder b = new StringBuilder("sending"); //$NON-NLS-1$
-                                       for (int i = 0; i < bytesToSend.length; i++) {
-                                               if (i != 0) b.append(" +"); //$NON-NLS-1$
-                                               b.append(" '" + bytesToSend[i] + "'"); //$NON-NLS-1$ //$NON-NLS-2$
-                                       }
-                                       Logger.log(b.toString());
-                                       os.write(bytesToSend);
-                               }
-                               os.flush();
-                       }
-               } catch (SocketException socketException) {
-                       Logger.logException(socketException);
-
-                       displayTextInTerminal(socketException.getMessage());
-
-                       String strMsg = TerminalMessages.SocketError
-                                       + "!\n" + socketException.getMessage(); //$NON-NLS-1$
-
-                       showErrorMessage(strMsg);
-                       Logger.logException(socketException);
-
-                       disconnectTerminal();
-               } catch (IOException ioException) {
-                       Logger.logException(ioException);
-
-                       displayTextInTerminal(ioException.getMessage());
-
-                       String strMsg = TerminalMessages.IOError + "!\n" + ioException.getMessage(); //$NON-NLS-1$
-
-                       showErrorMessage(strMsg);
-                       Logger.logException(ioException);
-
-                       disconnectTerminal();
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#setupTerminal(org.eclipse.swt.widgets.Composite)
-        */
-       @Override
-    public void setupTerminal(Composite parent) {
-               Assert.isNotNull(parent);
-               boolean wasDisposed = true;
-               TerminalState oldState = fState;
-               fState = TerminalState.CLOSED;
-               if (fClipboard != null && !fClipboard.isDisposed()) {
-                       // terminal was not disposed (DnD)
-                       wasDisposed = false;
-                       fClipboard.dispose();
-                       fPollingTextCanvasModel.stopPolling();
-               }
-               if (fWndParent != null && !fWndParent.isDisposed()) {
-                       // terminal widget gets a new parent (DnD)
-                       fWndParent.dispose();
-               }
-               setupControls(parent);
-               setCommandInputField(fCommandInputField);
-               setupListeners();
-               if (fUseCommonPrefs && wasDisposed) {
-                       updatePreferences();
-                       onTerminalFontChanged();
-                       TerminalPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(fPreferenceListener);
-                       JFaceResources.getFontRegistry().addListener(fFontListener);
-               }
-               setupHelp(fWndParent, TerminalPlugin.HELP_VIEW);
-
-               if (!wasDisposed) {
-                       fState = oldState;
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.ITerminalViewControl#updatePreferences()
-        */
-       private void updatePreferences() {
-               int bufferLineLimit = Platform.getPreferencesService().getInt(TerminalPlugin.PLUGIN_ID, ITerminalConstants.PREF_BUFFERLINES, 0, null);
-               boolean invert = Platform.getPreferencesService().getBoolean(TerminalPlugin.PLUGIN_ID, ITerminalConstants.PREF_INVERT_COLORS, false, null);
-               setBufferLineLimit(bufferLineLimit);
-               setInvertedColors(invert);
-       }
-
-       private void onTerminalFontChanged() {
-               // set the font for all
-               setFont(ITerminalConstants.FONT_DEFINITION);
-       }
-
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.ITerminalViewControl#setFont(java.lang.String)
-        */
-       @Override
-    public void setFont(String fontName) {
-               Font font=JFaceResources.getFont(fontName);
-               getCtlText().setFont(font);
-               if(fCommandInputField!=null) {
-                       fCommandInputField.setFont(font);
-               }
-               // Tell the TerminalControl singleton that the font has changed.
-               fCtlText.updateFont(fontName);
-               getTerminalText().fontChanged();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.ITerminalViewControl#setFont(org.eclipse.swt.graphics.Font)
-        */
-       @Override
-    @Deprecated
-       public void setFont(Font font) {
-               getCtlText().setFont(font);
-               if(fCommandInputField!=null) {
-                       fCommandInputField.setFont(font);
-               }
-
-               // Tell the TerminalControl singleton that the font has changed.
-               fCtlText.onFontChange();
-               getTerminalText().fontChanged();
-       }
-       @Override
-    public Font getFont() {
-               return getCtlText().getFont();
-       }
-       @Override
-    public Control getControl() {
-               return fCtlText;
-       }
-       @Override
-    public Control getRootControl() {
-               return fWndParent;
-       }
-       protected void setupControls(Composite parent) {
-               fWndParent=new Composite(parent,SWT.NONE);
-               GridLayout layout=new GridLayout();
-               layout.marginWidth=0; layout.marginHeight=0; layout.verticalSpacing=0;
-               fWndParent.setLayout(layout);
-
-               ITerminalTextDataSnapshot snapshot=fTerminalModel.makeSnapshot();
-               // TODO how to get the initial size correctly!
-               snapshot.updateSnapshot(false);
-               fPollingTextCanvasModel=new PollingTextCanvasModel(snapshot);
-               fCtlText=new TextCanvas(fWndParent,fPollingTextCanvasModel,SWT.NONE,new TextLineRenderer(fCtlText,fPollingTextCanvasModel));
-
-               fCtlText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               fCtlText.addResizeHandler(new TextCanvas.ResizeListener() {
-                       @Override
-            public void sizeChanged(int lines, int columns) {
-                               fTerminalText.setDimensions(lines, columns);
-                       }
-               });
-               fCtlText.addMouseListener(new MouseAdapter() {
-                       @Override
-            public void mouseUp(MouseEvent e) {
-                               // update selection used by middle mouse button paste
-                               if (e.button == 1 && getSelection().length() > 0) {
-                                       copy(DND.SELECTION_CLIPBOARD);
-                               }
-                       }
-               });
-
-               fDisplay = getCtlText().getDisplay();
-               fClipboard = new Clipboard(fDisplay);
-       }
-
-       protected void setupListeners() {
-               fKeyHandler = new TerminalKeyHandler();
-               fFocusListener = new TerminalFocusListener();
-
-               getCtlText().addKeyListener(fKeyHandler);
-               getCtlText().addFocusListener(fFocusListener);
-
-       }
-
-       /**
-        * Setup all the help contexts for the controls.
-        */
-       protected void setupHelp(Composite parent, String id) {
-               Control[] children = parent.getChildren();
-
-               for (int nIndex = 0; nIndex < children.length; nIndex++) {
-                       if (children[nIndex] instanceof Composite) {
-                               setupHelp((Composite) children[nIndex], id);
-                       }
-               }
-
-               PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, id);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#displayTextInTerminal(java.lang.String)
-        */
-       @Override
-    public void displayTextInTerminal(String text) {
-               writeToTerminal("\r\n"+text+"\r\n"); //$NON-NLS-1$ //$NON-NLS-2$
-       }
-       private void writeToTerminal(String text) {
-               try {
-                       getRemoteToTerminalOutputStream().write(text.getBytes(fEncoding));
-               } catch (UnsupportedEncodingException e) {
-                       // should never happen!
-                       e.printStackTrace();
-               } catch (IOException e) {
-                       // should never happen!
-                       e.printStackTrace();
-               }
-       }
-
-       @Override
-    public OutputStream getRemoteToTerminalOutputStream() {
-               if(Logger.isLogEnabled()) {
-                       return new LoggingOutputStream(fInputStream.getOutputStream());
-               } else {
-                       return fInputStream.getOutputStream();
-               }
-       }
-       protected boolean isLogCharEnabled() {
-               return TerminalPlugin.isOptionEnabled(Logger.TRACE_DEBUG_LOG_CHAR);
-       }
-
-       @Override
-    public OutputStream getOutputStream() {
-               if(getTerminalConnector()!=null)
-                       return getTerminalConnector().getTerminalToRemoteStream();
-               return null;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#setMsg(java.lang.String)
-        */
-       @Override
-    public void setMsg(String msg) {
-               fMsg = msg;
-       }
-
-       public String getMsg() {
-               return fMsg;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#getCtlText()
-        */
-       protected TextCanvas getCtlText() {
-               return fCtlText;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#getTerminalText()
-        */
-       public VT100Emulator getTerminalText() {
-               return fTerminalText;
-       }
-       protected class TerminalFocusListener implements FocusListener {
-               private IContextActivation terminalContextActivation = null;
-               private IContextActivation editContextActivation = null;
-
-               protected TerminalFocusListener() {
-                       super();
-               }
-
-               @Override
-        @SuppressWarnings("cast")
-               public void focusGained(FocusEvent event) {
-                       // Disable all keyboard accelerators (e.g., Control-B) so the Terminal view
-                       // can see every keystroke.  Without this, Emacs, vi, and Bash are unusable
-                       // in the Terminal view.
-                       if (getState() == TerminalState.CONNECTED)
-                               captureKeyEvents(true);
-
-                       IContextService contextService = (IContextService) PlatformUI.getWorkbench().getAdapter(IContextService.class);
-                       editContextActivation = contextService.activateContext("org.eclipse.tm.terminal.EditContext"); //$NON-NLS-1$
-               }
-
-               @Override
-        @SuppressWarnings("cast")
-               public void focusLost(FocusEvent event) {
-                       // Enable all keybindings.
-                       captureKeyEvents(false);
-
-                       // Restore the command context to its previous value.
-
-                       IContextService contextService = (IContextService) PlatformUI.getWorkbench().getAdapter(IContextService.class);
-                       contextService.deactivateContext(editContextActivation);
-               }
-
-               @SuppressWarnings("cast")
-               protected void captureKeyEvents(boolean capture) {
-                       IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench().getAdapter(IBindingService.class);
-                       IContextService contextService = (IContextService) PlatformUI.getWorkbench().getAdapter(IContextService.class);
-
-                       boolean enableKeyFilter = !capture;
-                       if (bindingService.isKeyFilterEnabled() != enableKeyFilter)
-                               bindingService.setKeyFilterEnabled(enableKeyFilter);
-
-                       if (capture && terminalContextActivation == null) {
-                               // The above code fails to cause Eclipse to disable menu-activation
-                               // accelerators (e.g., Alt-F for the File menu), so we set the command
-                               // context to be the Terminal view's command context.  This enables us to
-                               // override menu-activation accelerators with no-op commands in our
-                               // plugin.xml file, which enables the Terminal view to see absolutely _all_
-                               // key-presses.
-                               terminalContextActivation = contextService.activateContext("org.eclipse.tm.terminal.TerminalContext"); //$NON-NLS-1$
-
-                       } else if (!capture && terminalContextActivation != null) {
-                               contextService.deactivateContext(terminalContextActivation);
-                               terminalContextActivation = null;
-                       }
-               }
-       }
-
-       protected class TerminalKeyHandler extends KeyAdapter {
-               @Override
-        public void keyPressed(KeyEvent event) {
-                       //TODO next 2 lines are probably obsolete now
-                       if (getState()==TerminalState.CONNECTING)
-                               return;
-
-                       //TODO we should no longer handle copy & paste specially.
-                       //Instead, we should have Ctrl+Shift always go to local since there is no escape sequence for this.
-                       //On Mac, Command+Anything already goes always to local.
-                       //Note that this decision means that Command will NOT be Meta in Emacs on a Remote.
-                       int accelerator = SWTKeySupport.convertEventToUnmodifiedAccelerator(event);
-                       if (editActionAccelerators.isCopyAction(accelerator)) {
-                               copy();
-                               return;
-                       }
-                       if (editActionAccelerators.isPasteAction(accelerator)) {
-                               paste();
-                               return;
-                       }
-
-                       // We set the event.doit to false to prevent any further processing of this
-                       // key event.  The only reason this is here is because I was seeing the F10
-                       // key both send an escape sequence (due to this method) and switch focus
-                       // to the Workbench File menu (forcing the user to click in the Terminal
-                       // view again to continue entering text).  This fixes that.
-
-                       event.doit = false;
-
-                       char character = event.character;
-                       int modifierKeys = event.stateMask & SWT.MODIFIER_MASK;
-                       boolean ctrlKeyPressed = (event.stateMask & SWT.CTRL) != 0;
-                       boolean onlyCtrlKeyPressed = modifierKeys == SWT.CTRL;
-                       boolean macCmdKeyPressed = (event.stateMask & SWT.COMMAND) != 0;
-
-                       // To fix SPR 110341, we consider the Alt key to be pressed only when the
-                       // Control key is _not_ also pressed.  This works around a bug in SWT where,
-                       // on European keyboards, the AltGr key being pressed appears to us as Control
-                       // + Alt being pressed simultaneously.
-                       boolean altKeyPressed = (event.stateMask & SWT.ALT) != 0 && !ctrlKeyPressed;
-
-                       //if (!isConnected()) {
-                       if (fState==TerminalState.CLOSED) {
-                               // Pressing ENTER while not connected causes us to connect.
-                               if (character == '\r' && isConnectOnEnterIfClosed()) {
-                                       connectTerminal();
-                                       return;
-                               }
-
-                               // Ignore all other keyboard input when not connected.
-                               // Allow other key handlers (such as Ctrl+F1) do their work
-                               event.doit = true;
-                               return;
-                       }
-
-                       // Manage the Del key
-                       if (event.keyCode == 0x000007f) {
-                               sendString("\u001b[3~"); //$NON-NLS-1$
-                               return;
-                       }
-
-                       // TODO Linux tty is usually expecting a DEL (^?) character
-                       // but this causes issues with some telnet servers and
-                       // serial connections. Workaround: stty erase ^H
-                       //if (event.keyCode == SWT.BS) {
-                       //      sendChar(SWT.DEL, altKeyPressed);
-                       //      return;
-                       //}
-
-                       // If the event character is NUL ('\u0000'), then a special key was pressed
-                       // (e.g., PageUp, PageDown, an arrow key, a function key, Shift, Alt,
-                       // Control, etc.).  The one exception is when the user presses Control-@,
-                       // which sends a NUL character, in which case we must send the NUL to the
-                       // remote endpoint.  This is necessary so that Emacs will work correctly,
-                       // because Control-@ (i.e., NUL) invokes Emacs' set-mark-command when Emacs
-                       // is running on a terminal.  When the user presses Control-@, the keyCode
-                       // is 50.
-                       // On a Mac, the Cmd key is always used for local commands.
-
-                       if (macCmdKeyPressed || (character == '\u0000' && event.keyCode != 50)) {
-                               // A special key was pressed.  Figure out which one it was and send the
-                               // appropriate ANSI escape sequence.
-                               //
-                               // IMPORTANT: Control will not enter this method for these special keys
-                               // unless certain <keybinding> tags are present in the plugin.xml file
-                               // for the Terminal view.  Do not delete those tags.
-
-                               String escSeq = null;
-                               boolean anyModifierPressed = modifierKeys != 0;
-                               boolean onlyMacCmdKeyPressed = modifierKeys == SWT.COMMAND;
-
-                               switch (event.keyCode) {
-                               case 0x1000001: // Up arrow.
-                                       if (!anyModifierPressed)
-                                               escSeq = fApplicationCursorKeys ? "\u001bOA" : "\u001b[A"; //$NON-NLS-1$ //$NON-NLS-2$
-                                       break;
-
-                               case 0x1000002: // Down arrow.
-                                       if (!anyModifierPressed)
-                                               escSeq = fApplicationCursorKeys ? "\u001bOB" : "\u001b[B"; //$NON-NLS-1$ //$NON-NLS-2$
-                                       break;
-
-                               case 0x1000003: // Left arrow.
-                                       if (onlyCtrlKeyPressed) {
-                                               escSeq = "\u001b[1;5D"; //$NON-NLS-1$
-                                       } else if (!anyModifierPressed) {
-                                               escSeq = fApplicationCursorKeys ? "\u001bOD" : "\u001b[D"; //$NON-NLS-1$ //$NON-NLS-2$
-                                       } else if (onlyMacCmdKeyPressed) {
-                                               // Cmd-Left is "Home" on the Mac
-                                               escSeq = fApplicationCursorKeys ? "\u001bOH" : "\u001b[H"; //$NON-NLS-1$ //$NON-NLS-2$
-                                       }
-                                       break;
-
-                               case 0x1000004: // Right arrow.
-                                       if (onlyCtrlKeyPressed) {
-                                               escSeq = "\u001b[1;5C"; //$NON-NLS-1$
-                                       } else if (!anyModifierPressed) {
-                                               escSeq = fApplicationCursorKeys ? "\u001bOC" : "\u001b[C"; //$NON-NLS-1$ //$NON-NLS-2$
-                                       } else if (onlyMacCmdKeyPressed) {
-                                               // Cmd-Right is "End" on the Mac
-                                               escSeq = fApplicationCursorKeys ? "\u001bOF" : "\u001b[F"; //$NON-NLS-1$ //$NON-NLS-2$
-                                       }
-                                       break;
-
-                               case 0x1000005: // PgUp key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001b[5~"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x1000006: // PgDn key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001b[6~"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x1000007: // Home key.
-                                       if (!anyModifierPressed)
-                                               escSeq = fApplicationCursorKeys ? "\u001bOH" : "\u001b[H"; //$NON-NLS-1$ //$NON-NLS-2$
-                                       break;
-
-                               case 0x1000008: // End key.
-                                       if (!anyModifierPressed)
-                                               escSeq = fApplicationCursorKeys ? "\u001bOF" : "\u001b[F"; //$NON-NLS-1$ //$NON-NLS-2$
-                                       break;
-
-                               case 0x1000009: // Insert.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001b[2~"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x100000a: // F1 key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001bOP"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x100000b: // F2 key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001bOQ"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x100000c: // F3 key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001bOR"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x100000d: // F4 key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001bOS"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x100000e: // F5 key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001b[15~"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x100000f: // F6 key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001b[17~"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x1000010: // F7 key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001b[18~"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x1000011: // F8 key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001b[19~"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x1000012: // F9 key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001b[20~"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x1000013: // F10 key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001b[21~"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x1000014: // F11 key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001b[23~"; //$NON-NLS-1$
-                                       break;
-
-                               case 0x1000015: // F12 key.
-                                       if (!anyModifierPressed)
-                                               escSeq = "\u001b[24~"; //$NON-NLS-1$
-                                       break;
-
-                               default:
-                                       // Ignore other special keys.  Control flows through this case when
-                                       // the user presses SHIFT, CONTROL, ALT, and any other key not
-                                       // handled by the above cases.
-                                       break;
-                               }
-
-                               if (escSeq == null) {
-                                       // Any unmapped key should be handled locally by Eclipse
-                                       event.doit = true;
-                                       processKeyBinding(event, accelerator);
-                               } else
-                                       sendString(escSeq);
-
-                               // It's ok to return here, because we never locally echo special keys.
-
-                               return;
-                       }
-
-                       Logger.log("stateMask = " + event.stateMask); //$NON-NLS-1$
-
-                       if (onlyCtrlKeyPressed) {
-                               switch (character) {
-                               case ' ':
-                                       // Send a NUL character -- many terminal emulators send NUL when
-                                       // Control-Space is pressed.  This is used to set the mark in Emacs.
-                                       character = '\u0000';
-                                       break;
-                               case '/':
-                                       // Ctrl+/ is undo in emacs
-                                       character = '\u001f';
-                                       break;
-                               }
-                       }
-
-                       //TODO: At this point, Ctrl+M sends the same as Ctrl+Shift+M .
-                       //This is undesired. Fixing this here might make the special Ctrl+Shift+C
-                       //handling unnecessary further up.
-                       sendChar(character, altKeyPressed);
-
-                       // Now decide if we should locally echo the character we just sent.  We do
-                       // _not_ locally echo the character if any of these conditions are true:
-                       //
-                       // o This is a serial connection.
-                       //
-                       // o This is a TCP connection (i.e., m_telnetConnection is not null) and
-                       //   the remote endpoint is not a TELNET server.
-                       //
-                       // o The ALT (or META) key is pressed.
-                       //
-                       // o The character is any of the first 32 ISO Latin-1 characters except
-                       //   Control-I or Control-M.
-                       //
-                       // o The character is the DELETE character.
-
-                       if (getTerminalConnector() == null
-                                       || getTerminalConnector().isLocalEcho() == false || altKeyPressed
-                                       || (character >= '\u0001' && character < '\t')
-                                       || (character > '\t' && character < '\r')
-                                       || (character > '\r' && character <= '\u001f')
-                                       || character == '\u007f') {
-                               // No local echoing.
-                               return;
-                       }
-
-                       // Locally echo the character.
-
-                       StringBuffer charBuffer = new StringBuffer();
-                       charBuffer.append(character);
-
-                       // If the character is a carriage return, we locally echo it as a CR + LF
-                       // combination.
-
-                       if (character == '\r')
-                               charBuffer.append('\n');
-
-                       writeToTerminal(charBuffer.toString());
-               }
-
-               /*
-                * Process given event as Eclipse key binding.
-                */
-               @SuppressWarnings("cast")
-               private void processKeyBinding(KeyEvent event, int accelerator) {
-                       IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench().getAdapter(IBindingService.class);
-                       KeyStroke keyStroke = SWTKeySupport.convertAcceleratorToKeyStroke(accelerator);
-                       Binding binding = bindingService.getPerfectMatch(KeySequence.getInstance(keyStroke));
-                       if (binding != null) {
-                               ParameterizedCommand cmd = binding.getParameterizedCommand();
-                               if (cmd != null) {
-                                       IHandlerService handlerService = (IHandlerService) PlatformUI.getWorkbench().getAdapter(IHandlerService.class);
-                                       Event cmdEvent = new Event();
-                                       cmdEvent.type = SWT.KeyDown;
-                                       cmdEvent.display = event.display;
-                                       cmdEvent.widget = event.widget;
-                                       cmdEvent.character = event.character;
-                                       cmdEvent.keyCode = event.keyCode;
-                                       ////Bug - KeyEvent.keyLocation was introduced in Eclipse 3.6
-                                       ////Use reflection for now to remain backward compatible down to Eclipse 3.4
-                                       //cmdEvent.keyLocation = event.keyLocation;
-                                       try {
-                                               Field f1 = event.getClass().getField("keyLocation"); //$NON-NLS-1$
-                                               Field f2 = cmdEvent.getClass().getField("keyLocation"); //$NON-NLS-1$
-                                               f2.set(cmdEvent, f1.get(event));
-                                       } catch(NoSuchFieldException nsfe) {
-                                               /* ignore, this is Eclipse 3.5 or earlier */
-                                       } catch(Throwable t) {
-                                               t.printStackTrace();
-                                       }
-                                       cmdEvent.stateMask = event.stateMask;
-                                       event.doit = false;
-                                       try {
-                                               handlerService.executeCommand(cmd, cmdEvent);
-                                       } catch (ExecutionException e) {
-                                               TerminalPlugin.getDefault().getLog().log(
-                                                               new Status(IStatus.ERROR,TerminalPlugin.PLUGIN_ID,e.getLocalizedMessage(),e));
-                                       } catch (Exception e) {
-                                               // ignore other exceptions from cmd execution
-                                       }
-                               }
-                       }
-               }
-
-       }
-
-       @Override
-    public void setTerminalTitle(String title) {
-               fTerminalListener.setTerminalTitle(title);
-       }
-
-
-       @Override
-    public TerminalState getState() {
-               return fState;
-       }
-
-
-       @Override
-    public void setState(TerminalState state) {
-               fState=state;
-               fTerminalListener.setState(state);
-               // enable the (blinking) cursor if the terminal is connected
-               runAsyncInDisplayThread(new Runnable() {
-                       @Override
-            public void run() {
-                               if(fCtlText!=null && !fCtlText.isDisposed()) {
-                                       if (isConnected()) {
-                                               fCtlText.setCursorEnabled(true);
-                                       } else {
-                                               fCtlText.setCursorEnabled(false);
-                                               // Stop capturing all key events
-                                               fFocusListener.captureKeyEvents(false);
-                                       }
-                               }
-                       }
-               });
-       }
-       /**
-        * @param runnable run in display thread
-        */
-       private void runAsyncInDisplayThread(Runnable runnable) {
-               if(Display.findDisplay(Thread.currentThread())!=null)
-                       runnable.run();
-               else if(PlatformUI.isWorkbenchRunning() && PlatformUI.getWorkbench().getDisplay() != null && !PlatformUI.getWorkbench().getDisplay().isDisposed())
-                       PlatformUI.getWorkbench().getDisplay().asyncExec(runnable);
-               // else should not happen and we ignore it...
-       }
-
-       @Override
-    public String getSettingsSummary() {
-               if(getTerminalConnector()!=null)
-                       return getTerminalConnector().getSettingsSummary();
-               return ""; //$NON-NLS-1$
-       }
-
-       @Override
-    public void setConnector(ITerminalConnector connector) {
-               fConnector=connector;
-
-       }
-       @Override
-    public ICommandInputField getCommandInputField() {
-               return fCommandInputField;
-       }
-
-       @Override
-    public void setCommandInputField(ICommandInputField inputField) {
-               if(fCommandInputField!=null)
-                       fCommandInputField.dispose();
-               fCommandInputField=inputField;
-               if(fCommandInputField!=null)
-                       fCommandInputField.createControl(fWndParent, this);
-               if(fWndParent.isVisible())
-                       fWndParent.layout(true);
-       }
-
-       @Override
-    public int getBufferLineLimit() {
-               return fTerminalModel.getMaxHeight();
-       }
-
-       @Override
-    public void setBufferLineLimit(int bufferLineLimit) {
-               if(bufferLineLimit<=0)
-                       return;
-               synchronized (fTerminalModel) {
-                       if(fTerminalModel.getHeight()>bufferLineLimit)
-                               fTerminalModel.setDimensions(bufferLineLimit, fTerminalModel.getWidth());
-                       fTerminalModel.setMaxHeight(bufferLineLimit);
-               }
-       }
-
-       @Override
-    public boolean isScrollLock() {
-               return fCtlText.isScrollLock();
-       }
-
-       @Override
-    public void setScrollLock(boolean on) {
-               fCtlText.setScrollLock(on);
-       }
-
-       @Override
-    public void setInvertedColors(boolean invert) {
-               fCtlText.setInvertedColors(invert);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#setConnectOnEnterIfClosed(boolean)
-        */
-       @Override
-    public final void setConnectOnEnterIfClosed(boolean on) {
-               connectOnEnterIfClosed = on;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#isConnectOnEnterIfClosed()
-        */
-       @Override
-    public final boolean isConnectOnEnterIfClosed() {
-               return connectOnEnterIfClosed;
-       }
-
-       @Override
-    public void setVT100LineWrapping(boolean enable) {
-               getTerminalText().setVT100LineWrapping(enable);
-       }
-
-       @Override
-    public boolean isVT100LineWrapping() {
-               return getTerminalText().isVT100LineWrapping();
-       }
-
-       @Override
-    public void enableApplicationCursorKeys(boolean enable) {
-               fApplicationCursorKeys = enable;
-       }
-       
-       @Override
-       public void addMouseListener(ITerminalMouseListener listener) {
-           getCtlText().addTerminalMouseListener(listener);
-       }
-       
-       @Override
-       public void removeMouseListener(ITerminalMouseListener listener) {
-           getCtlText().removeTerminalMouseListener(listener);
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/ISnapshotChanges.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/ISnapshotChanges.java
deleted file mode 100644 (file)
index 184b63b..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-
-public interface ISnapshotChanges {
-
-       /**
-        * @param line might bigger than the number of lines....
-        */
-       void markLineChanged(int line);
-
-       /**
-        * Marks all lines in the range as changed
-        * @param line >=0
-        * @param n might be out of range
-        */
-       void markLinesChanged(int line, int n);
-
-       /**
-        * Marks all lines within the scrolling region
-        * changed and resets the scrolling information
-        */
-       void convertScrollingIntoChanges();
-
-       /**
-        * @return true if something has changed
-        */
-       boolean hasChanged();
-
-       /**
-        * @param startLine
-        * @param size
-        * @param shift
-        */
-       void scroll(int startLine, int size, int shift);
-
-       /**
-        * Mark all lines changed
-        * @param height if no window is set this is the number of 
-        * lines that are marked as changed
-        */
-       void setAllChanged(int height);
-
-       int getFirstChangedLine();
-
-       int getLastChangedLine();
-
-       int getScrollWindowStartLine();
-
-       int getScrollWindowSize();
-
-       int getScrollWindowShift();
-
-       boolean hasLineChanged(int line);
-
-       void markDimensionsChanged();
-       boolean hasDimensionsChanged();
-       void markCursorChanged();
-
-       /**
-        * @return true if the terminal data has changed
-        */
-       boolean hasTerminalChanged();
-       /**
-        * mark the terminal as changed
-        */
-       void setTerminalChanged();
-
-
-       void copyChangedLines(ITerminalTextData dest, ITerminalTextData source);
-
-       /**
-        * @param startLine -1 means follow the end of the data
-        * @param size number of lines to follow
-        */
-       void setInterestWindow(int startLine, int size);
-       int getInterestWindowStartLine();
-       int getInterestWindowSize();
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/SnapshotChanges.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/SnapshotChanges.java
deleted file mode 100644 (file)
index 362e8ce..0000000
+++ /dev/null
@@ -1,391 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-
-
-/**
- * Collects the changes of the {@link ITerminalTextData}
- *
- */
-public class SnapshotChanges implements ISnapshotChanges {
-       /**
-        * The first line changed
-        */
-       private int fFirstChangedLine;
-       /**
-        * The last line changed
-        */
-       private int fLastChangedLine;
-       private int fScrollWindowStartLine;
-       private int fScrollWindowSize;
-       private int fScrollWindowShift;
-       /**
-        * true, if scrolling should not tracked anymore
-        */
-       private boolean fScrollDontTrack;
-       /**
-        * The lines that need to be copied
-        * into the snapshot (lines that have
-        * not changed don't have to be copied)
-        */
-       private boolean[] fChangedLines;
-       
-       private int fInterestWindowSize;
-       private int fInterestWindowStartLine;
-       private boolean fDimensionsChanged;
-       private boolean fTerminalHasChanged;
-       private boolean fCursorHasChanged;
-       
-       public SnapshotChanges(int nLines) {
-               setChangedLinesLength(nLines);
-               fFirstChangedLine=Integer.MAX_VALUE;
-               fLastChangedLine=-1;
-       }
-       public SnapshotChanges(int windowStart, int windowSize) {
-               setChangedLinesLength(windowStart+windowSize);
-               fFirstChangedLine=Integer.MAX_VALUE;
-               fLastChangedLine=-1;
-               fInterestWindowStartLine=windowStart;
-               fInterestWindowSize=windowSize;
-
-       }
-       /**
-        * This is used in asserts to throw an {@link RuntimeException}.
-        * This is useful for tests.
-        * @return never -- throws an exception
-        */
-       private boolean throwRuntimeException() {
-               throw new RuntimeException();
-       }
-       /**
-        * @param line
-        * @param size
-        * @return true if the range overlaps with the interest window
-        */
-       boolean isInInterestWindow(int line, int size) {
-               if(fInterestWindowSize<=0)
-                       return true;
-               if(line+size<=fInterestWindowStartLine || line>=fInterestWindowStartLine+fInterestWindowSize)
-                       return false;
-               return true;
-       }
-       /**
-        * @param line
-        * @return true if the line is within the interest window
-        */
-       boolean isInInterestWindow(int line) {
-               if(fInterestWindowSize<=0)
-                       return true;
-               if(line<fInterestWindowStartLine || line>=fInterestWindowStartLine+fInterestWindowSize)
-                       return false;
-               return true;
-       }
-       /**
-        * @param line
-        * @return the line within the window
-        */
-       int fitLineToWindow(int line) {
-               if(fInterestWindowSize<=0)
-                       return line;
-               if(line<fInterestWindowStartLine)
-                       return fInterestWindowStartLine;
-               return line;
-       }
-       /**
-        * The result is only defined if {@link #isInInterestWindow(int, int)} returns true!
-        * @param line the line <b>before</b> {@link #fitLineToWindow(int)} has been called!
-        * @param size
-        * @return the adjusted size. 
-        * <p>Note:</p> {@link #fitLineToWindow(int)} has to be called on the line to
-        * move the window correctly!
-        */
-       int fitSizeToWindow(int line, int size) {
-               if(fInterestWindowSize<=0)
-                       return size;
-               if(line<fInterestWindowStartLine) {
-                       size-=fInterestWindowStartLine-line;
-                       line=fInterestWindowStartLine;
-               }
-               if(line+size>fInterestWindowStartLine+fInterestWindowSize)
-                       size=fInterestWindowStartLine+fInterestWindowSize-line;
-               return size;
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ISnapshotChanges#markLineChanged(int)
-        */
-       public void markLineChanged(int line) {
-               if(!isInInterestWindow(line))
-                       return;
-               line=fitLineToWindow(line);
-               if(line<fFirstChangedLine)
-                       fFirstChangedLine=line;
-               if(line>fLastChangedLine)
-                       fLastChangedLine=line;
-               // in case the terminal got resized we expand 
-               // don't remember the changed line because
-               // there is nothing to copy
-               if(line<getChangedLineLength()) {
-                       setChangedLine(line,true);
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ISnapshotChanges#markLinesChanged(int, int)
-        */
-       public void markLinesChanged(int line, int n) {
-               if(n<=0 || !isInInterestWindow(line,n))
-                       return;
-               // do not exceed the bounds of fChangedLines
-               // the terminal might have been resized and 
-               // we can only keep changes for the size of the
-               // previous terminal
-               n=fitSizeToWindow(line, n);
-               line=fitLineToWindow(line);
-               int m=Math.min(line+n, getChangedLineLength());
-               for (int i = line; i < m; i++) {
-                       setChangedLine(i,true);
-               }
-               // this sets fFirstChangedLine as well
-               markLineChanged(line);
-               // this sets fLastChangedLine as well
-               markLineChanged(line+n-1);
-       }
-       public void markCursorChanged() {
-               fCursorHasChanged=true;
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ISnapshotChanges#convertScrollingIntoChanges()
-        */
-       public void convertScrollingIntoChanges() {
-               markLinesChanged(fScrollWindowStartLine,fScrollWindowSize);
-               fScrollWindowStartLine=0;
-               fScrollWindowSize=0;
-               fScrollWindowShift=0;
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ISnapshotChanges#hasChanged()
-        */
-       public boolean hasChanged() {
-               if(fFirstChangedLine!=Integer.MAX_VALUE || fLastChangedLine>0 || fScrollWindowShift!=0 ||fDimensionsChanged || fCursorHasChanged)
-                       return true;
-               return false;
-       }
-       public void markDimensionsChanged() {
-               fDimensionsChanged=true;
-       }
-       public boolean hasDimensionsChanged() {
-               return fDimensionsChanged;
-       }
-       public boolean hasTerminalChanged() {
-               return fTerminalHasChanged;
-       }
-       public void setTerminalChanged() {
-               fTerminalHasChanged=true;
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ISnapshotChanges#scroll(int, int, int)
-        */
-       public void scroll(int startLine, int size, int shift) {
-               size=fitSizeToWindow(startLine, size);
-               startLine=fitLineToWindow(startLine);
-               // let's track only negative shifts
-               if(fScrollDontTrack) {
-                       // we are in a state where we cannot track scrolling
-                       // so let's simply mark the scrolled lines as changed
-                       markLinesChanged(startLine, size);
-               } else if(shift>=0) {
-                       // we cannot handle positive scroll
-                       // forget about clever caching of scroll events
-                       doNotTrackScrollingAnymore();
-                       // mark all lines inside the scroll region as changed
-                       markLinesChanged(startLine, size);
-               } else {
-                       // we have already scrolled
-                       if(fScrollWindowShift<0) {
-                               // we have already scrolled
-                               if(fScrollWindowStartLine==startLine && fScrollWindowSize==size) {
-                                       // we are scrolling the same region again?
-                                       fScrollWindowShift+=shift;
-                                       scrollChangesLinesWithNegativeShift(startLine,size,shift);
-                               } else {
-                                       // mark all lines in the old scroll region as changed
-                                       doNotTrackScrollingAnymore();
-                                       // mark all lines changed, because
-                                       markLinesChanged(startLine, size);
-                               }
-                       } else {
-                               // first scroll in this change -- we just notify it
-                               fScrollWindowStartLine=startLine;
-                               fScrollWindowSize=size;
-                               fScrollWindowShift=shift;
-                               scrollChangesLinesWithNegativeShift(startLine,size,shift);
-                       }
-               }
-       }
-       /**
-        * Some incompatible scrolling occurred. We cannot do the
-        * scroll optimization anymore...
-        */
-       private void doNotTrackScrollingAnymore() {
-               if(fScrollWindowSize>0) {
-                       // convert the current scrolling into changes
-                       markLinesChanged(fScrollWindowStartLine, fScrollWindowSize);
-                       fScrollWindowStartLine=0;
-                       fScrollWindowSize=0;
-                       fScrollWindowShift=0;
-               }
-               // don't be clever on scrolling anymore
-               fScrollDontTrack=true;
-       }
-       /**
-        * Scrolls the changed lines data
-        *
-        * @param line
-        * @param n
-        * @param shift must be negative!
-        */
-       private void scrollChangesLinesWithNegativeShift(int line, int n, int shift) {
-               assert shift <0 || throwRuntimeException();
-               // scroll the region
-               // don't run out of bounds!
-               int m=Math.min(line+n+shift,getChangedLineLength()+shift);
-               for (int i = line; i < m; i++) {
-                       setChangedLine(i, hasLineChanged(i-shift));
-                       // move the first changed line up.
-                       // We don't have to move the maximum down,
-                       // because with a shift scroll, the max is moved
-                       // my the next loop in this method
-                       if(i<fFirstChangedLine && hasLineChanged(i)) {
-                               fFirstChangedLine=i;
-                       }
-               }
-               // mark the "opened" lines as changed
-               for (int i = Math.max(0,line+n+shift); i < line+n; i++) {
-                       markLineChanged(i);
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ISnapshotChanges#setAllChanged(int)
-        */
-       public void setAllChanged(int height) {
-               fScrollWindowStartLine=0;
-               fScrollWindowSize=0;
-               fScrollWindowShift=0;
-               fFirstChangedLine=fitLineToWindow(0);
-               fLastChangedLine=fFirstChangedLine+fitSizeToWindow(0, height)-1;
-               // no need to keep an array of changes anymore
-               setChangedLinesLength(0);
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ISnapshotChanges#getFirstChangedLine()
-        */
-       public int getFirstChangedLine() {
-               return fFirstChangedLine;
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ISnapshotChanges#getLastChangedLine()
-        */
-       public int getLastChangedLine() {
-               return fLastChangedLine;
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ISnapshotChanges#getScrollWindowStartLine()
-        */
-       public int getScrollWindowStartLine() {
-               return fScrollWindowStartLine;
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ISnapshotChanges#getScrollWindowSize()
-        */
-       public int getScrollWindowSize() {
-               return fScrollWindowSize;
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ISnapshotChanges#getScrollWindowShift()
-        */
-       public int getScrollWindowShift() {
-               return fScrollWindowShift;
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ISnapshotChanges#copyChangedLines(org.eclipse.tm.terminal.model.ITerminalTextData, org.eclipse.tm.terminal.model.ITerminalTextData)
-        */
-       public void copyChangedLines(ITerminalTextData dest, ITerminalTextData source) {
-               int n=Math.min(fLastChangedLine+1,source.getHeight());
-               for (int i = fFirstChangedLine; i < n ; i++) {
-                       if(hasLineChanged(i))
-                               dest.copyLine(source,i,i);
-               }
-       }
-       
-       public int getInterestWindowSize() {
-               return fInterestWindowSize;
-       }
-
-       public int getInterestWindowStartLine() {
-               return fInterestWindowStartLine;
-       }
-
-       public void setInterestWindow(int startLine, int size) {
-               int oldStartLine=fInterestWindowStartLine;
-               int oldSize=fInterestWindowSize;
-               fInterestWindowStartLine=startLine;
-               fInterestWindowSize=size;
-               if(oldSize>0) {
-                       int shift=oldStartLine-startLine;
-                       if(shift==0) {
-                               if(size>oldSize) {
-                                       // add lines to the end
-                                       markLinesChanged(oldStartLine+oldSize, size-oldSize);
-                               }
-                               // else no lines within the window have changed
-                                       
-                       } else if(Math.abs(shift)<size) {
-                               if(shift<0) {
-                                       // we can scroll
-                                       scroll(startLine, oldSize, shift);
-                                       // mark the lines at the end as new
-                                       for (int i = oldStartLine+oldSize; i < startLine+size; i++) {
-                                               markLineChanged(i);
-                                       }
-                               } else {
-                                       // we cannot shift positive -- mark all changed
-                                       markLinesChanged(startLine, size);
-                               }
-                       } else {
-                               // no scrolling possible
-                               markLinesChanged(startLine, size);
-                       }
-                               
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ISnapshotChanges#hasLineChanged(int)
-        */
-       public boolean hasLineChanged(int line) {
-               if(line<fChangedLines.length)
-                       return fChangedLines[line];
-               // since the height of the terminal could
-               // have changed but we have tracked only changes
-               // of the previous terminal height, any line outside
-               // the the range of the previous height has changed
-               return isInInterestWindow(line);
-       }
-       int getChangedLineLength() {
-               return fChangedLines.length;
-       }
-       void setChangedLine(int line,boolean changed){
-               fChangedLines[line]=changed;
-       }
-       void setChangedLinesLength(int length) {
-               fChangedLines=new boolean[length];
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/SynchronizedTerminalTextData.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/SynchronizedTerminalTextData.java
deleted file mode 100644 (file)
index dedac09..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse synchronized 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
- * Anton Leherbauer (Wind River) - [453393] Add support for copying wrapped lines without line break
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataSnapshot;
-import org.eclipse.tm.terminal.model.LineSegment;
-import org.eclipse.tm.terminal.model.Style;
-
-/**
- * This is a decorator to make all access to
- * ITerminalTextData synchronized
- *
- */
-public class SynchronizedTerminalTextData implements ITerminalTextData {
-       final ITerminalTextData fData;
-       public SynchronizedTerminalTextData(ITerminalTextData data) {
-               fData=data;
-       }
-       synchronized public void addLine() {
-               fData.addLine();
-       }
-       synchronized public void cleanLine(int line) {
-               fData.cleanLine(line);
-       }
-       synchronized public void copy(ITerminalTextData source) {
-               fData.copy(source);
-       }
-       synchronized public void copyLine(ITerminalTextData source, int sourceLine, int destLine) {
-               fData.copyLine(source, sourceLine, destLine);
-       }
-       synchronized public void copyRange(ITerminalTextData source, int sourceStartLine, int destStartLine, int length) {
-               fData.copyRange(source, sourceStartLine, destStartLine, length);
-       }
-       synchronized public char getChar(int line, int column) {
-               return fData.getChar(line, column);
-       }
-       synchronized public char[] getChars(int line) {
-               return fData.getChars(line);
-       }
-       synchronized public int getCursorColumn() {
-               return fData.getCursorColumn();
-       }
-       synchronized public int getCursorLine() {
-               return fData.getCursorLine();
-       }
-       synchronized public int getHeight() {
-               return fData.getHeight();
-       }
-       synchronized public LineSegment[] getLineSegments(int line, int startCol, int numberOfCols) {
-               return fData.getLineSegments(line, startCol, numberOfCols);
-       }
-       synchronized public int getMaxHeight() {
-               return fData.getMaxHeight();
-       }
-       synchronized public Style getStyle(int line, int column) {
-               return fData.getStyle(line, column);
-       }
-       synchronized public Style[] getStyles(int line) {
-               return fData.getStyles(line);
-       }
-       synchronized public int getWidth() {
-               return fData.getWidth();
-       }
-       synchronized public ITerminalTextDataSnapshot makeSnapshot() {
-               return fData.makeSnapshot();
-       }
-       synchronized public void scroll(int startLine, int size, int shift) {
-               fData.scroll(startLine, size, shift);
-       }
-       synchronized public void setChar(int line, int column, char c, Style style) {
-               fData.setChar(line, column, c, style);
-       }
-       synchronized public void setChars(int line, int column, char[] chars, int start, int len, Style style) {
-               fData.setChars(line, column, chars, start, len, style);
-       }
-       synchronized public void setChars(int line, int column, char[] chars, Style style) {
-               fData.setChars(line, column, chars, style);
-       }
-       synchronized public void setCursorColumn(int column) {
-               fData.setCursorColumn(column);
-       }
-       synchronized public void setCursorLine(int line) {
-               fData.setCursorLine(line);
-       }
-       synchronized public void setDimensions(int height, int width) {
-               fData.setDimensions(height, width);
-       }
-       synchronized public void setMaxHeight(int height) {
-               fData.setMaxHeight(height);
-       }
-       synchronized public boolean isWrappedLine(int line) {
-               return fData.isWrappedLine(line);
-       }
-       synchronized public void setWrappedLine(int line) {
-               fData.setWrappedLine(line);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextData.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextData.java
deleted file mode 100644 (file)
index a361d0a..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - [168197] Fix Terminal for CDC-1.1/Foundation-1.1
- * Anton Leherbauer (Wind River) - [453393] Add support for copying wrapped lines without line break
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataReadOnly;
-import org.eclipse.tm.terminal.model.ITerminalTextDataSnapshot;
-import org.eclipse.tm.terminal.model.LineSegment;
-import org.eclipse.tm.terminal.model.Style;
-
-/**
- * This class is thread safe.
- *
- */
-public class TerminalTextData implements ITerminalTextData {
-       final ITerminalTextData fData;
-       /**
-        * A list of active snapshots
-        */
-       public TerminalTextDataSnapshot[] fSnapshots=new TerminalTextDataSnapshot[0];
-       private int fCursorColumn;
-       private int fCursorLine;
-       /**
-        * Debug helper method -- use as "New Detail Formatter.." in the
-        * debugger variables view:
-        *   <pre>TerminalTextData.toMultiLineText(this,0,200))</pre>
-        * @param term the terminal
-        * @param start start line to show
-        * @param len number of lines to show -- negative numbers means show all
-        * @return a string representation of the content
-        */
-       static public String toMultiLineText(ITerminalTextDataReadOnly term, int start, int len) {
-               if(len<0)
-                       len=term.getHeight();
-               StringBuffer buff=new StringBuffer();
-               int width=term.getWidth();
-               int n=Math.min(len,term.getHeight()-start);
-               for (int line = start; line < n; line++) {
-                       if(line>0)
-                               buff.append("\n"); //$NON-NLS-1$
-                       for (int column = 0; column < width; column++) {
-                               buff.append(term.getChar(line, column));
-                       }
-               }
-               // get rid of the empty space at the end of the lines
-               //return buff.toString().replaceAll("\000+", "");  //$NON-NLS-1$//$NON-NLS-2$
-               //<J2ME CDC-1.1 Foundation-1.1 variant>
-               int i = buff.length() - 1;
-               while (i >= 0 && buff.charAt(i) == '\000') {
-                       i--;
-               }
-               buff.setLength(i + 1);
-               return buff.toString();
-               //</J2ME CDC-1.1 Foundation-1.1 variant>
-       }
-
-       /**
-        * Show the first 100 lines
-        * see {@link #toMultiLineText(ITerminalTextDataReadOnly, int, int)}
-        * @param term A read-only terminal model
-        * @return a string representation of the terminal
-        */
-       static public String toMultiLineText(ITerminalTextDataReadOnly term) {
-               return toMultiLineText(term, 0, 100);
-       }
-
-       public TerminalTextData() {
-               this(new TerminalTextDataFastScroll());
-
-//             this(new TerminalTextDataStore());
-       }
-       public TerminalTextData(ITerminalTextData data) {
-               fData=data;
-       }
-       public int getWidth() {
-               return fData.getWidth();
-       }
-       public int getHeight() {
-               // no need for an extra variable
-               return fData.getHeight();
-       }
-       public void setDimensions(int height, int width) {
-               int h=getHeight();
-               int w=getWidth();
-               if(w==width && h==height)
-                       return;
-               fData.setDimensions(height, width);
-               sendDimensionsChanged(h, w, height, width);
-       }
-       private void sendDimensionsChanged(int oldHeight, int oldWidth, int newHeight, int newWidth) {
-               // determine what has changed
-               if(oldWidth==newWidth) {
-                       if(oldHeight<newHeight)
-                               sendLinesChangedToSnapshot(oldHeight, newHeight-oldHeight);
-                       else
-                               sendLinesChangedToSnapshot(newHeight,oldHeight-newHeight);
-               } else {
-                       sendLinesChangedToSnapshot(0, oldHeight);
-               }
-               sendDimensionsChanged();
-       }
-       public LineSegment[] getLineSegments(int line, int column, int len) {
-               return fData.getLineSegments(line, column, len);
-       }
-       public char getChar(int line, int column) {
-               return fData.getChar(line, column);
-       }
-       public Style getStyle(int line, int column) {
-               return fData.getStyle(line, column);
-       }
-       public void setChar(int line, int column, char c, Style style) {
-               fData.setChar(line, column, c, style);
-               sendLineChangedToSnapshots(line);
-       }
-       public void setChars(int line, int column, char[] chars, Style style) {
-               fData.setChars(line, column, chars, style);
-               sendLineChangedToSnapshots(line);
-       }
-       public void setChars(int line, int column, char[] chars, int start, int len, Style style) {
-               fData.setChars(line, column, chars, start, len, style);
-               sendLineChangedToSnapshots(line);
-       }
-       public void scroll(int startLine, int size, int shift) {
-               fData.scroll(startLine, size, shift);
-               sendScrolledToSnapshots(startLine, size, shift);
-       }
-       public String toString() {
-               return fData.toString();
-       }
-       private void sendDimensionsChanged() {
-               for (int i = 0; i < fSnapshots.length; i++) {
-                       fSnapshots[i].markDimensionsChanged();
-               }
-       }
-       /**
-        * @param line notifies snapshots that line line has changed
-        */
-       protected void sendLineChangedToSnapshots(int line) {
-               for (int i = 0; i < fSnapshots.length; i++) {
-                       fSnapshots[i].markLineChanged(line);
-               }
-       }
-       /**
-        * Notify snapshots that multiple lines have changed
-        * @param line changed line
-        * @param n number of changed lines
-        */
-       protected void sendLinesChangedToSnapshot(int line,int n) {
-               for (int i = 0; i < fSnapshots.length; i++) {
-                       fSnapshots[i].markLinesChanged(line, n);
-               }
-       }
-
-       /**
-        * Notify snapshot that a region was scrolled
-        * @param startLine first line of scrolled region
-        * @param size size of scrolled region (number of lines)
-        * @param shift delta by which the region is scrolled
-        */
-       protected void sendScrolledToSnapshots(int startLine,int size, int shift) {
-               for (int i = 0; i < fSnapshots.length; i++) {
-                       fSnapshots[i].scroll(startLine, size, shift);
-               }
-       }
-       protected void sendCursorChanged() {
-               for (int i = 0; i < fSnapshots.length; i++) {
-                       fSnapshots[i].markCursorChanged();
-               }
-       }
-       /**
-        * Removes the snapshot from the @observer@ list
-        * @param snapshot A snapshot of a terminal model
-        */
-       protected void removeSnapshot(TerminalTextDataSnapshot snapshot) {
-               // poor mans approach to modify the array
-               List<TerminalTextDataSnapshot> list=new ArrayList<TerminalTextDataSnapshot>();
-               list.addAll(Arrays.asList(fSnapshots));
-               list.remove(snapshot);
-               fSnapshots=list.toArray(new TerminalTextDataSnapshot[list.size()]);
-       }
-
-       public ITerminalTextDataSnapshot makeSnapshot() {
-               // poor mans approach to modify the array
-               TerminalTextDataSnapshot snapshot=new TerminalTextDataSnapshot(this);
-               snapshot.markDimensionsChanged();
-               List<TerminalTextDataSnapshot> list=new ArrayList<TerminalTextDataSnapshot>();
-               list.addAll(Arrays.asList(fSnapshots));
-               list.add(snapshot);
-               fSnapshots=list.toArray(new TerminalTextDataSnapshot[list.size()]);
-               return snapshot;
-       }
-       public void addLine() {
-               int oldHeight=getHeight();
-               fData.addLine();
-               // was is an append or a scroll?
-               int newHeight=getHeight();
-               if(newHeight>oldHeight) {
-                       //the line was appended
-                       sendLinesChangedToSnapshot(oldHeight, 1);
-                       int width=getWidth();
-                       sendDimensionsChanged(oldHeight, width, newHeight, width);
-
-               } else {
-                       // the line was scrolled
-                       sendScrolledToSnapshots(0, oldHeight, -1);
-               }
-
-       }
-
-       public void copy(ITerminalTextData source) {
-               fData.copy(source);
-               fCursorLine=source.getCursorLine();
-               fCursorColumn=source.getCursorColumn();
-       }
-
-       public void copyLine(ITerminalTextData source, int sourceLine, int destLine) {
-               fData.copyLine(source, sourceLine, destLine);
-       }
-       public void copyRange(ITerminalTextData source, int sourceStartLine, int destStartLine, int length) {
-               fData.copyRange(source, sourceStartLine, destStartLine, length);
-       }
-       public char[] getChars(int line) {
-               return fData.getChars(line);
-       }
-       public Style[] getStyles(int line) {
-               return fData.getStyles(line);
-       }
-       public int getMaxHeight() {
-               return fData.getMaxHeight();
-       }
-       public void setMaxHeight(int height) {
-               fData.setMaxHeight(height);
-       }
-       public void cleanLine(int line) {
-               fData.cleanLine(line);
-               sendLineChangedToSnapshots(line);
-       }
-       public int getCursorColumn() {
-               return fCursorColumn;
-       }
-       public int getCursorLine() {
-               return fCursorLine;
-       }
-       public void setCursorColumn(int column) {
-               fCursorColumn=column;
-               sendCursorChanged();
-       }
-       public void setCursorLine(int line) {
-               fCursorLine=line;
-               sendCursorChanged();
-       }
-
-       public boolean isWrappedLine(int line) {
-               return fData.isWrappedLine(line);
-       }
-
-       public void setWrappedLine(int line) {
-               fData.setWrappedLine(line);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataFastScroll.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataFastScroll.java
deleted file mode 100644 (file)
index 9202178..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Anton Leherbauer (Wind River) - [453393] Add support for copying wrapped lines without line break
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataSnapshot;
-import org.eclipse.tm.terminal.model.LineSegment;
-import org.eclipse.tm.terminal.model.Style;
-
-/**
- * This class is optimized for scrolling the entire {@link #getHeight()}.
- * The scrolling is done by moving an offset into the data and using
- * the modulo operator.
- *
- */
-public class TerminalTextDataFastScroll implements ITerminalTextData {
-       
-       final ITerminalTextData fData;
-       private int fHeight;
-       private int fMaxHeight;
-       /**
-        * The offset into the array. 
-        */
-       int fOffset;
-       public TerminalTextDataFastScroll(ITerminalTextData data,int maxHeight) {
-               fMaxHeight=maxHeight;
-               fData=data;
-               fData.setDimensions(maxHeight, fData.getWidth());
-               if(maxHeight>2)
-                       assert shiftOffset(-2) || throwRuntimeException();
-       }
-       public TerminalTextDataFastScroll(int maxHeight) {
-               this(new TerminalTextDataStore(),maxHeight);
-       }
-       public TerminalTextDataFastScroll() {
-               this(new TerminalTextDataStore(),1);
-       }
-       /**
-        * This is used in asserts to throw an {@link RuntimeException}.
-        * This is useful for tests.
-        * @return never -- throws an exception
-        */
-       private boolean throwRuntimeException() {
-               throw new RuntimeException();
-       }
-       /**
-        * 
-        * @param line
-        * @return the actual line number in {@link #fData}
-        */
-       int getPositionOfLine(int line) {
-               return (line+fOffset)%fMaxHeight;
-       }
-       /**
-        * Moves offset by delta. This does <b>not</b> move the data!
-        * @param delta
-        */
-       void moveOffset(int delta) {
-               assert Math.abs(delta)<fMaxHeight || throwRuntimeException();
-               fOffset=(fMaxHeight+fOffset+delta)%fMaxHeight;
-               
-       }
-       /**
-        * Test method to shift the offset for testing (if assert ==true)
-        * @param shift TODO
-        * @return true
-        */
-       private boolean shiftOffset(int shift) {
-               moveOffset(shift);
-               return true;
-       }
-       public void addLine() {
-               if(getHeight()<fMaxHeight) {
-                       setDimensions(getHeight()+1, getWidth());
-               } else {
-                       scroll(0,getHeight(),-1);
-               }
-       }
-       public void cleanLine(int line) {
-               fData.cleanLine(getPositionOfLine(line));
-       }
-
-       public void copy(ITerminalTextData source) {
-               int n=source.getHeight();
-               setDimensions(source.getHeight(),source.getWidth());
-               for (int i = 0; i < n; i++) {
-                       fData.copyLine(source, i, getPositionOfLine(i));
-               }
-       }
-
-       public void copyLine(ITerminalTextData source, int sourceLine, int destLine) {
-               fData.copyLine(source, sourceLine, getPositionOfLine(destLine));
-       }
-
-       public void copyRange(ITerminalTextData source, int sourceStartLine, int destStartLine, int length) {
-               assert (destStartLine>=0 && destStartLine+length<=fHeight) || throwRuntimeException();
-               for (int i = 0; i < length; i++) {
-                       fData.copyLine(source, i+sourceStartLine, getPositionOfLine(i+destStartLine));
-               }
-       }
-
-       public char getChar(int line, int column) {
-               assert (line>=0 && line<fHeight) || throwRuntimeException();
-               return fData.getChar(getPositionOfLine(line), column);
-       }
-
-       public char[] getChars(int line) {
-               assert (line>=0 && line<fHeight) || throwRuntimeException();
-               return fData.getChars(getPositionOfLine(line));
-       }
-
-       public int getHeight() {
-               return fHeight;
-       }
-
-       public LineSegment[] getLineSegments(int line, int startCol, int numberOfCols) {
-               assert (line>=0 && line<fHeight) || throwRuntimeException();
-               return fData.getLineSegments(getPositionOfLine(line), startCol, numberOfCols);
-       }
-
-       public int getMaxHeight() {
-               return fMaxHeight;
-       }
-
-       public Style getStyle(int line, int column) {
-               assert (line>=0 && line<fHeight) || throwRuntimeException();
-               return fData.getStyle(getPositionOfLine(line), column);
-       }
-
-       public Style[] getStyles(int line) {
-               assert (line>=0 && line<fHeight) || throwRuntimeException();
-               return fData.getStyles(getPositionOfLine(line));
-       }
-
-       public int getWidth() {
-               return fData.getWidth();
-       }
-
-       public ITerminalTextDataSnapshot makeSnapshot() {
-               return fData.makeSnapshot();
-       }
-       private void cleanLines(int line, int len) {
-               for (int i = line; i < line+len; i++) {
-                       fData.cleanLine(getPositionOfLine(i));
-               }
-       }
-       public void scroll(int startLine, int size, int shift) {
-               assert (startLine>=0 && startLine+size<=fHeight) || throwRuntimeException();
-               if(shift>=fMaxHeight || -shift>=fMaxHeight) {
-                       cleanLines(startLine, fMaxHeight-startLine);
-                       return;
-               }
-               if(size==fHeight) {
-                       // This is the case this class is optimized for!
-                       moveOffset(-shift);
-                       // we only have to clean the lines that appear by the move 
-                       if(shift<0) {
-                               cleanLines(Math.max(startLine, startLine+size+shift),Math.min(-shift, getHeight()-startLine));
-                       } else {
-                               cleanLines(startLine, Math.min(shift, getHeight()-startLine));
-                       }
-               } else {
-                       // we have to copy the lines.
-                       if(shift<0) {
-                               // move the region up
-                               // shift is negative!!
-                               for (int i = startLine; i < startLine+size+shift; i++) {
-                                       fData.copyLine(fData, getPositionOfLine(i-shift), getPositionOfLine(i));
-                               }
-                               // then clean the opened lines
-                               cleanLines(Math.max(0, startLine+size+shift),Math.min(-shift, getHeight()-startLine));
-                       } else {
-                               for (int i = startLine+size-1; i >=startLine && i-shift>=0; i--) {
-                                       fData.copyLine(fData, getPositionOfLine(i-shift), getPositionOfLine(i));
-                               }
-                               cleanLines(startLine, Math.min(shift, getHeight()-startLine));
-                       }
-               }
-       }
-
-       public void setChar(int line, int column, char c, Style style) {
-               assert (line>=0 && line<fHeight) || throwRuntimeException();
-               fData.setChar(getPositionOfLine(line), column, c, style);
-       }
-
-       public void setChars(int line, int column, char[] chars, int start, int len, Style style) {
-               assert (line>=0 && line<fHeight) || throwRuntimeException();
-               fData.setChars(getPositionOfLine(line), column, chars, start, len, style);
-       }
-
-       public void setChars(int line, int column, char[] chars, Style style) {
-               assert (line>=0 && line<fHeight) || throwRuntimeException();
-               fData.setChars(getPositionOfLine(line), column, chars, style);
-       }
-
-       public void setDimensions(int height, int width) {
-               assert height>=0 || throwRuntimeException();
-               assert width>=0 || throwRuntimeException();
-               if(height > fMaxHeight)
-                       setMaxHeight(height);
-               fHeight=height;
-               if(width!=fData.getWidth())
-                       fData.setDimensions(fMaxHeight, width);
-       }
-
-       public void setMaxHeight(int maxHeight) {
-               assert maxHeight>=fHeight || throwRuntimeException();
-               // move everything to offset0
-               int start=getPositionOfLine(0);
-               if(start!=0) {
-                       // invent a more efficient algorithm....
-                       ITerminalTextData buffer=new TerminalTextDataStore();
-                       // create a buffer with the expected height
-                       buffer.setDimensions(maxHeight, getWidth());
-                       int n=Math.min(fMaxHeight-start,maxHeight);
-                       // copy the first part
-                       buffer.copyRange(fData, start, 0, n);
-                       // copy the second part
-                       if(n<maxHeight)
-                               buffer.copyRange(fData, 0, n, Math.min(fMaxHeight-n,maxHeight-n));
-                       // copy the buffer back to our data
-                       fData.copy(buffer);
-                       shiftOffset(-start);
-               } else {
-                       fData.setDimensions(maxHeight, fData.getWidth());
-               }
-               fMaxHeight=maxHeight;
-       }
-       public int getCursorColumn() {
-               throw new UnsupportedOperationException();
-       }
-       public int getCursorLine() {
-               throw new UnsupportedOperationException();
-       }
-       public void setCursorColumn(int column) {
-               throw new UnsupportedOperationException();
-       }
-       public void setCursorLine(int line) {
-               throw new UnsupportedOperationException();
-       }
-       public boolean isWrappedLine(int line) {
-               assert (line>=0 && line<fHeight) || throwRuntimeException();
-               return fData.isWrappedLine(getPositionOfLine(line));
-       }
-       public void setWrappedLine(int line) {
-               assert (line>=0 && line<fHeight) || throwRuntimeException();
-               fData.setWrappedLine(getPositionOfLine(line));
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataSnapshot.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataSnapshot.java
deleted file mode 100644 (file)
index 9d9924b..0000000
+++ /dev/null
@@ -1,303 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Anton Leherbauer (Wind River) - [453393] Add support for copying wrapped lines without line break
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataSnapshot;
-import org.eclipse.tm.terminal.model.LineSegment;
-import org.eclipse.tm.terminal.model.Style;
-
-/**
- * The public methods of this class have to be called from one thread! 
- *
- * Threading considerations:
- * This class is <b>not threadsafe</b>!
- */
-class TerminalTextDataSnapshot implements ITerminalTextDataSnapshot {
-       /**
-        * The changes of the current snapshot relative to the
-        * previous snapshot
-        */
-       volatile ISnapshotChanges fCurrentChanges;
-       /**
-        * Keeps track of changes that happened since the current
-        * snapshot has been made.
-        */
-       ISnapshotChanges fFutureChanges;
-       /**
-        * Is used as lock and is the reference to the terminal we take snapshots from.
-        */
-       final TerminalTextData fTerminal;
-       /**
-        * A snapshot copy of of fTerminal
-        */
-       // snapshot does not need internal synchronisation
-       final TerminalTextDataWindow fSnapshot;
-       // this variable is synchronized on fTerminal!
-       private SnapshotOutOfDateListener[] fListener=new SnapshotOutOfDateListener[0];
-       // this variable is synchronized on fTerminal!
-       private boolean fListenersNeedNotify;
-       private int fInterestWindowSize;
-       private int fInterestWindowStartLine;
-
-       TerminalTextDataSnapshot(TerminalTextData terminal) {
-               fSnapshot = new TerminalTextDataWindow();
-               fTerminal = terminal;
-               fCurrentChanges = new SnapshotChanges(fTerminal.getHeight());
-               fCurrentChanges.setTerminalChanged();
-               fFutureChanges = new SnapshotChanges(fTerminal.getHeight());
-               fFutureChanges.markLinesChanged(0, fTerminal.getHeight());
-               fListenersNeedNotify=true;
-               fInterestWindowSize=-1;
-       }
-       /**
-        * This is used in asserts to throw an {@link RuntimeException}.
-        * This is useful for tests.
-        * @return never -- throws an exception
-        */
-       private boolean throwRuntimeException() {
-               throw new RuntimeException();
-       }
-       
-       public void detach() {
-               fTerminal.removeSnapshot(this);
-       }
-
-       public boolean isOutOfDate() {
-               // this is called from fTerminal, therefore we lock on fTerminal
-               synchronized (fTerminal) {
-                       return fFutureChanges.hasChanged();
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ITerminalTextDataSnapshot#snapshot()
-        */
-       public void updateSnapshot(boolean detectScrolling) {
-               // make sure terminal does not change while we make the snapshot
-               synchronized (fTerminal) {
-                       // let's make the future changes current
-                       fCurrentChanges=fFutureChanges;
-                       fFutureChanges=new SnapshotChanges(fTerminal.getHeight());
-                       fFutureChanges.setInterestWindow(fInterestWindowStartLine, fInterestWindowSize);
-                       // and update the snapshot
-                       if(fSnapshot.getHeight()!=fTerminal.getHeight()||fSnapshot.getWidth()!=fTerminal.getWidth()) {
-                               if(fInterestWindowSize==-1)
-                                       fSnapshot.setWindow(0, fTerminal.getHeight());
-                               // if the dimensions have changed, we need a full copy
-                               fSnapshot.copy(fTerminal);
-                               // and we mark all lines as changed
-                               fCurrentChanges.setAllChanged(fTerminal.getHeight());
-                       } else {
-                               // first we do the scroll on the copy
-                               int start=fCurrentChanges.getScrollWindowStartLine();
-                               int lines=Math.min(fCurrentChanges.getScrollWindowSize(), fSnapshot.getHeight()-start);
-                               fSnapshot.scroll(start, lines, fCurrentChanges.getScrollWindowShift());
-                               // and then create the snapshot of the changed lines
-                               fCurrentChanges.copyChangedLines(fSnapshot, fTerminal);
-                       }
-                       fListenersNeedNotify=true;
-                       fSnapshot.setCursorLine(fTerminal.getCursorLine());
-                       fSnapshot.setCursorColumn(fTerminal.getCursorColumn());
-               }
-               if(!detectScrolling) {
-                       // let's pretend there was no scrolling and
-                       // convert the scrolling into line changes
-                       fCurrentChanges.convertScrollingIntoChanges();
-               }
-       }
-
-       public char getChar(int line, int column) {
-               return fSnapshot.getChar(line, column);
-       }
-
-       public int getHeight() {
-               return fSnapshot.getHeight();
-       }
-
-       public LineSegment[] getLineSegments(int line, int column, int len) {
-               return fSnapshot.getLineSegments(line, column, len);
-       }
-
-       public Style getStyle(int line, int column) {
-               return fSnapshot.getStyle(line, column);
-       }
-
-       public int getWidth() {
-               return fSnapshot.getWidth();
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ITerminalTextDataSnapshot#getFirstChangedLine()
-        */
-       public int getFirstChangedLine() {
-               return fCurrentChanges.getFirstChangedLine();
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ITerminalTextDataSnapshot#getLastChangedLine()
-        */
-       public int getLastChangedLine() {
-               return fCurrentChanges.getLastChangedLine();
-       }
-
-       public boolean hasLineChanged(int line) {
-               return fCurrentChanges.hasLineChanged(line);
-       }
-       public boolean hasDimensionsChanged() {
-               return fCurrentChanges.hasDimensionsChanged();
-       }
-       public boolean hasTerminalChanged() {
-               return fCurrentChanges.hasTerminalChanged();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ITerminalTextDataSnapshot#getScrollChangeY()
-        */
-       public int getScrollWindowStartLine() {
-               return fCurrentChanges.getScrollWindowStartLine();
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ITerminalTextDataSnapshot#getScrollChangeN()
-        */
-       public int getScrollWindowSize() {
-               return fCurrentChanges.getScrollWindowSize();
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.model.ITerminalTextDataSnapshot#getScrollChangeShift()
-        */
-       public int getScrollWindowShift() {
-               return fCurrentChanges.getScrollWindowShift();
-       }
-       
-       /**
-        * Announces a change in line line
-        * @param line
-        */
-       void markLineChanged(int line) {
-               // threading
-               fFutureChanges.markLineChanged(line);
-               fFutureChanges.setTerminalChanged();
-               notifyListers();
-       }
-       /**
-        * Announces a change of n lines beginning with line line
-        * @param line
-        * @param n
-        */
-       void markLinesChanged(int line,int n) {
-               fFutureChanges.markLinesChanged(line,n);
-               fFutureChanges.setTerminalChanged();
-               notifyListers();
-       }
-       
-       void markDimensionsChanged() {
-               fFutureChanges.markDimensionsChanged();
-               fFutureChanges.setTerminalChanged();
-               notifyListers();
-       }
-       void markCursorChanged() {
-               fFutureChanges.markCursorChanged();
-               fFutureChanges.setTerminalChanged();
-               notifyListers();
-       }
-
-       /**
-        * @param startLine
-        * @param size
-        * @param shift
-        */
-       void scroll(int startLine, int size, int shift) {
-               fFutureChanges.scroll(startLine,size,shift);
-               fFutureChanges.setTerminalChanged();
-               notifyListers();
-       }
-       /**
-        * Notifies listeners about the change
-        */
-       private void notifyListers() {
-               // this code has to be called from a block synchronized on fTerminal
-               synchronized (fTerminal) {
-                       if(fListenersNeedNotify) {
-                               for (int i = 0; i < fListener.length; i++) {
-                                       fListener[i].snapshotOutOfDate(this);
-                               }
-                               fListenersNeedNotify=false;
-                       }
-               }
-       }
-       public ITerminalTextDataSnapshot makeSnapshot() {
-               return fSnapshot.makeSnapshot();
-       }
-
-       synchronized public void addListener(SnapshotOutOfDateListener listener) {
-               List<SnapshotOutOfDateListener> list=new ArrayList<SnapshotOutOfDateListener>();
-               list.addAll(Arrays.asList(fListener));
-               list.add(listener);
-               fListener=list.toArray(new SnapshotOutOfDateListener[list.size()]);
-       }
-
-       synchronized public void removeListener(SnapshotOutOfDateListener listener) {
-               List<SnapshotOutOfDateListener> list=new ArrayList<SnapshotOutOfDateListener>();
-               list.addAll(Arrays.asList(fListener));
-               list.remove(listener);
-               fListener=list.toArray(new SnapshotOutOfDateListener[list.size()]);
-       }
-       public String toString() {
-               return fSnapshot.toString();
-       }
-
-
-       public int getInterestWindowSize() {
-               return fInterestWindowSize;
-       }
-
-
-       public int getInterestWindowStartLine() {
-               return fInterestWindowStartLine;
-       }
-
-       public void setInterestWindow(int startLine, int size) {
-               assert startLine>=0 || throwRuntimeException();
-               assert size>=0 || throwRuntimeException();
-               fInterestWindowStartLine=startLine;
-               fInterestWindowSize=size;
-               fSnapshot.setWindow(startLine, size);
-               fFutureChanges.setInterestWindow(startLine, size);
-               notifyListers();
-       }
-
-
-       public char[] getChars(int line) {
-               return fSnapshot.getChars(line);
-       }
-
-
-       public Style[] getStyles(int line) {
-               return fSnapshot.getStyles(line);
-       }
-       public int getCursorColumn() {
-               return fSnapshot.getCursorColumn();
-       }
-       public int getCursorLine() {
-               return fSnapshot.getCursorLine();
-       }
-       public ITerminalTextData getTerminalTextData() {
-               return fTerminal;
-       }
-       public boolean isWrappedLine(int line) {
-               return fSnapshot.isWrappedLine(line);
-       }
-}
-
-
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataStore.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataStore.java
deleted file mode 100644 (file)
index 9817087..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Anton Leherbauer (Wind River) - [453393] Add support for copying wrapped lines without line break
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.BitSet;
-import java.util.List;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataSnapshot;
-import org.eclipse.tm.terminal.model.LineSegment;
-import org.eclipse.tm.terminal.model.Style;
-
-/**
- * This class is thread safe.
- *
- */
-public class TerminalTextDataStore implements ITerminalTextData {
-       private char[][] fChars;
-       private Style[][] fStyle;
-       private int fWidth;
-       private int fHeight;
-       private int fMaxHeight;
-       private int fCursorColumn;
-       private int fCursorLine;
-       final private BitSet fWrappedLines = new BitSet();
-
-       public TerminalTextDataStore() {
-               fChars=new char[0][];
-               fStyle=new Style[0][];
-               fWidth=0;
-       }
-       /**
-        * This is used in asserts to throw an {@link RuntimeException}.
-        * This is useful for tests.
-        * @return never -- throws an exception
-        */
-       private boolean throwRuntimeException() {
-               throw new RuntimeException();
-       }
-       
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.text.ITerminalTextData#getWidth()
-        */
-       public int getWidth() {
-               return fWidth;
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.text.ITerminalTextData#getHeight()
-        */
-       public int getHeight() {
-               return fHeight;
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.text.ITerminalTextData#setDimensions(int, int)
-        */
-       public void setDimensions(int height, int width) {
-               assert height>=0 || throwRuntimeException();
-               assert width>=0  || throwRuntimeException();
-               // just extend the region
-               if(height>fChars.length) {
-                       int h=4*height/3;
-                       if(fMaxHeight>0 && h>fMaxHeight)
-                               h=fMaxHeight;
-                       fStyle=(Style[][]) resizeArray(fStyle, height);
-                       fChars=(char[][]) resizeArray(fChars, height);
-               }
-               // clean the new lines
-               if(height>fHeight) {
-                       for (int i = fHeight; i < height; i++) {
-                               cleanLine(i);
-                       }
-               }
-               // set dimensions after successful resize!
-               fWidth=width;
-               fHeight=height;
-       }
-       /**
-        * Reallocates an array with a new size, and copies the contents of the old
-        * array to the new array.
-        * 
-        * @param origArray the old array, to be reallocated.
-        * @param newSize the new array size.
-        * @return A new array with the same contents (chopped off if needed or filled with 0 or null).
-        */
-       private Object resizeArray(Object origArray, int newSize) {
-               int oldSize = Array.getLength(origArray);
-               if(oldSize==newSize)
-                       return origArray;
-               Class<?> elementType = origArray.getClass().getComponentType();
-               Object newArray = Array.newInstance(elementType, newSize);
-               int preserveLength = Math.min(oldSize, newSize);
-               if (preserveLength > 0)
-                       System.arraycopy(origArray, 0, newArray, 0, preserveLength);
-               return newArray;
-       }
-
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.text.ITerminalTextData#getLineSegments(int, int, int)
-        */
-       public LineSegment[] getLineSegments(int line, int column, int len) {
-               // get the styles and chars for this line
-               Style[] styles=fStyle[line];
-               char[] chars=fChars[line];
-               int col=column;
-               int n=column+len;
-               
-               // expand the line if needed....
-               if(styles==null)
-                       styles=new Style[n];
-               else if(styles.length<n)
-                       styles=(Style[]) resizeArray(styles, n);
-
-               if(chars==null)
-                       chars=new char[n];
-               else if(chars.length<n)
-                       chars=(char[]) resizeArray(chars, n);
-       
-               // and create the line segments
-               Style style=styles[column];
-               List<LineSegment> segments=new ArrayList<LineSegment>();
-               for (int i = column; i < n; i++) {
-                       if(styles[i]!=style) {
-                               segments.add(new LineSegment(col,new String(chars,col,i-col),style));
-                               style=styles[i];
-                               col=i;
-                       }
-               }
-               if(col < n) {
-                       segments.add(new LineSegment(col,new String(chars,col,n-col),style));
-               }
-               return segments.toArray(new LineSegment[segments.size()]);
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.text.ITerminalTextData#getChar(int, int)
-        */
-       public char getChar(int line, int column) {
-               assert column<fWidth || throwRuntimeException();
-               if(fChars[line]==null||column>=fChars[line].length)
-                       return 0;
-               return fChars[line][column];
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.text.ITerminalTextData#getStyle(int, int)
-        */
-       public Style getStyle(int line, int column) {
-               assert column<fWidth || throwRuntimeException();
-               if(fStyle[line]==null || column>=fStyle[line].length)
-                       return null;
-               return fStyle[line][column];
-       }
-       
-       void ensureLineLength(int iLine, int length) {
-               if(length>fWidth)
-                       throw new RuntimeException();
-               if(fChars[iLine]==null) {
-                       fChars[iLine]=new char[length];
-               } else if(fChars[iLine].length<length) {
-                       fChars[iLine]=(char[]) resizeArray(fChars[iLine],length);
-               }
-               if(fStyle[iLine]==null) {
-                       fStyle[iLine]=new Style[length];
-               } else if(fStyle[iLine].length<length) {
-                       fStyle[iLine]=(Style[]) resizeArray(fStyle[iLine],length);
-               }
-       }
-       
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.text.ITerminalTextData#setChar(int, int, char, org.eclipse.tm.internal.terminal.text.Style)
-        */
-       public void setChar(int line, int column, char c, Style style) {
-               ensureLineLength(line,column+1);
-               fChars[line][column]=c;
-               fStyle[line][column]=style;             
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.text.ITerminalTextData#setChars(int, int, char[], org.eclipse.tm.internal.terminal.text.Style)
-        */
-       public void setChars(int line, int column, char[] chars, Style style) {
-               setChars(line,column,chars,0,chars.length,style);
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.text.ITerminalTextData#setChars(int, int, char[], int, int, org.eclipse.tm.internal.terminal.text.Style)
-        */
-       public void setChars(int line, int column, char[] chars, int start, int len, Style style) {
-               ensureLineLength(line,column+len);
-               for (int i = 0; i < len; i++) {
-                       fChars[line][column+i]=chars[i+start];
-                       fStyle[line][column+i]=style;           
-               }
-       }
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.text.ITerminalTextData#scroll(int, int, int)
-        */
-       public void scroll(int startLine, int size, int shift) {
-               assert startLine+size <= getHeight() || throwRuntimeException();
-               if(shift<0) {
-                       // move the region up
-                       // shift is negative!!
-                       for (int i = startLine; i < startLine+size+shift; i++) {
-                               fChars[i]=fChars[i-shift];
-                               fStyle[i]=fStyle[i-shift];
-                               fWrappedLines.set(i, fWrappedLines.get(i-shift));
-                       }
-                       // then clean the opened lines
-                       cleanLines(Math.max(startLine, startLine+size+shift),Math.min(-shift, getHeight()-startLine));
-//                     cleanLines(Math.max(0, startLine+size+shift),Math.min(-shift, getHeight()-startLine));
-               } else {
-                       for (int i = startLine+size-1; i >=startLine && i-shift>=0; i--) {
-                               fChars[i]=fChars[i-shift];
-                               fStyle[i]=fStyle[i-shift];
-                               fWrappedLines.set(i, fWrappedLines.get(i-shift));
-                       }
-                       cleanLines(startLine, Math.min(shift, getHeight()-startLine));
-               }
-       }
-       /**
-        * Replaces the lines with new empty data
-        * @param line
-        * @param len
-        */
-       private void cleanLines(int line, int len) {
-               for (int i = line; i < line+len; i++) {
-                       cleanLine(i);
-               }
-       }
-       
-       /*
-        * @return a text representation of the object.
-        * Lines are separated by '\n'. No style information is returned.
-        */
-       public String toString() {
-               StringBuffer buff=new StringBuffer();
-               for (int line = 0; line < getHeight(); line++) {
-                       if(line>0)
-                               buff.append("\n"); //$NON-NLS-1$
-                       for (int column = 0; column < fWidth; column++) {
-                               buff.append(getChar(line, column));
-                       }
-               }
-               return buff.toString();
-       }
-
-
-       public ITerminalTextDataSnapshot makeSnapshot() {
-               throw new UnsupportedOperationException();
-       }
-
-       public void addLine() {
-               if(fMaxHeight>0 && getHeight()<fMaxHeight) {
-                       setDimensions(getHeight()+1, getWidth());
-               } else {
-                       scroll(0,getHeight(),-1);
-               }
-       }
-
-       public void copy(ITerminalTextData source) {
-               fWidth=source.getWidth();
-               int n=source.getHeight();
-               if(getHeight()!=n) {
-                       fChars=new char[n][];
-                       fStyle=new Style[n][];
-               }
-               for (int i = 0; i < n; i++) {
-                       copyLine(source, i, i);
-               }
-               fHeight=n;
-               fCursorLine=source.getCursorLine();
-               fCursorColumn=source.getCursorColumn();
-       }
-       public void copyRange(ITerminalTextData source, int sourceStartLine, int destStartLine,int length) {
-               for (int i = 0; i < length; i++) {
-                       copyLine(source, i+sourceStartLine, i+destStartLine);
-               }
-       }
-
-       public void copyLine(ITerminalTextData source, int sourceLine, int destLine) {
-               fChars[destLine]=source.getChars(sourceLine);
-               fStyle[destLine]=source.getStyles(sourceLine);
-               fWrappedLines.set(destLine, source.isWrappedLine(sourceLine));
-       }
-
-       public char[] getChars(int line) {
-               if(fChars[line]==null)
-                       return null;
-               return fChars[line].clone();
-       }
-
-       public Style[] getStyles(int line) {
-               if(fStyle[line]==null)
-                       return null;
-               return fStyle[line].clone();
-       }
-
-       public void setLine(int line, char[] chars, Style[] styles) {
-               fChars[line]=chars.clone();
-               fStyle[line]=styles.clone();
-               fWrappedLines.clear(line);
-       }
-
-       public void setMaxHeight(int height) {
-               fMaxHeight=height;
-       }
-
-       public int getMaxHeight() {
-               return fMaxHeight;
-       }
-
-       public void cleanLine(int line) {
-               fChars[line]=null;
-               fStyle[line]=null;
-               fWrappedLines.clear(line);
-       }
-       public int getCursorColumn() {
-               return fCursorColumn;
-       }
-       public int getCursorLine() {
-               return fCursorLine;
-       }
-       public void setCursorColumn(int column) {
-               fCursorColumn=column;
-       }
-       public void setCursorLine(int line) {
-               fCursorLine=line;
-       }
-       public boolean isWrappedLine(int line) {
-               return fWrappedLines.get(line);
-       }
-       public void setWrappedLine(int line) {
-               fWrappedLines.set(line);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataWindow.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataWindow.java
deleted file mode 100644 (file)
index 52f351a..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Anton Leherbauer (Wind River) - [453393] Add support for copying wrapped lines without line break
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataSnapshot;
-import org.eclipse.tm.terminal.model.LineSegment;
-import org.eclipse.tm.terminal.model.Style;
-
-/**
- * This class stores the data only within a window {@link #setWindow(int, int)} and 
- * {@link #getWindowStartLine()} and {@link #getWindowSize()}. Everything outside 
- * the is <code>char=='\000'</code> and <code>style=null</code>.
- *
- */
-public class TerminalTextDataWindow implements ITerminalTextData {
-       final ITerminalTextData fData;
-       int fWindowStartLine;
-       int fWindowSize;
-       int fHeight;
-       int fMaxHeight;
-       public TerminalTextDataWindow(ITerminalTextData data) {
-               fData=data;
-       }
-       public TerminalTextDataWindow() {
-               this(new TerminalTextDataStore());
-       }
-       /**
-        * This is used in asserts to throw an {@link RuntimeException}.
-        * This is useful for tests.
-        * @return never -- throws an exception
-        */
-       private boolean throwRuntimeException() {
-               throw new RuntimeException();
-       }
-       /**
-        * @param line
-        * @return true if the line is within the window
-        */
-       boolean isInWindow(int line) {
-               return line>=fWindowStartLine && line<fWindowStartLine+fWindowSize;
-       }
-       public char getChar(int line, int column) {
-               if(!isInWindow(line))
-                       return 0;
-               return fData.getChar(line-fWindowStartLine, column);
-       }
-
-       public char[] getChars(int line) {
-               if(!isInWindow(line))
-                       return null;
-               return fData.getChars(line-fWindowStartLine);
-       }
-
-       public int getHeight() {
-               return fHeight;
-       }
-
-       public LineSegment[] getLineSegments(int line, int startCol, int numberOfCols) {
-               if(!isInWindow(line))
-                       return new LineSegment[]{new LineSegment(startCol,new String(new char[numberOfCols]),null)};
-               return fData.getLineSegments(line-fWindowStartLine, startCol, numberOfCols);
-       }
-
-       public int getMaxHeight() {
-               return fMaxHeight;
-       }
-
-       public Style getStyle(int line, int column) {
-               if(!isInWindow(line))
-                       return null;
-               return fData.getStyle(line-fWindowStartLine, column);
-       }
-
-       public Style[] getStyles(int line) {
-               if(!isInWindow(line))
-                       return null;
-               return fData.getStyles(line-fWindowStartLine);
-       }
-
-       public int getWidth() {
-               return fData.getWidth();
-       }
-
-       public ITerminalTextDataSnapshot makeSnapshot() {
-               throw new UnsupportedOperationException();
-       }
-       public void addLine() {
-               if(fMaxHeight>0 && getHeight()<fMaxHeight) {
-                       setDimensions(getHeight()+1, getWidth());
-               } else {
-                       scroll(0,getHeight(),-1);
-               }
-       }
-       public void copy(ITerminalTextData source) {
-               // we inherit the dimensions of the source
-               setDimensions(source.getHeight(), source.getWidth());
-               int n=Math.min(fWindowSize, source.getHeight()-fWindowStartLine);
-               if(n>0)
-                       fData.copyRange(source, fWindowStartLine, 0, n);
-       }
-       public void copyRange(ITerminalTextData source, int sourceStartLine, int destStartLine, int length) {
-               int n=length;
-               int dStart=destStartLine-fWindowStartLine;
-               int sStart=sourceStartLine;
-               // if start outside our range, cut the length to copy
-               if(dStart<0) {
-                       n+=dStart;
-                       sStart-=dStart;
-                       dStart=0;
-               }
-               // do not exceed the window size
-               n=Math.min(n,fWindowSize);
-               if(n>0)
-                       fData.copyRange(source, sStart, dStart, n);
-               
-       }
-       public void copyLine(ITerminalTextData source, int sourceLine, int destLine) {
-               if(isInWindow(destLine))
-                       fData.copyLine(source, sourceLine, destLine-fWindowStartLine);
-       }
-       public void scroll(int startLine, int size, int shift) {
-               assert (startLine>=0 && startLine+size<=fHeight) || throwRuntimeException();
-               int n=size;
-               int start=startLine-fWindowStartLine;
-               // if start outside our range, cut the length to copy
-               if(start<0) {
-                       n+=start;
-                       start=0;
-               }
-               n=Math.min(n,fWindowSize-start);
-               // do not exceed the window size
-               if(n>0)
-                       fData.scroll(start, n, shift);
-       }
-       public void setChar(int line, int column, char c, Style style) {
-               if(!isInWindow(line))
-                       return;
-               fData.setChar(line-fWindowStartLine, column, c, style);
-       }
-       public void setChars(int line, int column, char[] chars, int start, int len, Style style) {
-               if(!isInWindow(line))
-                       return;
-               fData.setChars(line-fWindowStartLine, column, chars, start, len, style);
-       }
-       public void setChars(int line, int column, char[] chars, Style style) {
-               if(!isInWindow(line))
-                       return;
-               fData.setChars(line-fWindowStartLine, column, chars, style);
-       }
-       public void setDimensions(int height, int width) {
-               assert height>=0 || throwRuntimeException();
-               fData.setDimensions(fWindowSize, width);
-               fHeight=height;
-       }
-       public void setMaxHeight(int height) {
-               fMaxHeight=height;
-       }
-       public void setWindow(int startLine, int size) {
-               fWindowStartLine=startLine;
-               fWindowSize=size;
-               fData.setDimensions(fWindowSize, getWidth());
-       }
-       public int getWindowStartLine() {
-               return fWindowStartLine;
-       }
-       public int getWindowSize() {
-               return fWindowSize;
-       }
-       public void setHeight(int height) {
-               fHeight = height;
-       }
-       public void cleanLine(int line) {
-               if(isInWindow(line))
-                       fData.cleanLine(line-fWindowStartLine);
-       }
-       public int getCursorColumn() {
-               return fData.getCursorColumn();
-       }
-       public int getCursorLine() {
-               return fData.getCursorLine();
-       }
-       public void setCursorColumn(int column) {
-               fData.setCursorColumn(column);
-       }
-       public void setCursorLine(int line) {
-               fData.setCursorLine(line);
-       }
-       public boolean isWrappedLine(int line) {
-               if(isInWindow(line))
-                       return fData.isWrappedLine(line - fWindowStartLine);
-               return false;
-       }
-       public void setWrappedLine(int line) {
-               if(isInWindow(line))
-                       fData.setWrappedLine(line - fWindowStartLine);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/preferences/ITerminalConstants.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/preferences/ITerminalConstants.java
deleted file mode 100644 (file)
index 907c79d..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.preferences;
-
-/**
- * Constants for Terminal Preferences.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface ITerminalConstants {
-
-       public static final String  PREF_HAS_MIGRATED      = "TerminalPref.migrated"; //$NON-NLS-1$
-
-       public static final String  PREF_BUFFERLINES       = "TerminalPrefBufferLines"; //$NON-NLS-1$
-       public static final String  PREF_INVERT_COLORS     = "TerminalPrefInvertColors"; //$NON-NLS-1$
-       public static final int     DEFAULT_BUFFERLINES    = 1000;
-       public static final boolean DEFAULT_INVERT_COLORS  = false;
-
-       public static final String  FONT_DEFINITION = "terminal.views.view.font.definition"; //$NON-NLS-1$
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/preferences/TerminalPreferenceInitializer.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/preferences/TerminalPreferenceInitializer.java
deleted file mode 100644 (file)
index 920d5e4..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
- * Martin Oberhuber (Wind River) - [436612] Restore Eclipse 3.4 compatibility
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.tm.internal.terminal.control.impl.TerminalPlugin;
-
-/**
- * Terminal Preference Initializer.
- *  
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @noreference This class is not intended to be referenced by clients.
- */
-public class TerminalPreferenceInitializer extends AbstractPreferenceInitializer {
-
-       public TerminalPreferenceInitializer() {
-       }
-
-       public void initializeDefaultPreferences() {
-               //DefaultScope.INSTANCE was added in Eclipse 3.7
-               IEclipsePreferences defaultPrefs = DefaultScope.INSTANCE.getNode(TerminalPlugin.PLUGIN_ID);
-               defaultPrefs.putBoolean(ITerminalConstants.PREF_INVERT_COLORS, ITerminalConstants.DEFAULT_INVERT_COLORS);
-               defaultPrefs.putInt(ITerminalConstants.PREF_BUFFERLINES, ITerminalConstants.DEFAULT_BUFFERLINES);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/preferences/TerminalPreferencePage.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/preferences/TerminalPreferencePage.java
deleted file mode 100644 (file)
index 89a2c8f..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2015 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
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.preferences;
-
-import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.IntegerFieldEditor;
-import org.eclipse.tm.internal.terminal.control.impl.TerminalMessages;
-import org.eclipse.tm.internal.terminal.control.impl.TerminalPlugin;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-/**
- * Terminal Preference Page.
- *  
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @noreference This class is not intended to be referenced by clients.
- */
-public class TerminalPreferencePage extends FieldEditorPreferencePage implements
-               IWorkbenchPreferencePage {
-    protected BooleanFieldEditor fInvertColors;
-
-       protected IntegerFieldEditor fEditorBufferSize;
-
-       public TerminalPreferencePage() {
-               super(GRID);
-       }
-       protected void createFieldEditors() {
-               setupPage();
-       }
-       public void init(IWorkbench workbench) {
-               // do nothing
-       }
-       protected void setupPage() {
-               setupData();
-               setupEditors();
-       }
-       protected void setupData() {
-               TerminalPlugin plugin;
-               IPreferenceStore preferenceStore;
-
-               plugin = TerminalPlugin.getDefault();
-               preferenceStore = plugin.getPreferenceStore();
-               setPreferenceStore(preferenceStore);
-       }
-       protected void setupEditors() {
-               fInvertColors = new BooleanFieldEditor(
-                               ITerminalConstants.PREF_INVERT_COLORS, TerminalMessages.INVERT_COLORS,
-                               getFieldEditorParent());
-               fEditorBufferSize = new IntegerFieldEditor(ITerminalConstants.PREF_BUFFERLINES,
-                               TerminalMessages.BUFFERLINES, getFieldEditorParent());
-
-               fEditorBufferSize.setValidRange(0, Integer.MAX_VALUE);
-
-               addField(fInvertColors);
-               addField(fEditorBufferSize);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/AbstractSettingsPage.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/AbstractSettingsPage.java
deleted file mode 100644 (file)
index 501f45f..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013, 2015 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.jface.fieldassist.ControlDecoration;
-import org.eclipse.jface.fieldassist.FieldDecoration;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.swt.SWT;
-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();
-
-       // Flag to control the control decorations
-       private boolean hasDecoration = false;
-
-       /* (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 <code>null</code>.
-        */
-       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 <code>null</code>.
-        * @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;
-       }
-
-       /**
-        * Sets if or if not the settings panel widgets will have control decorations
-        * or not. The method has effect only if called before {@link #createControl(org.eclipse.swt.widgets.Composite)}.
-        *
-        * @param value <code>True</code> if the panel widgets have control decorations, <code>false</code> otherwise.
-        */
-       public final void setHasControlDecoration(boolean value) {
-               this.hasDecoration = value;
-       }
-
-       /**
-        * Returns if or if not the settings panel widgets will have control
-        * decorations or not.
-        *
-        * @return <code>True</code> if the panel widgets have control decorations, <code>false</code> otherwise.
-        */
-       protected final boolean hasControlDecoration() {
-               return hasDecoration;
-       }
-
-       /**
-        * Creates a new instance of a {@link ControlDecoration} object associated with
-        * the given control. The method is called after the control has been created.
-        *
-        * @param control The control. Must not be <code>null</code>.
-        * @return The control decoration object instance.
-        */
-       protected final ControlDecoration createControlDecoration(Control control) {
-               Assert.isNotNull(control);
-               if (!hasDecoration) return null;
-               ControlDecoration controlDecoration = new ControlDecoration(control, getControlDecorationPosition());
-               controlDecoration.setShowOnlyOnFocus(false);
-               control.setData("controlDecoration", controlDecoration); //$NON-NLS-1$
-               return controlDecoration;
-       }
-
-       /**
-        * Returns the control decoration position. The default is
-        * {@link SWT#TOP} | {@link SWT#LEFT}.
-        *
-        * @return The control position.
-        */
-       protected int getControlDecorationPosition() {
-               return SWT.TOP | SWT.LEFT;
-       }
-
-       /**
-        * Updates the control decoration of the given control to represent the given message
-        * and message type. If the message is <code>null</code> or the message type is
-        * {@link IMessageProvider#NONE} no decoration will be shown.
-        *
-        * @param control The control. Must not be <code>null</code>.
-        * @param message The message.
-        * @param messageType The message type.
-        */
-       protected final void updateControlDecoration(Control control, String message, int messageType) {
-               Assert.isNotNull(control);
-
-               ControlDecoration controlDecoration = (ControlDecoration)control.getData("controlDecoration"); //$NON-NLS-1$
-               if (controlDecoration != null) {
-                       // The description is the same as the message
-                       controlDecoration.setDescriptionText(message);
-
-                       // The icon depends on the message type
-                       FieldDecorationRegistry registry = FieldDecorationRegistry.getDefault();
-
-                       // Determine the id of the decoration to show
-                       String decorationId = FieldDecorationRegistry.DEC_INFORMATION;
-                       if (messageType == IMessageProvider.ERROR) {
-                               decorationId = FieldDecorationRegistry.DEC_ERROR;
-                       } else if (messageType == IMessageProvider.WARNING) {
-                               decorationId = FieldDecorationRegistry.DEC_WARNING;
-                       }
-
-                       // Get the field decoration
-                       FieldDecoration fieldDeco = registry.getFieldDecoration(decorationId);
-                       if (fieldDeco != null) {
-                               controlDecoration.setImage(fieldDeco.getImage());
-                       }
-
-                       if (message == null || messageType == IMessageProvider.NONE) {
-                               controlDecoration.hide();
-                       }
-                       else {
-                               controlDecoration.show();
-                       }
-               }
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/ISettingsPage.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/ISettingsPage.java
deleted file mode 100644 (file)
index a00d71d..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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:
- * 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
- *
- * TODO: Michael Scharf: provide a long description of a wizard
- * TODO: Michael Scharf: allow multiple pages to be generated
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
- * part of a work in progress. There is no guarantee that this API will
- * work or that it will remain the same. Please do not use this API without
- * consulting with the <a href="http://www.eclipse.org/tm/">Target Management</a> team.
- * </p>
- */
-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 <code>null</code>
-                */
-               public void onSettingsPageChanged(Control control);
-       }
-
-       /**
-        * Create a page to be shown in a dialog or wizard to setup the connection.
-        * @param parent
-        */
-       void createControl(Composite parent);
-
-       /**
-        * Called before the page is shown. Loads the state from the {@link ITerminalConnector}.
-        */
-       void loadSettings();
-
-       /**
-        * Called when the OK button is pressed.
-        */
-       void saveSettings();
-
-       /**
-        * @return true if the
-        */
-       boolean validateSettings();
-
-       /**
-        * Adds the given listener.
-        * <p>
-        * Has not effect if the same listener is already registered.
-        *
-        * @param listener The listener. Must not be <code>null</code>.
-        */
-       public void addListener(Listener listener);
-
-       /**
-        * Removes the given listener.
-        * <p>
-        * Has no effect if the same listener was not registered.
-        *
-        * @param listener The listener. Must not be <code>null</code>.
-        */
-       public void removeListener(Listener listener);
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/ISettingsStore.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/ISettingsStore.java
deleted file mode 100644 (file)
index b7dd859..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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: 
- * 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;
-
-/**
- * A simple interface to a store to persist the state of a connection. 
- * 
- * @author Michael Scharf
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
- * part of a work in progress. There is no guarantee that this API will
- * work or that it will remain the same. Please do not use this API without
- * consulting with the <a href="http://www.eclipse.org/tm/">Target Management</a> team.
- * </p>
- */
-public interface ISettingsStore {
-       /**
-        * @param key alpha numeric key, may contain dots (.)
-        * @return value
-        */
-       String get(String key);
-
-       /**
-        * @param key alpha numeric key, may contain dots (.)
-        * @param defaultValue
-        * @return the value or the default
-        */
-       String get(String key, String defaultValue);
-
-       /**
-        * Save a string value
-        * @param key alpha numeric key, may contain dots (.)
-        * @param value
-        */
-       void put(String key, String value);
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/ITerminalConnector.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/ITerminalConnector.java
deleted file mode 100644 (file)
index 242726e..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [261486][api][cleanup] Mark @noimplement interfaces as @noextend
- * Uwe Stieber (Wind River) - [282996] [terminal][api] Add "hidden" attribute to terminal connector extension point
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.provisional.api;
-
-import java.io.OutputStream;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl;
-
-/**
- * A contributed connection type to manage a single connection.
- *
- * Implementations of this class are contributed through the
- * <code>org.eclipse.tm.terminal.control.connectors</code> extension point. This
- * class gives access to the static markup of a terminal connector extension as
- * well as providing the lifecycle management for the dynamically loaded
- * {@link TerminalConnectorImpl} instance, which performs the actual
- * communications. This pattern allows for lazy initialization, bundle
- * activation and class loading of the actual {@link TerminalConnectorImpl}
- * instance.
- *
- * Clients can get terminal connector instances from the
- * {@link TerminalConnectorExtension} class, or from
- * {@link ITerminalViewControl#getTerminalConnector()} when running inside an
- * active terminal widget.
- *
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- *
- * @author Michael Scharf
- *         <p>
- *         <strong>EXPERIMENTAL</strong>. This class or interface has been added
- *         as part of a work in progress. There is no guarantee that this API
- *         will work or that it will remain the same. Please do not use this API
- *         without consulting with the <a
- *         href="http://www.eclipse.org/tm/">Target Management</a> team.
- *         </p>
- */
-public interface ITerminalConnector extends IAdaptable {
-       /**
-        * @return an ID of this connector. The id from the plugin.xml.
-        * @since org.eclipse.tm.terminal 2.0
-        */
-       String getId();
-
-       /**
-        * @return <code>null</code> the name (as specified in the plugin.xml)
-        * @since org.eclipse.tm.terminal 2.0
-        */
-       String getName();
-
-       /**
-        * @return <code>True</code> if the connector is not visible in user
-        *         selections.
-        * @since org.eclipse.tm.terminal 3.0.1
-        */
-       boolean isHidden();
-
-       /**
-        * @return true if the {@link TerminalConnectorImpl} has been initialized.
-        * If there was an initialization error, {@link #getInitializationErrorMessage()}
-        * returns the error message.
-        * @since org.eclipse.tm.terminal 2.0
-        */
-       boolean isInitialized();
-
-       /**
-        * This method initializes the connector if it is not initialized!
-        * If the connector was initialized successfully, <code>null</code> is
-        * returned. Otherwise an error message describing the problem is returned.
-        * @return <code>null</code> or a localized error message.
-        * @since org.eclipse.tm.terminal 2.0
-        */
-       String getInitializationErrorMessage();
-
-       /**
-        * Connect using the current state of the settings.
-        * @param control Used to inform the UI about state changes and messages from the connection.
-        */
-       void connect(ITerminalControl control);
-
-       /**
-        * Disconnect if connected. Else do nothing.
-        */
-       void disconnect();
-
-       /**
-        * @return true if a local echo is needed.
-        * TODO:Michael Scharf: this should be handed within the connection....
-        */
-       boolean isLocalEcho();
-
-    /**
-     * Notify the remote site that the size of the terminal has changed.
-     * @param newWidth
-     * @param newHeight
-     */
-    void setTerminalSize(int newWidth, int newHeight);
-
-    /**
-     * @return the terminal to remote stream (bytes written to this stream will
-     * be sent to the remote site). For the stream in the other direction (remote to
-     * terminal see {@link ITerminalControl#getRemoteToTerminalOutputStream()}
-        * @since org.eclipse.tm.terminal 2.0
-     */
-    OutputStream getTerminalToRemoteStream();
-
-       /**
-        * Load the state of this connection. Is typically called before
-        * {@link #connect(ITerminalControl)}.
-        *
-        * @param store a string based data store. Short keys like "foo" can be used to
-        * store the state of the connection.
-        */
-       void load(ISettingsStore store);
-
-       /**
-        * When the view or dialog containing the terminal is closed,
-        * the state of the connection is saved into the settings store <code>store</code>
-        * @param store
-        */
-       void save(ISettingsStore store);
-       
-       /**
-        * Set or reset the settings store to the default values.
-        */
-       void setDefaultSettings();
-
-       /**
-        * @return A string that represents the settings of the connection. This representation
-        * may be shown in the status line of the terminal view.
-        */
-       String getSettingsSummary();
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/ITerminalControl.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/ITerminalControl.java
deleted file mode 100644 (file)
index 79b3cb8..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [204796] Terminal should allow setting the encoding to use
- * Martin Oberhuber (Wind River) - [261486][api][cleanup] Mark @noimplement interfaces as @noextend
- * Anton Leherbauer (Wind River) - [433751] Add option to enable VT100 line wrapping mode
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.provisional.api;
-
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Represents the terminal view as seen by a terminal connection.
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as part
- * of a work in progress. There is no guarantee that this API will work or that
- * it will remain the same. Please do not use this API without consulting with
- * the <a href="http://www.eclipse.org/tm/">Target Management</a> team.
- * </p>
- *
- * @author Michael Scharf
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- */
-public interface ITerminalControl {
-
-       /**
-        * @return the current state of the connection
-        */
-       TerminalState getState();
-
-       /**
-        * @param state
-        */
-       void setState(TerminalState state);
-
-       /**
-        * Setup the terminal control within the given parent composite.
-        *
-        * @param parent The parent composite. Must not be <code>null</code>.
-        */
-       void setupTerminal(Composite parent);
-
-       /**
-        * A shell to show dialogs.
-        * @return the shell in which the terminal is shown.
-        */
-       Shell getShell();
-
-       /**
-        * Set the encoding that the Terminal uses to decode bytes from the
-        * Terminal-to-remote-Stream into Unicode Characters used in Java; or, to
-        * encode Characters typed by the user into bytes sent over the wire to the
-        * remote.
-        *
-        * By default, the local Platform Default Encoding is used. Also note that
-        * the encoding must not be applied in case the terminal stream is processed
-        * by some data transfer protocol which requires binary data.
-        *
-        * Validity of the encoding set here is not checked. Since some encodings do
-        * not cover the entire range of Unicode characters, it can happen that a
-        * particular Unicode String typed in by the user can not be encoded into a
-        * byte Stream with the encoding specified. and UnsupportedEncodingException
-        * will be thrown in this case at the time the String is about to be
-        * processed.
-        *
-        * The concrete encoding to use can either be specified manually by a user,
-        * by means of a dialog, or a connector can try to obtain it automatically
-        * from the remote side e.g. by evaluating an environment variable such as
-        * LANG on UNIX systems.
-        *
-        * @since org.eclipse.tm.terminal 2.0
-        */
-       void setEncoding(String encoding) throws UnsupportedEncodingException;
-
-       /**
-        * Return the current encoding. That's interesting when the previous
-        * setEncoding() call failed and the fallback default encoding should be
-        * queried, such that e.g. a combobox with encodings to choose can be
-        * properly initialized.
-        *
-        * @return the current Encoding of the Terminal.
-        * @since org.eclipse.tm.terminal 2.0
-        */
-       String getEncoding();
-
-       /**
-        * Show a text in the terminal. If puts newlines at the beginning and the
-        * end.
-        *
-        * @param text TODO: Michael Scharf: Is this really needed?
-        */
-       void displayTextInTerminal(String text);
-
-       /**
-        * @return a stream used to write to the terminal. Any bytes written to this
-        * stream appear in the terminal or are interpreted by the emulator as
-        * control sequences. The stream in the opposite direction, terminal
-        * to remote is in {@link ITerminalConnector#getTerminalToRemoteStream()}.
-        */
-       OutputStream getRemoteToTerminalOutputStream();
-
-       /**
-        * Set the title of the terminal view.
-        * @param title
-        */
-       void setTerminalTitle(String title);
-
-       /**
-        * Show an error message during connect.
-        * @param msg
-        * TODO: Michael Scharf: Should be replaced by a better error notification mechanism!
-        */
-       void setMsg(String msg);
-
-       /**
-        * Sets if or if not the terminal view control should try to reconnect
-        * the terminal connection if the user hits ENTER in a closed terminal.
-        * <p>
-        * Reconnect on ENTER if terminal is closed is enabled by default.
-        * 
-        * @param on <code>True</code> to enable the reconnect, <code>false</code> to disable it.
-        */
-       void setConnectOnEnterIfClosed(boolean on);
-       
-       /**
-        * Returns if or if not the terminal view control should try to reconnect
-        * the terminal connection if the user hits ENTER in a closed terminal.
-        * 
-        * @return <code>True</code> the reconnect is enabled, <code>false</code> if disabled.
-        */
-       boolean isConnectOnEnterIfClosed();
-       
-       /**
-        * Enables VT100 line wrapping mode (default is off).
-        * This corresponds to the VT100 'eat_newline_glitch' terminal capability.
-        * If enabled, writing to the rightmost column does not cause
-        * an immediate wrap to the next line. Instead the line wrap occurs on the
-        * next output character.
-        * 
-        * @param enable  whether to enable or disable VT100 line wrapping mode
-        */
-       void setVT100LineWrapping(boolean enable);
-       
-       /**
-        * @return whether VT100 line wrapping mode is enabled
-        */
-       boolean isVT100LineWrapping();
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/Logger.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/Logger.java
deleted file mode 100644 (file)
index 437935f..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2015 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:
- * Fran Litterio (Wind River) - initial API and implementation
- * Ted Williams (Wind River) - refactored into org.eclipse namespace
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.provisional.api;
-
-import java.io.FileOutputStream;
-import java.io.PrintStream;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.tm.internal.terminal.control.impl.TerminalPlugin;
-
-/**
- * A simple logger class. Every method in this class is static, so they can be
- * called from both class and instance methods. To use this class, write code
- * like this:
- * <p>
- *
- * <pre>
- * Logger.log(&quot;something has happened&quot;);
- * Logger.log(&quot;counter is &quot; + counter);
- * </pre>
- *
- * @author Fran Litterio <francis.litterio@windriver.com>
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
- * part of a work in progress. There is no guarantee that this API will
- * work or that it will remain the same. Please do not use this API without
- * consulting with the <a href="http://www.eclipse.org/tm/">Target Management</a> team.
- * </p>
- */
-public final class Logger {
-    public static final String TRACE_DEBUG_LOG                                 = "org.eclipse.tm.terminal.control/debug/log"; //$NON-NLS-1$
-    public static final String TRACE_DEBUG_LOG_CHAR                            = "org.eclipse.tm.terminal.control/debug/log/char"; //$NON-NLS-1$
-    public static final String TRACE_DEBUG_LOG_VT100BACKEND            = "org.eclipse.tm.terminal.control/debug/log/VT100Backend"; //$NON-NLS-1$
-
-    private static PrintStream logStream;
-
-       static {
-               // Any of the three known debugging options turns on the creation of the log file
-               boolean createLogFile = TerminalPlugin.isOptionEnabled(TRACE_DEBUG_LOG)
-                                                                       || TerminalPlugin.isOptionEnabled(TRACE_DEBUG_LOG_CHAR)
-                                                                       || TerminalPlugin.isOptionEnabled(TRACE_DEBUG_LOG_VT100BACKEND);
-               
-               // Log only if tracing is enabled
-               if (createLogFile && TerminalPlugin.getDefault() != null) {
-                       IPath logFile = Platform.getStateLocation(TerminalPlugin.getDefault().getBundle());
-                       if (logFile != null && logFile.toFile().isDirectory()) {
-                               logFile = logFile.append("tmterminal.log"); //$NON-NLS-1$
-                               try {
-                                       logStream = new PrintStream(new FileOutputStream(logFile.toFile(), true));
-                               } catch (Exception ex) {
-                                       logStream = System.err;
-                                       logStream.println("Exception when opening log file -- logging to stderr!"); //$NON-NLS-1$
-                                       ex.printStackTrace(logStream);
-                               }
-                       }
-               }
-       }
-
-       /**
-        * Encodes a String such that non-printable control characters are
-        * converted into user-readable escape sequences for logging.
-        * @param message String to encode
-        * @return encoded String
-        */
-       public static final String encode(String message) {
-               boolean encoded = false;
-               StringBuffer buf = new StringBuffer(message.length()+32);
-               for (int i=0; i<message.length(); i++) {
-                       char c=message.charAt(i);
-                       switch(c) {
-                               case '\\':
-                               case '\'':
-                                       buf.append('\\'); buf.append(c); encoded=true;
-                                       break;
-                               case '\r':
-                                       buf.append('\\'); buf.append('r'); encoded=true;
-                                       break;
-                               case '\n':
-                                       buf.append('\\'); buf.append('n'); encoded=true;
-                                       break;
-                               case '\t':
-                                       buf.append('\\'); buf.append('t'); encoded=true;
-                                       break;
-                               case '\f':
-                                       buf.append('\\'); buf.append('f'); encoded=true;
-                                       break;
-                               case '\b':
-                                       buf.append('\\'); buf.append('b'); encoded=true;
-                                       break;
-                               default:
-                                       if (c <= '\u000f') {
-                                               buf.append('\\'); buf.append('x'); buf.append('0');
-                                               buf.append(Integer.toHexString(c));
-                                               encoded=true;
-                                       } else if (c>=' ' && c<'\u007f') {
-                                               buf.append(c);
-                                       } else if (c <= '\u00ff') {
-                                                       buf.append('\\'); buf.append('x');
-                                                       buf.append(Integer.toHexString(c));
-                                                       encoded=true;
-                                       } else {
-                                               buf.append('\\'); buf.append('u');
-                                               if (c<='\u0fff') {
-                                                       buf.append('0');
-                                               }
-                                               buf.append(Integer.toHexString(c));
-                                               encoded=true;
-                                       }
-                       }
-               }
-               if (encoded) {
-                       return buf.toString();
-               }
-               return message;
-       }
-
-       /**
-        * Checks if logging is enabled.
-        * @return true if logging is enabled.
-        */
-       public static final boolean isLogEnabled() {
-               return (logStream!=null);
-       }
-
-       /**
-        * Logs the specified message. Do not append a newline to parameter
-        * <i>message</i>. This method does that for you.
-        *
-     * @param message           A String containing the message to log.
-        */
-       public static final void log(String message) {
-               if (logStream != null) {
-                       // Read my own stack to get the class name, method name, and line
-                       // number of
-                       // where this method was called.
-
-                       StackTraceElement caller = new Throwable().getStackTrace()[1];
-                       int lineNumber = caller.getLineNumber();
-                       String className = caller.getClassName();
-                       String methodName = caller.getMethodName();
-                       className = className.substring(className.lastIndexOf('.') + 1);
-
-            logStream.println(className + "." + methodName + ":" + lineNumber + ": " + message);   //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-                       logStream.flush();
-               }
-       }
-
-       /**
-        * Writes a stack trace for an exception to both Standard Error and to the
-        * log file.
-        */
-       public static final void logException(Exception ex) {
-               // log in eclipse error log
-               if (TerminalPlugin.getDefault() != null) {
-                       TerminalPlugin.getDefault().getLog().log(new Status(IStatus.ERROR, TerminalPlugin.PLUGIN_ID, IStatus.OK, ex.getMessage(), ex));
-               } else {
-                       ex.printStackTrace();
-               }
-               // Additional Tracing for debug purposes:
-               // Read my own stack to get the class name, method name, and line number
-               // of where this method was called
-               if(logStream!=null) {
-                       StackTraceElement caller = new Throwable().getStackTrace()[1];
-                       int lineNumber = caller.getLineNumber();
-                       String className = caller.getClassName();
-                       String methodName = caller.getMethodName();
-                       className = className.substring(className.lastIndexOf('.') + 1);
-
-                       PrintStream tmpStream = System.err;
-
-                       if (logStream != null) {
-                               tmpStream = logStream;
-                       }
-
-                       tmpStream.println(className
-                                       + "." + methodName + ":" + lineNumber + ": " + //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-                                       "Caught exception: " + ex); //$NON-NLS-1$
-                       ex.printStackTrace(tmpStream);
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/NullSettingsStore.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/NullSettingsStore.java
deleted file mode 100644 (file)
index e86f157..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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;
-
-/**
- * A settings store implementation doing nothing.
- */
-public class NullSettingsStore implements ISettingsStore {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore#get(java.lang.String)
-        */
-       @Override
-       public String get(String key) {
-               return null;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore#get(java.lang.String, java.lang.String)
-        */
-       @Override
-       public String get(String key, String defaultValue) {
-               return defaultValue;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore#put(java.lang.String, java.lang.String)
-        */
-       @Override
-       public void put(String key, String value) {
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/TerminalConnectorExtension.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/TerminalConnectorExtension.java
deleted file mode 100644 (file)
index fe494bc..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Uwe Stieber (Wind River) - [282996] [terminal][api] Add "hidden" attribute to terminal connector extension point
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.provisional.api;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.RegistryFactory;
-import org.eclipse.tm.internal.terminal.connector.TerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl;
-
-/**
- * A factory to get {@link ITerminalConnector} instances.
- *
- * @author Michael Scharf
- *
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
- *
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
- * part of a work in progress. There is no guarantee that this API will work or
- * that it will remain the same. Please do not use this API without consulting
- * with the <a href="http://www.eclipse.org/tm/">Target Management</a>
- * team.
- * </p>
- */
-public class TerminalConnectorExtension {
-       static private ITerminalConnector makeConnector(final IConfigurationElement config) {
-               String id = config.getAttribute("id"); //$NON-NLS-1$
-               if(id==null || id.length()==0)
-                       id=config.getAttribute("class"); //$NON-NLS-1$
-               String name= config.getAttribute("name"); //$NON-NLS-1$
-               if(name==null || name.length()==0) {
-                       name=id;
-               }
-               String hidden = config.getAttribute("hidden"); //$NON-NLS-1$
-               boolean isHidden = hidden != null ? new Boolean(hidden).booleanValue() : false;
-               TerminalConnector.Factory factory=new TerminalConnector.Factory(){
-                       public TerminalConnectorImpl makeConnector() throws Exception {
-                               return (TerminalConnectorImpl)config.createExecutableExtension("class"); //$NON-NLS-1$
-                       }};
-               return new TerminalConnector(factory,id,name, isHidden);
-       }
-
-       /**
-        * Return a specific terminal connector for a given connector id. The
-        * terminal connector is not yet instantiated to any real connection.
-        *
-        * @param id the id of the terminal connector in the
-        *            <code>org.eclipse.tm.terminal.control.connectors</code>
-        *            extension point
-        * @return a new ITerminalConnector with id or <code>null</code> if there
-        *         is no extension with that id.
-        * @since org.eclipse.tm.terminal 2.0
-        */
-       public static ITerminalConnector makeTerminalConnector(String id) {
-               IConfigurationElement[] config = RegistryFactory.getRegistry().getConfigurationElementsFor("org.eclipse.tm.terminal.control.connectors"); //$NON-NLS-1$
-               for (int i = 0; i < config.length; i++) {
-                       if(id.equals(config[i].getAttribute("id"))) { //$NON-NLS-1$
-                               return makeConnector(config[i]);
-                       }
-               }
-               return null;
-       }
-       /**
-        * Return a list of available terminal connectors (connection types).
-        *
-        * The terminal connectors returned are not yet instantiated to any real
-        * connection. Each terminal connector can connect to one remote system at a
-        * time.
-        *
-        * @return a new list of {@link ITerminalConnector} instances defined in the
-        *         <code>org.eclipse.tm.terminal.control.connectors</code>
-        *         extension point
-        * @since org.eclipse.tm.terminal 2.0 return value is ITerminalConnector[]
-        */
-       public static ITerminalConnector[] makeTerminalConnectors() {
-               IConfigurationElement[] config = RegistryFactory.getRegistry().getConfigurationElementsFor("org.eclipse.tm.terminal.control.connectors"); //$NON-NLS-1$
-               List<ITerminalConnector> result=new ArrayList<ITerminalConnector>();
-               for (int i = 0; i < config.length; i++) {
-                       result.add(makeConnector(config[i]));
-               }
-               return result.toArray(new ITerminalConnector[result.size()]);
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/TerminalState.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/TerminalState.java
deleted file mode 100644 (file)
index 14051ae..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Michael Scharf (Wind River) - [262996] get rid of TerminalState.OPENED
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.provisional.api;
-
-/**
- * Represent the sate of a terminal connection.
- * In java 1.5 this would be an enum.
- * @author Michael Scharf
- *
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
- * part of a work in progress. There is no guarantee that this API will
- * work or that it will remain the same. Please do not use this API without
- * consulting with the <a href="http://www.eclipse.org/tm/">Target Management</a> team.
- * </p>
- */
-public class TerminalState {
-       /**
-        * The terminal is not connected.
-        */
-       public final static TerminalState CLOSED=new TerminalState("CLOSED"); //$NON-NLS-1$
-
-       /**
-        * The terminal is about to connect.
-        */
-       public final static TerminalState CONNECTING=new TerminalState("CONNECTING..."); //$NON-NLS-1$
-
-       /**
-        * The terminal is connected.
-        */
-       public final static TerminalState CONNECTED=new TerminalState("CONNECTED"); //$NON-NLS-1$
-
-       private final String fState;
-
-       public TerminalState(String state) {
-               fState = state;
-       }
-
-       public String toString() {
-               return fState;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/provider/TerminalConnectorImpl.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/provisional/api/provider/TerminalConnectorImpl.java
deleted file mode 100644 (file)
index a358335..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - [225853][api] Provide more default functionality in TerminalConnectorImpl 
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.provisional.api.provider;
-
-import java.io.OutputStream;
-
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-
-/**
- * Abstract base class for all terminal connector implementations to be
- * registered via the <code>org.eclipse.tm.terminal.control.connectors</code>
- * extension point.
- *
- * @since org.eclipse.tm.terminal 2.0
- */
-public abstract class TerminalConnectorImpl {
-
-       /**
-        * The TerminalControl associated with this connector.
-        * Required for advertising state changes when needed.
-        */
-       protected ITerminalControl fControl;
-
-       /**
-        * Initialize this connector. This is called once after the constructor, in
-        * order to perform any required initializations such as loading required
-        * native libraries. Any work that may lead to runtime exceptions should be
-        * done in this method rather than in the constructor.
-        *
-        * @throws Exception when the connector fails to initialize (due to missing
-        *             required libraries, for instance).
-        */
-       public void initialize() throws Exception {
-       }
-
-       /**
-        * Connect using the current state of the settings.
-        * 
-        * This method is designed to be overridden by actual implementations, in
-        * order to open the streams required for communicating with the remote
-        * side. Extenders must call <code>super.connect(control)</code> as the
-        * first thing they are doing.
-        * 
-        * @param control Used to inform the UI about state changes and messages
-        *            from the connection.
-        */
-       public void connect(ITerminalControl control) {
-               Logger.log("entered."); //$NON-NLS-1$
-               fControl = control;
-       }
-
-       /**
-        * Disconnect if connected. Else do nothing. Has to set the state of the
-        * {@link ITerminalControl} when finished disconnecting.
-        */
-       public final void disconnect() {
-               Logger.log("entered."); //$NON-NLS-1$
-               doDisconnect();
-               fControl.setState(TerminalState.CLOSED);
-       }
-
-       /**
-        * Disconnect if connected. Else do nothing. Clients should override to
-        * perform any extra work needed for disconnecting.
-        */
-       protected void doDisconnect() {
-               // Do nothing by default
-       }
-
-    /**
-     * @return the terminal to remote stream (bytes written to this stream will
-     * be sent to the remote site). For the stream in the other direction (remote to
-     * terminal see {@link ITerminalControl#getRemoteToTerminalOutputStream()}
-     */
-       abstract public OutputStream getTerminalToRemoteStream();
-
-       /**
-        * @return A string that represents the settings of the connection. This representation
-        * may be shown in the status line of the terminal view.
-        */
-       abstract public String getSettingsSummary();
-
-       /**
-        * Test if local echo is needed. The default implementation returns
-        * <code>false</code>. Override to modify this behavior.
-        *
-        * @return true if a local echo is needed. TODO:Michael Scharf: this should
-        *         be handed within the connection....
-        */
-       public boolean isLocalEcho() {
-               return false;
-       }
-
-       /**
-        * Set or reset the settings store to the default values.
-        */
-       public void setDefaultSettings() {
-               // do nothing by default
-       }
-
-       /**
-        * Load the state or settings of this connection. Is typically called before
-        * {@link #connect(ITerminalControl)}.
-        *
-        * Connectors that have nothing to configure do not need to implement this.
-        * Those terminals that do have configuration need to override this method
-        * to load settings.
-        *
-        * @param store a string based data store. Short keys like "foo" can be used
-        *            to store the state of the connection.
-        */
-       public void load(ISettingsStore store) {
-               // do nothing by default
-       }
-
-       /**
-        * When the view or dialog containing the terminal is closed, the state of
-        * the connection is saved into the settings store <code>store</code>.
-        *
-        * Connectors that have no state or settings to persist do not need to
-        * override this. Others should override to persist their settings.
-        *
-        * @param store the store for persisting settings.
-        */
-       public void save(ISettingsStore store) {
-               // do nothing by default
-       }
-
-    /**
-        * Notify the remote site that the size of the terminal has changed.
-        *
-        * Concrete connectors should override this if they have the possibility to
-        * inform the remote about changed terminal size.
-        *
-        * @param newWidth the new width in characters.
-        * @param newHeight the new height in characters.
-        */
-       public void setTerminalSize(int newWidth, int newHeight) {
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/AbstractTextCanvasModel.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/AbstractTextCanvasModel.java
deleted file mode 100644 (file)
index 7991014..0000000
+++ /dev/null
@@ -1,348 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - [168197] Fix Terminal for CDC-1.1/Foundation-1.1
- * Anton Leherbauer (Wind River) - [219589] Copy an entire line selection
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.textcanvas;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.tm.terminal.model.ITerminalTextDataReadOnly;
-import org.eclipse.tm.terminal.model.ITerminalTextDataSnapshot;
-
-abstract public class AbstractTextCanvasModel implements ITextCanvasModel {
-       protected List<ITextCanvasModelListener> fListeners = new ArrayList<ITextCanvasModelListener>();
-       private int fCursorLine;
-       private int fCursorColumn;
-       private boolean fShowCursor;
-       private long fCursorTime;
-       private boolean fCursorIsEnabled;
-       private final ITerminalTextDataSnapshot fSnapshot;
-       private int fLines;
-
-       private int fSelectionStartLine=-1;
-       private int fSeletionEndLine;
-       private int fSelectionStartCoumn;
-       private int fSelectionEndColumn;
-       private ITerminalTextDataSnapshot fSelectionSnapshot;
-       private String fCurrentSelection=""; //$NON-NLS-1$
-       private final Point fSelectionAnchor=new Point(0,0);
-       /**
-        * do not update while update is running
-        */
-       boolean fInUpdate;
-       private int fCols;
-
-       public AbstractTextCanvasModel(ITerminalTextDataSnapshot snapshot) {
-               fSnapshot=snapshot;
-               fLines=fSnapshot.getHeight();
-       }
-       public void addCellCanvasModelListener(ITextCanvasModelListener listener) {
-               fListeners.add(listener);
-       }
-
-       public void removeCellCanvasModelListener(ITextCanvasModelListener listener) {
-               fListeners.remove(listener);
-       }
-
-       protected void fireCellRangeChanged(int x, int y, int width, int height) {
-               for (Iterator<ITextCanvasModelListener> iter = fListeners.iterator(); iter.hasNext();) {
-                       ITextCanvasModelListener listener = iter.next();
-                       listener.rangeChanged(x, y, width, height);
-               }
-       }
-       protected void fireDimensionsChanged( int width,int height) {
-               for (Iterator<ITextCanvasModelListener> iter = fListeners.iterator(); iter.hasNext();) {
-                       ITextCanvasModelListener listener = iter.next();
-                       listener.dimensionsChanged(width,height);
-               }
-
-       }
-       protected void fireTerminalDataChanged() {
-               for (Iterator<ITextCanvasModelListener> iter = fListeners.iterator(); iter.hasNext();) {
-                       ITextCanvasModelListener listener = iter.next();
-                       listener.terminalDataChanged();
-               }
-
-       }
-
-       public ITerminalTextDataReadOnly getTerminalText() {
-               return fSnapshot;
-       }
-       protected ITerminalTextDataSnapshot getSnapshot() {
-               return fSnapshot;
-       }
-       protected void updateSnapshot() {
-               if(!fInUpdate && fSnapshot.isOutOfDate()) {
-                       fInUpdate=true;
-                       try {
-                               fSnapshot.updateSnapshot(false);
-                               if(fSnapshot.hasTerminalChanged())
-                                       fireTerminalDataChanged();
-                               // TODO why does hasDimensionsChanged not work??????
-                               //                      if(fSnapshot.hasDimensionsChanged())
-                               //                              fireDimensionsChanged();
-                               if(fLines!=fSnapshot.getHeight() || fCols!=fSnapshot.getWidth()) {
-                                       fireDimensionsChanged(fSnapshot.getWidth(),fSnapshot.getHeight());
-                                       fLines=fSnapshot.getHeight();
-                                       fCols=fSnapshot.getWidth();
-                               }
-                               int y=fSnapshot.getFirstChangedLine();
-                               // has any line changed?
-                               if(y<Integer.MAX_VALUE) {
-                                       int height=fSnapshot.getLastChangedLine()-y+1;
-                                       fireCellRangeChanged(0, y, fSnapshot.getWidth(), height);
-                               }
-
-                       } finally {
-                               fInUpdate=false;
-                       }
-               }
-       }
-       /**
-        * must be called from the UI thread
-        */
-       public void update() {
-               // do the poll....
-               updateSnapshot();
-               updateSelection();
-               updateCursor();
-       }
-
-
-       public int getCursorColumn() {
-               return fCursorColumn;
-       }
-
-       public int getCursorLine() {
-               return fCursorLine;
-       }
-
-       public boolean isCursorOn() {
-               return fShowCursor && fCursorIsEnabled;
-       }
-       /**
-        * should be called regularly to draw an update of the
-        * blinking cursor
-        */
-       protected void updateCursor() {
-               if(!fCursorIsEnabled)
-                       return;
-               int cursorLine=getSnapshot().getCursorLine();
-               int cursorColumn=getSnapshot().getCursorColumn();
-               // if cursor at the end put it to the end of the
-               // last line...
-               if(cursorLine>=getSnapshot().getHeight()) {
-                       cursorLine=getSnapshot().getHeight()-1;
-                       cursorColumn=getSnapshot().getWidth()-1;
-               }
-               // has the cursor moved?
-               if(fCursorLine!=cursorLine || fCursorColumn!=cursorColumn) {
-                       // hide the old cursor!
-                       fShowCursor=false;
-                       // clean the previous cursor
-                       // bug 206363: paint also the char to the left and right of the cursor - see also below
-                       int col=fCursorColumn;
-                       int width=2;
-                       if(col>0) {
-                               col--;
-                               width++;
-                       }
-                       fireCellRangeChanged(col, fCursorLine, width, 1);
-                       // the cursor is shown when it moves!
-                       fShowCursor=true;
-                       fCursorTime=System.currentTimeMillis();
-                       fCursorLine=cursorLine;
-                       fCursorColumn=cursorColumn;
-                       // and draw the new cursor
-                       fireCellRangeChanged(fCursorColumn, fCursorLine, 1, 1);
-               } else {
-                       long t=System.currentTimeMillis();
-                       // TODO make the cursor blink time customisable
-                       if(t-fCursorTime>500) {
-                               fShowCursor=!fShowCursor;
-                               fCursorTime=t;
-                               // on some windows machines, there is some left
-                               // over when updating the cursor .
-                               // https://bugs.eclipse.org/bugs/show_bug.cgi?id=206363
-                               int col=fCursorColumn;
-                               int width=2;
-                               if(col>0) {
-                                       col--;
-                                       width++;
-                               }
-                               fireCellRangeChanged(col, fCursorLine, width, 1);
-                       }
-               }
-       }
-       public void setVisibleRectangle(int startLine, int startCol, int height, int width) {
-               fSnapshot.setInterestWindow(Math.max(0,startLine), Math.max(1,height));
-               update();
-       }
-       protected void showCursor(boolean show) {
-               fShowCursor=true;
-       }
-       public void setCursorEnabled(boolean visible) {
-               fCursorTime=System.currentTimeMillis();
-               fShowCursor=visible;
-               fCursorIsEnabled=visible;
-               fireCellRangeChanged(fCursorColumn, fCursorLine, 1, 1);
-       }
-       public boolean isCursorEnabled() {
-               return fCursorIsEnabled;
-       }
-
-       public Point getSelectionEnd() {
-               if(fSelectionStartLine<0)
-                       return null;
-               else
-                       return new Point(fSelectionEndColumn, fSeletionEndLine);
-       }
-
-       public Point getSelectionStart() {
-               if (fSelectionStartLine < 0)
-                       return null;
-               else
-                       return new Point(fSelectionStartCoumn,fSelectionStartLine);
-       }
-       public Point getSelectionAnchor() {
-               if(fSelectionStartLine<0)
-                       return null;
-               return new Point(fSelectionAnchor.x,fSelectionAnchor.y);
-       }
-       public void setSelectionAnchor(Point anchor) {
-               fSelectionAnchor.x=anchor.x;
-               fSelectionAnchor.y=anchor.y;
-       }
-
-       public void setSelection(int startLine, int endLine, int startColumn, int endColumn) {
-//             System.err.println(startLine+","+endLine+","+startColumn+","+endColumn);
-               doSetSelection(startLine, endLine, startColumn, endColumn);
-               fCurrentSelection=extractSelectedText();
-       }
-       private void doSetSelection(int startLine, int endLine, int startColumn, int endColumn) {
-               assert(startLine<0 || startLine<=endLine);
-               if(startLine>=0) {
-                       if(fSelectionSnapshot==null) {
-                               fSelectionSnapshot=fSnapshot.getTerminalTextData().makeSnapshot();
-                               fSelectionSnapshot.updateSnapshot(true);
-                       }
-               } else if(fSelectionSnapshot!=null) {
-                       fSelectionSnapshot.detach();
-                       fSelectionSnapshot=null;
-               }
-               int oldStart=fSelectionStartLine;
-               int oldEnd=fSeletionEndLine;
-               fSelectionStartLine = startLine;
-               fSeletionEndLine = endLine;
-               fSelectionStartCoumn = startColumn;
-               fSelectionEndColumn = endColumn;
-               if(fSelectionSnapshot!=null) {
-                       fSelectionSnapshot.setInterestWindow(0, fSelectionSnapshot.getHeight());
-               }
-               int changedStart;
-               int changedEnd;
-               if(oldStart<0) {
-                       changedStart=fSelectionStartLine;
-                       changedEnd=fSeletionEndLine;
-               } else if(fSelectionStartLine<0) {
-                       changedStart=oldStart;
-                       changedEnd=oldEnd;
-               } else {
-                       changedStart=Math.min(oldStart, fSelectionStartLine);
-                       changedEnd=Math.max(oldEnd, fSeletionEndLine);
-               }
-               if(changedStart>=0) {
-                       fireCellRangeChanged(0, changedStart, fSnapshot.getWidth(), changedEnd-changedStart+1);
-               }
-       }
-
-       public boolean hasLineSelection(int line) {
-               if (fSelectionStartLine < 0)
-                       return false;
-               else
-                       return line >= fSelectionStartLine && line <= fSeletionEndLine;
-       }
-
-       public String getSelectedText() {
-               return fCurrentSelection;
-       }
-       /**
-        * Calculates the currently selected text
-        * @return the currently selected text
-        */
-       private String extractSelectedText() {
-               if(fSelectionStartLine<0 || fSelectionStartCoumn<0 || fSelectionSnapshot==null)
-                       return ""; //$NON-NLS-1$
-               StringBuffer buffer=new StringBuffer();
-               for (int line = fSelectionStartLine; line <= fSeletionEndLine; line++) {
-                       String text;
-                       char[] chars=fSelectionSnapshot.getChars(line);
-                       if(chars!=null) {
-                               text=new String(chars);
-                               if(line==fSeletionEndLine && fSelectionEndColumn >= 0)
-                                       text=text.substring(0, Math.min(fSelectionEndColumn+1,text.length()));
-                               if(line==fSelectionStartLine)
-                                       text=text.substring(Math.min(fSelectionStartCoumn,text.length()));
-                               // get rid of the empty space at the end of the lines
-                               // text=text.replaceAll("\000+$","");  //$NON-NLS-1$//$NON-NLS-2$
-                               // <J2ME-CDC-1.1 version>
-                               int i = text.length() - 1;
-                               while (i >= 0 && text.charAt(i) == '\000') {
-                                       i--;
-                               }
-                               text = text.substring(0, i + 1);
-                               // </J2ME-CDC-1.1 version>
-                               // null means space
-                               text=text.replace('\000', ' ');
-                       } else {
-                               text=""; //$NON-NLS-1$
-                       }
-                       buffer.append(text);
-                       if(line < fSeletionEndLine && !fSelectionSnapshot.isWrappedLine(line))
-                               buffer.append('\n');
-               }
-               return buffer.toString();
-       }
-       private void updateSelection() {
-               if (fSelectionSnapshot != null && fSelectionSnapshot.isOutOfDate()) {
-                       fSelectionSnapshot.updateSnapshot(true);
-                       // has the selection moved?
-                       if (fSelectionSnapshot != null && fSelectionStartLine >= 0 && fSelectionSnapshot.getScrollWindowSize() > 0) {
-                               int start = fSelectionStartLine + fSelectionSnapshot.getScrollWindowShift();
-                               int end = fSeletionEndLine + fSelectionSnapshot.getScrollWindowShift();
-                               if (start < 0)
-                                       if (end >= 0)
-                                               start = 0;
-                                       else
-                                               start = -1;
-                               doSetSelection(start, end, fSelectionStartCoumn, fSelectionEndColumn);
-                       }
-                       // check if the content of the selection has changed. If the content has
-                       // changed, clear the selection
-                       if (fCurrentSelection.length()>0 && fSelectionSnapshot != null
-                                       && fSelectionSnapshot.getFirstChangedLine() <= fSeletionEndLine
-                                       && fSelectionSnapshot.getLastChangedLine() >= fSelectionStartLine) {
-                               // has the selected text changed?
-                               if (!fCurrentSelection.equals(extractSelectedText())) {
-                                       setSelection(-1, -1, -1, -1);
-                               }
-                       }
-                       // update the observed window...
-                       if (fSelectionSnapshot != null)
-                               // todo make -1 to work!
-                               fSelectionSnapshot.setInterestWindow(0, fSelectionSnapshot.getHeight());
-               }
-       }
-
-}
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/GridCanvas.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/GridCanvas.java
deleted file mode 100644 (file)
index 40ab4bf..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Anton Leherbauer (Wind River) - [294468] Fix scroller and text line rendering
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.textcanvas;
-
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.ScrollBar;
-
-/**
- * A Grid based Canvas. The canvas has rows and columns.
- * CellPainting is done with the abstract method drawCell
- */
-abstract public class GridCanvas extends VirtualCanvas {
-       /** width of a cell */
-       private int fCellWidth;
-       /** height of a cell */
-       private int fCellHeight;
-
-       public GridCanvas(Composite parent, int style) {
-               super(parent, style);
-               addListener(SWT.MouseWheel, new Listener() {
-                       public void handleEvent(Event event) {
-                               if(getVerticalBar().isVisible()) {
-                                       int delta=-fCellHeight;
-                                       if(event.count<0)
-                                               delta=-delta;
-                                       scrollYDelta(delta);
-                               }
-                               event.doit=false;
-                       }
-               });
-
-       }
-
-       /** template method paint.
-        * iterates over all cells in the clipping rectangle and paints them.
-        */
-       protected void paint(GC gc) {
-               Rectangle clipping=gc.getClipping();
-               if(clipping.width==0 || clipping.height==0)
-                       return;
-               Rectangle clientArea= getScreenRectInVirtualSpace();
-               // Beginning coordinates
-               int xOffset=clientArea.x;
-               int yOffset=clientArea.y;
-               int colFirst=virtualXToCell(xOffset+clipping.x);
-               if(colFirst>getCols())
-                       colFirst=getCols();
-               else if (colFirst < 0) {
-                       colFirst = 0;
-               }
-               int rowFirst=virtualYToCell(yOffset+clipping.y);
-               // End coordinates
-               int colLast=virtualXToCell(xOffset+clipping.x+clipping.width+fCellWidth);
-               if(colLast>getCols())
-                       colLast=getCols();
-               int rowLast=virtualYToCell(yOffset+clipping.y+clipping.height+fCellHeight);
-               if(rowLast>getRows())
-                       rowLast=getRows();
-               // System.out.println(rowFirst+"->"+rowLast+" "+System.currentTimeMillis());
-               // draw the cells
-               for(int row=rowFirst;row<=rowLast;row++) {
-                       int cx=colFirst*fCellWidth-xOffset;
-                       int cy=row*fCellHeight-yOffset;
-                       drawLine(gc,row,cx,cy,colFirst,colLast);
-               }
-               paintUnoccupiedSpace(gc,clipping);
-       }
-       /**
-        * @param gc
-        * @param row the line to draw
-        * @param x coordinate on screen
-        * @param y coordinate on screen
-        * @param colFirst first column to draw
-        * @param colLast last column to draw
-        */
-       abstract void drawLine(GC gc, int row, int x, int y, int colFirst, int colLast);
-
-       abstract protected int getRows();
-       abstract protected int getCols();
-
-       protected void setCellWidth(int cellWidth) {
-               fCellWidth = cellWidth;
-               getHorizontalBar().setIncrement(fCellWidth);
-       }
-
-       public int getCellWidth() {
-               return fCellWidth;
-       }
-
-       protected void setCellHeight(int cellHeight) {
-               fCellHeight = cellHeight;
-               getVerticalBar().setIncrement(fCellHeight);
-       }
-
-       public int getCellHeight() {
-               return fCellHeight;
-       }
-
-       int virtualXToCell(int x) {
-               return x/fCellWidth;
-       }
-
-       int virtualYToCell(int y) {
-               return y/fCellHeight;
-       }
-
-       protected Point screenPointToCell(int x, int y) {
-               x=screenXtoVirtual(x)/fCellWidth;
-               y=screenYtoVirtual(y)/fCellHeight;
-               return new Point(x,y);
-       }
-
-       Point screenPointToCell(Point point) {
-               return screenPointToCell(point.x,point.y);
-       }
-
-       protected Point cellToOriginOnScreen(int x, int y) {
-               x=virtualXtoScreen(fCellWidth*x);
-               y=virtualYtoScreen(fCellHeight*y);
-               return new Point(x,y);
-       }
-
-       Point cellToOriginOnScreen(Point cell) {
-               return cellToOriginOnScreen(cell.x,cell.y);
-       }
-
-       Rectangle getCellScreenRect(Point cell) {
-               return getCellScreenRect(cell.x,cell.y);
-       }
-
-       Rectangle getCellScreenRect(int x, int y) {
-               x=fCellWidth*virtualXtoScreen(x);
-               y=fCellHeight*virtualYtoScreen(y);
-               return new Rectangle(x,y,fCellWidth,fCellHeight);
-       }
-
-       protected Rectangle getCellVirtualRect(Point cell) {
-               return getCellVirtualRect(cell.x,cell.y);
-       }
-
-       Rectangle getCellVirtualRect(int x, int y) {
-               x=fCellWidth*x;
-               y=fCellHeight*y;
-               return new Rectangle(x,y,fCellWidth,fCellHeight);
-       }
-       protected void viewRectangleChanged(int x, int y, int width, int height) {
-               int cellX=virtualXToCell(x);
-               int cellY=virtualYToCell(y);
-               // End coordinates
-               int xE=virtualXToCell(x+width);
-//             if(xE>getCols())
-//                     xE=getCols();
-               int yE=virtualYToCell(y+height);
-//             if(yE>getRows())
-//                     yE=getRows();
-               visibleCellRectangleChanged(cellX,cellY,xE-cellX,yE-cellY);
-       }
-       
-       /**
-        * Called when the viewed part has changed.
-        * Override when you need this information....
-        * Is only called if the values change (well, almost)
-        * @param x origin of visible cells
-        * @param y origin of visible cells
-        * @param width number of cells visible in x direction
-        * @param height number of cells visible in y direction
-        */
-       protected void visibleCellRectangleChanged(int x, int y, int width, int height) {
-       }
-       
-       protected void setVirtualExtend(int width, int height) {
-               int cellHeight = getCellHeight();
-               if (cellHeight > 0) {
-                       height -= height % cellHeight;
-               }
-               super.setVirtualExtend(width, height);
-       }
-       
-       protected void setVirtualOrigin(int x, int y) {
-               int cellHeight = getCellHeight();
-               if (cellHeight > 0) {
-                       int remainder = y % cellHeight;
-                       if (remainder < 0) {
-                               y -= (cellHeight + remainder);
-                       } else {
-                               y -= remainder;
-                       }
-               }
-               super.setVirtualOrigin(x, y);
-       }
-       
-       protected void scrollY(ScrollBar vBar) {
-               int vSelection = vBar.getSelection ();
-               Rectangle bounds = getVirtualBounds();
-               int y = -vSelection;
-               int cellHeight = getCellHeight();
-               if (cellHeight > 0) {
-                       int remainder = y % cellHeight;
-                       if (remainder < 0) {
-                               y -= (cellHeight + remainder);
-                       } else {
-                               y -= remainder;
-                       }
-               }
-               int deltaY = y - bounds.y;
-               if(deltaY!=0) {
-                       scrollSmart(0,deltaY);
-                       setVirtualOrigin(bounds.x, bounds.y += deltaY);
-               }
-               if (-bounds.y + getRows() * getCellHeight() >= bounds.height) {
-                       // scrolled to bottom - need to redraw bottom area
-                       Rectangle clientRect = getClientArea();
-                       redraw(0, clientRect.height - fCellHeight, clientRect.width, fCellHeight, false);
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/ILinelRenderer.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/ILinelRenderer.java
deleted file mode 100644 (file)
index e03946b..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Anton Leherbauer (Wind River) - [294468] Fix scroller and text line rendering
- * Martin Oberhuber (Wind River) - [265352][api] Allow setting fonts programmatically
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.textcanvas;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-
-/**
- *
- */
-public interface ILinelRenderer {
-       int getCellWidth();
-       int getCellHeight();
-       void drawLine(ITextCanvasModel model, GC gc, int line, int x, int y, int colFirst, int colLast);
-       /**
-        * Update for a font change from the global JFace Registry.
-        */
-       void onFontChange();
-       /**
-        * Set a new font
-        * @param fontName Jface name of the new font
-        * @since 3.2
-        */
-       void updateFont(String fontName);
-       void setInvertedColors(boolean invert);
-       Color getDefaultBackgroundColor();
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/ITextCanvasModel.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/ITextCanvasModel.java
deleted file mode 100644 (file)
index 1891c60..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.textcanvas;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.tm.terminal.model.ITerminalTextDataReadOnly;
-
-public interface ITextCanvasModel {
-       void addCellCanvasModelListener(ITextCanvasModelListener listener);
-       void removeCellCanvasModelListener(ITextCanvasModelListener listener);
-
-       ITerminalTextDataReadOnly getTerminalText();
-       /**
-        * This is is
-        * @param startLine
-        * @param startCol
-        * @param height
-        * @param width
-        */
-       void setVisibleRectangle(int startLine, int startCol, int height, int width);
-
-       /**
-        * @return true when the cursor is shown (used for blinking cursors)
-        */
-       boolean isCursorOn();
-       /**
-        * Show/Hide the cursor.
-        * @param visible
-        */
-       void setCursorEnabled(boolean visible);
-
-       /**
-        * @return true if the cursor is shown.
-        */
-       boolean isCursorEnabled();
-
-       /**
-        * @return the line of the cursor
-        */
-       int getCursorLine();
-       /**
-        * @return the column of the cursor
-        */
-       int getCursorColumn();
-
-       /**
-        * @return the start of the selection or null if nothing is selected
-        * {@link Point#x} is the column and {@link Point#y} is the line.
-        */
-       Point getSelectionStart();
-       /**
-        * @return the end of the selection or null if nothing is selected
-        * {@link Point#x} is the column and {@link Point#y} is the line.
-        */
-       Point getSelectionEnd();
-
-       Point getSelectionAnchor();
-
-       void setSelectionAnchor(Point anchor);
-       /**
-        * Sets the selection. A negative startLine clears the selection.
-        * @param startLine
-        * @param endLine
-        * @param startColumn
-        * @param endColumn
-        */
-       void setSelection(int startLine, int endLine, int startColumn, int endColumn);
-
-       /**
-        * @param line
-        * @return true if line is part of the selection
-        */
-       boolean hasLineSelection(int line);
-
-       String getSelectedText();
-}
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/ITextCanvasModelListener.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/ITextCanvasModelListener.java
deleted file mode 100644 (file)
index 4e09027..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.textcanvas;
-
-/**
- */
-public interface ITextCanvasModelListener {
-       void rangeChanged(int col, int line, int width, int height);
-       void dimensionsChanged(int cols, int rows);
-       /**
-        * Called when any text change happened. Used to scroll to the
-        * end of text in auto scroll mode. This does not get fired
-        * when the window of interest has changed!
-        */
-       void terminalDataChanged();
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/PipedInputStream.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/PipedInputStream.java
deleted file mode 100644 (file)
index f0e1132..0000000
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 1996, 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Douglas Lea (Addison Wesley) - [cq:1552] BoundedBufferWithStateTracking adapted to BoundedByteBuffer 
- * Martin Oberhuber (Wind River) - the waitForAvailable method
- * Martin Oberhuber (Wind River) - [208166] Avoid unnecessary arraycopy in BoundedByteBuffer
- * Pawel Piech (Wind River) - [333613] "Job found still running" after shutdown
- *******************************************************************************/
-
-package org.eclipse.tm.internal.terminal.textcanvas;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * The main purpose of this class is to start a runnable in the
- * display thread when data is available and to pretend no data 
- * is available after a given amount of time the runnable is running.
- *
- */
-public class PipedInputStream extends InputStream {
-       /**
-        * The output stream used by the terminal backend to write to the terminal
-        */
-       protected final OutputStream fOutputStream;
-       /**
-        * A blocking byte queue.
-        */
-       private final BoundedByteBuffer fQueue;
-       
-       /**
-        * A byte bounded buffer used to synchronize the input and the output stream.
-        * <p>
-        * Adapted from BoundedBufferWithStateTracking 
-        * http://gee.cs.oswego.edu/dl/cpj/allcode.java
-        * http://gee.cs.oswego.edu/dl/cpj/
-        * <p>
-        * BoundedBufferWithStateTracking is part of the examples for the book
-        * Concurrent Programming in Java: Design Principles and Patterns by
-        * Doug Lea (ISBN 0-201-31009-0). Second edition published by 
-        * Addison-Wesley, November 1999. The code is 
-        * Copyright(c) Douglas Lea 1996, 1999 and released to the public domain
-        * and may be used for any purposes whatsoever. 
-        * <p>
-        * For some reasons a solution based on
-        * PipedOutputStream/PipedIntputStream
-        * does work *very* slowly:
-        *              http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4404700
-        * <p>
-        * 
-        */
-       private class BoundedByteBuffer {
-               protected final byte[] fBuffer; // the elements
-               protected int fPutPos = 0; // circular indices
-               protected int fTakePos = 0;
-               protected int fUsedSlots = 0; // the count
-               private boolean fClosed;
-               public BoundedByteBuffer(int capacity) throws IllegalArgumentException {
-                       // make sure we don't deadlock on too small capacity
-                       if (capacity <= 0)
-                               throw new IllegalArgumentException();
-                       fBuffer = new byte[capacity];
-               }
-               /**
-                * @return the bytes available for {@link #read()}
-                * Must be called with a lock on this!
-                */
-               public int available() {
-                   return fUsedSlots;
-               }
-               /**
-                * Writes a single byte to the buffer. Blocks if the buffer is full.
-                * @param b byte to write to the buffer
-                * @throws InterruptedException when the thread is interrupted while waiting
-                *     for the buffer to become ready
-                * Must be called with a lock on this!
-                */
-               public void write(byte b) throws InterruptedException {
-                       while (fUsedSlots == fBuffer.length)
-                               // wait until not full
-                               wait();
-
-                       fBuffer[fPutPos] = b;
-                       fPutPos = (fPutPos + 1) % fBuffer.length; // cyclically increment
-
-                       if (fUsedSlots++ == 0) // signal if was empty
-                               notifyAll();
-               }
-               public int getFreeSlots() {
-                       return fBuffer.length - fUsedSlots;
-               }
-               public void write(byte[] b, int off, int len) throws InterruptedException {
-                       assert len<=getFreeSlots();
-                       while (fUsedSlots == fBuffer.length)
-                               // wait until not full
-                               wait();
-                       int n = Math.min(len, fBuffer.length - fPutPos);
-                       System.arraycopy(b, off, fBuffer, fPutPos, n);
-                       if (fPutPos + len > fBuffer.length)
-                               System.arraycopy(b, off + n, fBuffer, 0, len - n);
-                       fPutPos = (fPutPos + len) % fBuffer.length; // cyclically increment
-                       boolean wasEmpty = fUsedSlots == 0;
-                       fUsedSlots += len;
-                       if (wasEmpty) // signal if was empty
-                               notifyAll();
-               }
-               /**
-                * Read a single byte. Blocks until a byte is available.
-                * @return a byte from the buffer
-                * @throws InterruptedException when the thread is interrupted while waiting
-                *     for the buffer to become ready
-                * Must be called with a lock on this!
-                */
-               public int read() throws InterruptedException {
-                       while (fUsedSlots == 0) {
-                               if(fClosed)
-                                       return -1;
-                               // wait until not empty
-                               wait();
-                       }
-                       byte b = fBuffer[fTakePos];
-                       fTakePos = (fTakePos + 1) % fBuffer.length;
-
-                       if (fUsedSlots-- == fBuffer.length) // signal if was full
-                               notifyAll();
-                       return b;
-               }
-               public int read(byte[] cbuf, int off, int len) throws InterruptedException {
-                       assert len<=available();
-                       while (fUsedSlots == 0) {
-                               if(fClosed)
-                                       return 0;
-                               // wait until not empty
-                               wait();
-                       }
-                       int n = Math.min(len, fBuffer.length - fTakePos);
-                       System.arraycopy(fBuffer, fTakePos, cbuf, off, n);
-                       if (fTakePos + len > n)
-                               System.arraycopy(fBuffer, 0, cbuf, off + n, len - n);
-                       fTakePos = (fTakePos + len) % fBuffer.length;
-                       boolean wasFull = fUsedSlots == fBuffer.length;
-                       fUsedSlots -= len;
-                       if(wasFull)
-                               notifyAll();
-                               
-                       return len;
-               }
-               public void close() {
-                       fClosed=true;
-                       notifyAll();
-               }
-               public boolean isClosed() {
-                       return fClosed;
-               }
-       }
-
-       /**
-        * An output stream that calls {@link PipedInputStream#textAvailable} 
-        * every time data is written to the stream. The data is written to
-        * {@link PipedInputStream#fQueue}.
-        * 
-        */
-       class PipedOutputStream extends OutputStream {
-               public void write(byte[] b, int off, int len) throws IOException {
-                       try {
-                               synchronized (fQueue) {
-                                       if(fQueue.isClosed())
-                                               throw new IOException("Stream is closed!"); //$NON-NLS-1$
-                                       int written=0;
-                                       while(written<len) {
-                                               if(fQueue.getFreeSlots()==0) {
-                                                       // if no slots available, write one byte and block
-                                                       // until free slots are available
-                                                       fQueue.write(b[off + written]);
-                                                       written++;
-                                               } else {
-                                                       // if slots are available, write as much as 
-                                                       // we can in one junk
-                                                       int n=Math.min(fQueue.getFreeSlots(), len-written);
-                                                       fQueue.write(b, off + written, n);
-                                                       written+=n;
-                                               }
-                                       }
-                               }
-                       } catch (InterruptedException e) {
-                               Thread.currentThread().interrupt();
-                       }
-               }
-
-               public void write(int b) throws IOException {
-                       try {
-                               synchronized(fQueue) {
-                                       if(fQueue.isClosed())
-                                               throw new IOException("Stream is closed!"); //$NON-NLS-1$
-                                       fQueue.write((byte)b);
-                               }
-                       } catch (InterruptedException e) {
-                               Thread.currentThread().interrupt();
-                       }
-               }
-               public void close() throws IOException {
-                       synchronized(fQueue) {
-                               fQueue.close();
-                       }
-               }
-       }
-       /**
-        * @param bufferSize the size of the buffer of the output stream
-        */
-       public PipedInputStream(int bufferSize) {
-               fOutputStream =new PipedOutputStream();
-               fQueue=new BoundedByteBuffer(bufferSize);
-       }
-       /**
-        * @return the output stream used by the backend to write to the terminal.
-        */
-       public OutputStream getOutputStream() {
-               return fOutputStream;
-       }
-       /**
-        * Waits until data is available for reading.
-        * @param millis see {@link Object#wait(long)}
-        * @throws InterruptedException when the thread is interrupted while waiting
-        *     for the buffer to become ready
-        */
-       public void waitForAvailable(long millis) throws InterruptedException {
-               synchronized(fQueue) {
-                       if(fQueue.available()==0 && !fQueue.fClosed) 
-                               fQueue.wait(millis);
-               }
-       } 
-       /**
-        * Must be called in the Display Thread!
-        * @return number of characters available for reading.
-        */
-       public int available() {
-               synchronized(fQueue) {
-                       return fQueue.available();
-               }
-       }
-       /**
-        * @return the next available byte. Check with {@link #available}
-        * if characters are available.
-        */
-       public int read() throws IOException  {
-               try {
-                       synchronized (fQueue) {
-                               return fQueue.read();
-                       }
-               } catch (InterruptedException e) {
-                       Thread.currentThread().interrupt();
-                       return -1;
-               }
-       }
-    /**
-     * Closing a <tt>PipedInputStream</tt> is the same as closing the output stream. 
-     * The stream will allow reading data that's still in the pipe after which it will
-     * throw an <tt>IOException</tt>.
-     */
-       public void close() throws IOException {
-           synchronized(fQueue) {
-               fQueue.close();
-           }
-       }
-
-       public int read(byte[] cbuf, int off, int len) throws IOException {
-               int n=0;
-               if(len==0)
-                       return 0;
-               // read as much as we can using a single synchronized statement
-               try {
-                       synchronized (fQueue) {         
-                               // if nothing available, block and read one byte
-                               if (fQueue.available() == 0) {
-                                       // block now until at least one byte is available
-                                       int c = fQueue.read();
-                                       // are we at the end of stream
-                                       if (c == -1)
-                                               return -1;
-                                       cbuf[off] = (byte) c;
-                                       n++;
-                               }
-                               // is there more data available?
-                               if (n < len && fQueue.available() > 0) {
-                                       // read at most available()
-                                       int nn = Math.min(fQueue.available(), len - n);
-                                       // are we at the end of the stream?
-                                       if (nn == 0 && fQueue.isClosed()) {
-                                               // if no byte was read, return -1 to indicate end of stream
-                                               // else return the bytes we read up to now
-                                               if (n == 0)
-                                                       n = -1;
-                                               return n;
-                                       }
-                                       fQueue.read(cbuf, off + n, nn);
-                                       n += nn;
-                               }
-                               
-                       }
-               } catch (InterruptedException e) {
-                       Thread.currentThread().interrupt();
-               }
-               return n;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/PollingTextCanvasModel.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/PollingTextCanvasModel.java
deleted file mode 100644 (file)
index b54fdf6..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Anton Leherbauer (Wind River) - [420928] Terminal widget leaks memory
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.textcanvas;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tm.terminal.model.ITerminalTextDataSnapshot;
-
-/**
- * @author Michael.Scharf@scharf-software.com
- *
- */
-public class PollingTextCanvasModel extends AbstractTextCanvasModel {
-       private static final int DEFAULT_POLL_INTERVAL = 50;
-       int fPollInterval = -1;
-
-       /**
-        * 
-        */
-       public PollingTextCanvasModel(ITerminalTextDataSnapshot snapshot) {
-               super(snapshot);
-               startPolling();
-       }
-       public void setUpdateInterval(int t) {
-               fPollInterval = t;
-       }
-       public void stopPolling() {
-               // timerExec only dispatches if the delay is >=0
-               fPollInterval = -1;
-       }
-       public void startPolling() {
-               if (fPollInterval < 0) {
-                       fPollInterval = DEFAULT_POLL_INTERVAL;
-                       Display.getDefault().timerExec(fPollInterval, new Runnable(){
-                               public void run() {
-                                       update();
-                                       Display.getDefault().timerExec(fPollInterval, this);
-                               }
-                       });
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/StyleMap.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/StyleMap.java
deleted file mode 100644 (file)
index 81e63e2..0000000
+++ /dev/null
@@ -1,296 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Michael Scharf (Wind River) - [205260] Terminal does not take the font from the preferences
- * Michael Scharf (Wind River) - [209746] There are cases where some colors not displayed correctly
- * Michael Scharf (Wind River) - [206328] Terminal does not draw correctly with proportional fonts
- * Martin Oberhuber (Wind River) - [247700] Terminal uses ugly fonts in JEE package
- * Martin Oberhuber (Wind River) - [335358] Fix Terminal color definition
- * Martin Oberhuber (Wind River) - [265352][api] Allow setting fonts programmatically
- * Martin Oberhuber (Wind River) - [475422] Fix display on MacOSX Retina
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.textcanvas;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tm.internal.terminal.preferences.ITerminalConstants;
-import org.eclipse.tm.terminal.model.Style;
-import org.eclipse.tm.terminal.model.StyleColor;
-
-public class StyleMap {
-       private static final String BLACK = "black"; //$NON-NLS-1$
-       private static final String WHITE = "white"; //$NON-NLS-1$
-       private static final String WHITE_FOREGROUND = "white_foreground"; //$NON-NLS-1$
-       private static final String GRAY = "gray"; //$NON-NLS-1$
-       private static final String MAGENTA = "magenta"; //$NON-NLS-1$
-       private static final String CYAN = "cyan"; //$NON-NLS-1$
-       private static final String YELLOW = "yellow"; //$NON-NLS-1$
-       private static final String BLUE = "blue"; //$NON-NLS-1$
-       private static final String GREEN = "green"; //$NON-NLS-1$
-       private static final String RED = "red"; //$NON-NLS-1$
-       
-       private static final String PREFIX = "org.eclipse.tm.internal."; //$NON-NLS-1$
-       String fFontName=ITerminalConstants.FONT_DEFINITION;
-       Map<StyleColor, Color> fColorMapForeground=new HashMap<StyleColor, Color>();
-       Map<StyleColor, Color> fColorMapBackground=new HashMap<StyleColor, Color>();
-       Map<StyleColor, Color> fColorMapIntense=new HashMap<StyleColor, Color>();
-       private Point fCharSize;
-       private final Style fDefaultStyle;
-       private boolean fInvertColors;
-       private boolean fProportional;
-       private final int[] fOffsets=new int[256];
-       StyleMap() {
-               initColors();
-               fDefaultStyle=Style.getStyle(StyleColor.getStyleColor(BLACK),StyleColor.getStyleColor(WHITE));
-               updateFont();
-       }
-       private void initColors() {
-               initForegroundColors();
-               initBackgroundColors();
-               initIntenseColors();
-       }
-       private void initForegroundColors() {
-               if(fInvertColors) {
-                       setColor(fColorMapForeground, WHITE, 0, 0, 0);
-                       setColor(fColorMapForeground, WHITE_FOREGROUND, 50, 50, 50);
-                       setColor(fColorMapForeground, BLACK, 229, 229, 229);
-               } else {
-                       setColor(fColorMapForeground, WHITE, 255, 255, 255);
-                       setColor(fColorMapForeground, WHITE_FOREGROUND, 229, 229, 229);
-                       setColor(fColorMapForeground, BLACK, 50, 50, 50);
-               }
-               setColor(fColorMapForeground, RED, 205, 0, 0);
-               setColor(fColorMapForeground, GREEN, 0, 205, 0);
-               setColor(fColorMapForeground, BLUE, 0, 0, 238);
-               setColor(fColorMapForeground, YELLOW, 205, 205, 0);
-               setColor(fColorMapForeground, CYAN, 0, 205, 205);
-               setColor(fColorMapForeground, MAGENTA, 205, 0, 205);
-               setColor(fColorMapForeground, GRAY, 229, 229, 229);
-       }
-
-       private void initBackgroundColors() {
-               if(fInvertColors) {
-                       setColor(fColorMapBackground, WHITE, 0, 0, 0);
-                       setColor(fColorMapBackground, WHITE_FOREGROUND, 50, 50, 50); // only used when colors are inverse
-                       setColor(fColorMapBackground, BLACK, 255, 255, 255);
-               } else {
-                       setColor(fColorMapBackground, WHITE, 255, 255, 255);
-                       setColor(fColorMapBackground, WHITE_FOREGROUND, 229, 229, 229);
-                       setColor(fColorMapBackground, BLACK, 0, 0, 0);
-               }
-               setColor(fColorMapBackground, RED, 205, 0, 0);
-               setColor(fColorMapBackground, GREEN, 0, 205, 0);
-               setColor(fColorMapBackground, BLUE, 0, 0, 238);
-               setColor(fColorMapBackground, YELLOW, 205, 205, 0);
-               setColor(fColorMapBackground, CYAN, 0, 205, 205);
-               setColor(fColorMapBackground, MAGENTA, 205, 0, 205);
-               setColor(fColorMapBackground, GRAY, 229, 229, 229);
-       }
-
-       private void initIntenseColors() {
-               if(fInvertColors) {
-                       setColor(fColorMapIntense, WHITE, 127, 127, 127);
-                       setColor(fColorMapIntense, WHITE_FOREGROUND, 0, 0, 0); // only used when colors are inverse
-                       setColor(fColorMapIntense, BLACK, 255, 255, 255);
-               } else {
-                       setColor(fColorMapIntense, WHITE, 255, 255, 255);
-                       setColor(fColorMapIntense, WHITE_FOREGROUND, 255, 255, 255);
-                       setColor(fColorMapIntense, BLACK, 0, 0, 0);
-               }
-               setColor(fColorMapIntense, RED, 255, 0, 0);
-               setColor(fColorMapIntense, GREEN, 0, 255, 0);
-               setColor(fColorMapIntense, BLUE, 92, 92, 255);
-               setColor(fColorMapIntense, YELLOW, 255, 255, 0);
-               setColor(fColorMapIntense, CYAN, 0, 255, 255);
-               setColor(fColorMapIntense, MAGENTA, 255, 0, 255);
-               setColor(fColorMapIntense, GRAY, 255, 255, 255);
-       }
-       
-       private void setColor(Map<StyleColor, Color> colorMap, String name, int r, int g, int b) {
-               String colorName=PREFIX+r+"-"+g+"-"+b;  //$NON-NLS-1$//$NON-NLS-2$
-               Color color=JFaceResources.getColorRegistry().get(colorName);
-               if(color==null) {
-                       JFaceResources.getColorRegistry().put(colorName, new RGB(r,g,b));
-                       color=JFaceResources.getColorRegistry().get(colorName);
-               }
-               colorMap.put(StyleColor.getStyleColor(name), color);
-               colorMap.put(StyleColor.getStyleColor(name.toUpperCase()), color);
-       }
-
-       public Color getForegrondColor(Style style) {
-               style = defaultIfNull(style);
-               Map<StyleColor, Color> map = style.isBold() ? fColorMapIntense : fColorMapForeground;
-               //Map map = fColorMapForeground;
-               if(style.isReverse())
-                       return getColor(map ,style.getBackground());
-               else
-                       return  getColor(map ,style.getForground());
-       }
-       public Color getBackgroundColor(Style style) {
-               style = defaultIfNull(style);
-               if(style.isReverse())
-                       return getColor(fColorMapBackground,style.getForground());
-               else
-                       return getColor(fColorMapBackground,style.getBackground());
-       }
-       Color getColor(Map<StyleColor, Color> map,StyleColor color) {
-               Color c=map.get(color);
-               if(c==null) {
-                       c=Display.getCurrent().getSystemColor(SWT.COLOR_GRAY);
-               }
-               return c;
-       }
-       private Style defaultIfNull(Style style) {
-               if(style==null)
-                       style=fDefaultStyle;
-               return style;
-       }
-       public void setInvertedColors(boolean invert) {
-               if(invert==fInvertColors)
-                       return;
-               fInvertColors=invert;
-               initColors();
-       }
-//     static Font getBoldFont(Font font) {
-//             FontData fontDatas[] = font.getFontData();
-//             FontData data = fontDatas[0];
-//             return new Font(Display.getCurrent(), data.getName(), data.getHeight(), data.getStyle()|SWT.BOLD);
-//     }
-
-       public Font getFont(Style style) {
-               style = defaultIfNull(style);
-               if(style.isBold()) {
-                       return  JFaceResources.getFontRegistry().getBold(fFontName);
-               } else if(style.isUnderline()) {
-                       return  JFaceResources.getFontRegistry().getItalic(fFontName);
-
-               }
-               return  JFaceResources.getFontRegistry().get(fFontName);
-       }
-
-       public Font getFont() {
-               return  JFaceResources.getFontRegistry().get(fFontName);
-
-       }
-       public int getFontWidth() {
-               return fCharSize.x;
-       }
-       public int getFontHeight() {
-               return fCharSize.y;
-       }
-       public void updateFont() {
-               updateFont(ITerminalConstants.FONT_DEFINITION);
-       }
-       /**
-        * Update the StyleMap for a new font name.
-        * The font name must be a valid name in the Jface font registry.
-        * @param fontName Jface name of the new font to use.
-        * @since 3.2
-        */
-       public void updateFont(String fontName) {
-               Display display=Display.getCurrent();
-               GC gc = new GC (display);
-               if (JFaceResources.getFontRegistry().hasValueFor(fontName)) {
-                       fFontName = fontName;
-               } else {
-                       //fall back to "basic jface text font"
-                       fFontName = "org.eclipse.jface.textfont"; //$NON-NLS-1$
-               }
-               gc.setFont(getFont());
-               fCharSize = gc.textExtent ("W"); //$NON-NLS-1$
-               fProportional=false;
-               
-               for (char c = ' '; c <= '~'; c++) {
-                       // consider only the first 128 chars for deciding if a font
-                       // is proportional. Collect char width as a side-effect.
-                       if(measureChar(gc, c, true))
-                               fProportional=true;
-               }
-               if(fProportional) {
-                       // Widest char minus the padding on the left and right:
-                       // Looks much better for small fonts
-                       fCharSize.x-=2;
-                       // Collect width of the upper characters (for offset calculation)
-                       for (char c = '~'+1; c < fOffsets.length; c++) {
-                               measureChar(gc, c,false);
-                       }
-                       // Calculate offsets based on each character's width and the bounding box
-                       for (int i = ' '; i < fOffsets.length; i++) {
-                               fOffsets[i]=(fCharSize.x-fOffsets[i])/2;
-                       }
-               } else {
-                       // Non-Proportional: Reset all offsets (eg after font change)
-                       for (int i = 0; i < fOffsets.length; i++) {
-                               fOffsets[i]=0;
-                       }
-                       String t = "The quick brown Fox jumps over the Lazy Dog."; //$NON-NLS-1$
-                       Point ext=gc.textExtent(t);
-                       if(ext.x != fCharSize.x * t.length()) {
-                               //Bug 475422: On OSX with Retina display and due to scaling,
-                               //a text many be shorter than the sum of its bounding boxes.
-                               //Because even with fixed width font, bounding box size 
-                               //may not be an integer but a fraction eg 6.75 pixels.
-                               //
-                               //Painting in proportional mode ensures that each character
-                               //is painted individually into its proper bounding box, rather
-                               //than using an optimization where Strings would be drawn as
-                               //a whole. This fixes the "fractional bounding box" problem.
-                               fProportional=true;
-                       }
-                       //measure font in boldface, too, and if wider then treat like proportional
-                       gc.setFont(getFont(fDefaultStyle.setBold(true)));
-                       Point charSizeBold = gc.textExtent("W"); //$NON-NLS-1$
-                       if (fCharSize.x != charSizeBold.x) {
-                               fProportional=true;
-                       }
-               }
-               gc.dispose ();
-       }
-       /**
-        * @param gc
-        * @param c
-        * @param updateMax
-        * @return true if the the font is proportional
-        */
-       private boolean measureChar(GC gc, char c, boolean updateMax) {
-               boolean proportional=false;
-               Point ext=gc.textExtent(String.valueOf(c));
-               if(ext.x>0 && ext.y>0 && (fCharSize.x!=ext.x || fCharSize.y!=ext.y)) {
-                       proportional=true;
-                       if(updateMax) {
-                               fCharSize.x=Math.max(fCharSize.x, ext.x);
-                               fCharSize.y=Math.max(fCharSize.y, ext.y);
-                       }
-               }
-               fOffsets[c]=ext.x;
-               return proportional;
-       }
-       public boolean isFontProportional() {
-               return fProportional;
-       }
-       /**
-        * Return the offset in pixels required to center a given character
-        * @param c the character to measure
-        * @return the offset in x direction to center this character
-        */
-       public int getCharOffset(char c) {
-               if(c>=fOffsets.length)
-                       return 0;
-               return fOffsets[c];
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/TextCanvas.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/TextCanvas.java
deleted file mode 100644 (file)
index a8b9508..0000000
+++ /dev/null
@@ -1,470 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Michael Scharf (Wind River) - [240098] The cursor should not blink when the terminal is disconnected
- * Uwe Stieber (Wind River) - [281328] The very first few characters might be missing in the terminal control if opened and connected programmatically
- * Martin Oberhuber (Wind River) - [294327] After logging in, the remote prompt is hidden
- * Anton Leherbauer (Wind River) - [294468] Fix scroller and text line rendering
- * Uwe Stieber (Wind River) - [205486] Fix ScrollLock always moving to line 1
- * Anton Leherbauer (Wind River) - [219589] Copy an entire line selection
- * Anton Leherbauer (Wind River) - [196465] Resizing Terminal changes Scroller location
- * Anton Leherbauer (Wind River) - [324608] Terminal has strange scrolling behaviour
- * Martin Oberhuber (Wind River) - [265352][api] Allow setting fonts programmatically
- * Anton Leherbauer (Wind River) - [434749] UnhandledEventLoopException when copying to clipboard while the selection is empty
- * Davy Landman (CWI) - [475267][api] Allow custom mouse listeners
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.textcanvas;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tm.internal.terminal.control.ITerminalMouseListener;
-
-/**
- * A cell oriented Canvas. Maintains a list of "cells".
- * It can either be vertically or horizontally scrolled.
- * The CellRenderer is responsible for painting the cell.
- */
-public class TextCanvas extends GridCanvas {
-       protected final ITextCanvasModel fCellCanvasModel;
-       /** Renders the cells */
-       private final ILinelRenderer fCellRenderer;
-       private boolean fScrollLock;
-       private Point fDraggingStart;
-       private Point fDraggingEnd;
-       private boolean fHasSelection;
-       private ResizeListener fResizeListener;
-       private final List<ITerminalMouseListener> fMouseListeners;
-
-       // The minSize is meant to determine the minimum size of the backing store
-       // (grid) into which remote data is rendered. If the viewport is smaller
-       // than that minimum size, the backing store size remains at the minSize,
-       // and a scrollbar is shown instead. In reality, this has the following
-       // issues or effects today:
-       //  (a) Bug 281328: For very early data coming in before the widget is 
-       //      realized, the minSize determines into what initial grid that is 
-       //      rendered. See also @link{#addResizeHandler(ResizeListener)}.
-       //  (b) Bug 294468: Since we have redraw and size computation problems 
-       //      with horizontal scrollers, for now the minColumns must be small
-       //      enough to avoid a horizontal scroller appearing in most cases.
-       //  (b) Bug 294327: since we have problems with the vertical scroller
-       //      showing the correct location, minLines must be small enough
-       //      to avoid a vertical scroller or new data may be rendered off-screen.
-       // As a compromise, we have been working with a 20x4 since the Terminal
-       // inception, though many users would want a 80x24 minSize and backing
-       // store. Pros and cons of the small minsize:
-       //   + consistent "remote size==viewport size", vi works as expected
-       //   - dumb terminals which expect 80x24 render garbled on small viewport.
-       // If bug 294468 were resolved, an 80 wide minSize would be preferrable
-       // since it allows switching the terminal viewport small/large as needed,
-       // without destroying the backing store. For a complete solution, 
-       // Bug 196462 tracks the request for a user-defined fixed-widow-size-mode.
-       private int fMinColumns=80;
-       private int fMinLines=4;
-       private boolean fCursorEnabled;
-       private boolean fResizing;
-       
-       /**
-        * Create a new CellCanvas with the given SWT style bits.
-        * (SWT.H_SCROLL and SWT.V_SCROLL are automatically added).
-        */
-       public TextCanvas(Composite parent, ITextCanvasModel model, int style,ILinelRenderer cellRenderer) {
-               super(parent, style | SWT.H_SCROLL | SWT.V_SCROLL);
-               fCellRenderer=cellRenderer;
-               setCellWidth(fCellRenderer.getCellWidth());
-               setCellHeight(fCellRenderer.getCellHeight());
-               fCellCanvasModel=model;
-               fCellCanvasModel.addCellCanvasModelListener(new ITextCanvasModelListener(){
-                       public void rangeChanged(int col, int line, int width, int height) {
-                               if(isDisposed()) return;
-                               repaintRange(col,line,width,height);
-                       }
-                       public void dimensionsChanged(int cols, int rows) {
-                               if(isDisposed()) return;
-                               calculateGrid();
-                       }
-                       public void terminalDataChanged() {
-                               if(isDisposed()) return;
-                               
-                               // scroll to end (unless scroll lock is active)
-                               if (!fResizing) {
-                                       calculateGrid();
-                                       scrollToEnd();
-                               }
-                       }
-               });
-               // let the cursor blink if the text canvas gets the focus...
-               addFocusListener(new FocusListener(){
-                       public void focusGained(FocusEvent e) {
-                               fCellCanvasModel.setCursorEnabled(fCursorEnabled);
-                       }
-                       public void focusLost(FocusEvent e) {
-                               fCellCanvasModel.setCursorEnabled(false);
-                       }});
-               fMouseListeners = new ArrayList<ITerminalMouseListener>();
-               addMouseListener(new MouseListener(){
-                       public void mouseDoubleClick(MouseEvent e) {
-                               if (fMouseListeners.size() > 0) {
-                                       Point pt = screenPointToCell(e.x, e.y);
-                                       if (pt != null) {
-                                               for (ITerminalMouseListener l : fMouseListeners) {
-                                                       l.mouseDoubleClick(fCellCanvasModel.getTerminalText(), pt.y, pt.x, e.button);
-                                               }
-                                       }
-                               }
-                       }
-                       public void mouseDown(MouseEvent e) {
-                               if(e.button==1) { // left button
-                                       fDraggingStart=screenPointToCell(e.x, e.y);
-                                       fHasSelection=false;
-                                       if((e.stateMask&SWT.SHIFT)!=0) {
-                                               Point anchor=fCellCanvasModel.getSelectionAnchor();
-                                               if(anchor!=null)
-                                                       fDraggingStart=anchor;
-                                       } else {
-                                               fCellCanvasModel.setSelectionAnchor(fDraggingStart);
-                                       }
-                                       fDraggingEnd=null;
-                               }
-                               if (fMouseListeners.size() > 0) {
-                                       Point pt = screenPointToCell(e.x, e.y);
-                                       if (pt != null) {
-                                               for (ITerminalMouseListener l : fMouseListeners) {
-                                                       l.mouseDown(fCellCanvasModel.getTerminalText(), pt.y, pt.x, e.button);
-                                               }
-                                       }
-                               }
-                       }
-                       public void mouseUp(MouseEvent e) {
-                               if(e.button==1) { // left button
-                                       updateHasSelection(e);
-                                       if(fHasSelection)
-                                               setSelection(screenPointToCell(e.x, e.y));
-                                       else
-                                               fCellCanvasModel.setSelection(-1,-1,-1,-1);
-                                       fDraggingStart=null;
-                               }
-                               if (fMouseListeners.size() > 0) {
-                                       Point pt = screenPointToCell(e.x, e.y);
-                                       if (pt != null) {
-                                               for (ITerminalMouseListener l : fMouseListeners) {
-                                                       l.mouseUp(fCellCanvasModel.getTerminalText(), pt.y, pt.x, e.button);
-                                               }
-                                       }
-                               }
-                       }
-               });
-               addMouseMoveListener(new MouseMoveListener() {
-
-                       public void mouseMove(MouseEvent e) {
-                               if (fDraggingStart != null) {
-                                       updateHasSelection(e);
-                                       setSelection(screenPointToCell(e.x, e.y));
-                               }
-                       }
-               });
-               serVerticalBarVisible(true);
-               setHorizontalBarVisible(false);
-       }
-
-       /**
-        * The user has to drag the mouse to at least one character to make a selection.
-        * Once this is done, even a one char selection is OK.
-        *
-        * @param e
-        */
-       private void updateHasSelection(MouseEvent e) {
-               if(fDraggingStart!=null) {
-                       Point p=screenPointToCell(e.x, e.y);
-                       if(fDraggingStart.x!=p.x||fDraggingStart.y!=p.y)
-                               fHasSelection=true;
-               }
-       }
-
-       void setSelection(Point p) {
-               if (fDraggingStart !=null && !p.equals(fDraggingEnd)) {
-                       fDraggingEnd = p;
-                       if (compare(p, fDraggingStart) < 0) {
-                               // bug 219589 - make sure selection start coordinates are non-negative
-                               int startColumn = Math.max(0, p.x);
-                               int startRow = Math.max(p.y, 0);
-                               fCellCanvasModel.setSelection(startRow, fDraggingStart.y, startColumn, fDraggingStart.x);
-                       } else {
-                               fCellCanvasModel.setSelection(fDraggingStart.y, p.y, fDraggingStart.x, p.x);
-
-                       }
-               }
-       }
-
-       int compare(Point p1, Point p2) {
-               if (p1.equals(p2))
-                       return 0;
-               if (p1.y == p2.y) {
-                       if (p1.x > p2.x)
-                               return 1;
-                       else
-                               return -1;
-               }
-               if (p1.y > p2.y) {
-                       return 1;
-               } else {
-                       return -1;
-               }
-       }
-       public ILinelRenderer getCellRenderer() {
-               return fCellRenderer;
-       }
-
-       public int getMinColumns() {
-               return fMinColumns;
-       }
-
-       public void setMinColumns(int minColumns) {
-               fMinColumns = minColumns;
-       }
-
-       public int getMinLines() {
-               return fMinLines;
-       }
-
-       public void setMinLines(int minLines) {
-               fMinLines = minLines;
-       }
-
-       protected void onResize(boolean init) {
-               if(fResizeListener!=null) {
-                       Rectangle bonds=getClientArea();
-                       int cellHeight = getCellHeight();
-                       int cellWidth = getCellWidth();
-                       int lines=bonds.height/cellHeight;
-                       int columns=bonds.width/cellWidth;
-                       // when the view is minimised, its size is set to 0
-                       // we don't sent this to the terminal!
-                       if((lines>0 && columns>0) || init) {
-                               if(columns<fMinColumns) {
-                                       if(!isHorizontalBarVisble()) {
-                                               setHorizontalBarVisible(true);
-                                               bonds=getClientArea();
-                                               lines=bonds.height/cellHeight;
-                                       }
-                                       columns=fMinColumns;
-                               } else if(columns>=fMinColumns && isHorizontalBarVisble()) {
-                                       setHorizontalBarVisible(false);
-                                       bonds=getClientArea();
-                                       lines=bonds.height/cellHeight;
-                                       columns=bonds.width/cellWidth;
-                               }
-                               if(lines<fMinLines)
-                                       lines=fMinLines;
-                               fResizeListener.sizeChanged(lines, columns);
-                       }
-               }
-               super.onResize();
-               calculateGrid();
-       }
-
-       protected void onResize() {
-               fResizing = true;
-               try {
-                       onResize(false);
-               } finally {
-                       fResizing = false;
-               }
-       }
-
-       private void calculateGrid() {
-               Rectangle virtualBounds = getVirtualBounds();
-               setRedraw(false);
-               try {
-                       setVirtualExtend(getCols()*getCellWidth(),getRows()*getCellHeight());
-                       getParent().layout();
-                       if (fResizing) {
-                               // scroll to end if view port was near last line
-                               Rectangle viewRect = getViewRectangle();
-                               if (virtualBounds.height - (viewRect.y + viewRect.height) < getCellHeight() * 2)
-                                       scrollToEnd();
-                       }
-               } finally {
-                       setRedraw(true);
-               }
-       }
-       void scrollToEnd() {
-               if(!fScrollLock) {
-                       int y=-(getRows()*getCellHeight()-getClientArea().height);
-                       if (y > 0) {
-                               y = 0;
-                       }
-                       Rectangle v=getViewRectangle();
-                       if(v.y!=-y) {
-                               setVirtualOrigin(v.x,y);
-                       }
-                       // make sure the scroll area is correct:
-                       scrollY(getVerticalBar());
-                       scrollX(getHorizontalBar());
-               }
-       }
-       /**
-        *
-        * @return true if the cursor should be shown on output....
-        */
-       public boolean isScrollLock() {
-               return fScrollLock;
-       }
-       /**
-        * If set then if the size changes
-        */
-       public void setScrollLock(boolean scrollLock) {
-               fScrollLock=scrollLock;
-       }
-       protected void repaintRange(int col, int line, int width, int height) {
-               Point origin=cellToOriginOnScreen(col,line);
-               Rectangle r=new Rectangle(origin.x,origin.y,width*getCellWidth(),height*getCellHeight());
-               repaint(r);
-       }
-       protected void drawLine(GC gc, int line, int x, int y, int colFirst, int colLast) {
-               fCellRenderer.drawLine(fCellCanvasModel, gc,line,x,y,colFirst, colLast);
-       }
-       protected Color getTerminalBackgroundColor() {
-               return fCellRenderer.getDefaultBackgroundColor();
-       }
-       protected void visibleCellRectangleChanged(int x, int y, int width, int height) {
-               fCellCanvasModel.setVisibleRectangle(y,x,height,width);
-               update();
-       }
-       protected int getCols() {
-               return fCellCanvasModel.getTerminalText().getWidth();
-       }
-       protected int getRows() {
-               return fCellCanvasModel.getTerminalText().getHeight();
-       }
-       public String getSelectionText() {
-               // TODO -- create a hasSelectionMethod!
-               return fCellCanvasModel.getSelectedText();
-       }
-       public void copy() {
-               String selectionText = getSelectionText();
-               if (selectionText != null && selectionText.length() > 0) {
-                       Clipboard clipboard = new Clipboard(getDisplay());
-                       clipboard.setContents(new Object[] { selectionText }, new Transfer[] { TextTransfer.getInstance() });
-                       clipboard.dispose();
-               }
-       }
-       public void selectAll() {
-               fCellCanvasModel.setSelection(0, fCellCanvasModel.getTerminalText().getHeight(), 0, fCellCanvasModel.getTerminalText().getWidth());
-               fCellCanvasModel.setSelectionAnchor(new Point(0,0));
-       }
-
-       /**
-        * @since 4.1
-        */
-       public void clearSelection() {
-               fCellCanvasModel.setSelection(-1,-1,-1,-1);
-       }
-
-       public boolean isEmpty() {
-               return false;
-       }
-       /**
-        * Gets notified when the visible size of the terminal changes.
-        * This should update the model!
-        *
-        */
-       public interface ResizeListener {
-               void sizeChanged(int lines, int columns);
-       }
-       /**
-        * @param listener this listener gets notified, when the size of
-        * the widget changed. It should change the dimensions of the underlying
-        * terminaldata
-        */
-       public void addResizeHandler(ResizeListener listener) {
-               if(fResizeListener!=null)
-                       throw new IllegalArgumentException("There can be at most one listener at the moment!"); //$NON-NLS-1$
-               fResizeListener=listener;
-
-               // Bug 281328: [terminal] The very first few characters might be missing in
-               //             the terminal control if opened and connected programmatically
-               //
-               // In case the terminal had not been visible yet or is too small (less than one
-               // line visible), the terminal should have a minimum size to avoid RuntimeExceptions.
-               Rectangle bonds=getClientArea();
-               if (bonds.height<getCellHeight() || bonds.width<getCellWidth()) {
-                       //Widget not realized yet, or minimized to < 1 item:
-                       //Just tell the listener our min size
-                       fResizeListener.sizeChanged(getMinLines(), getMinColumns());
-               } else {
-                       //Widget realized: compute actual size and force telling the listener
-                       onResize(true);
-               }
-       }
-
-       /**
-        * Notify about a change of the global Font Preference.
-        */
-       public void onFontChange() {
-               fCellRenderer.onFontChange();
-               setCellWidth(fCellRenderer.getCellWidth());
-               setCellHeight(fCellRenderer.getCellHeight());
-               calculateGrid();
-       }
-
-       public void updateFont(String fontName) {
-               fCellRenderer.updateFont(fontName);
-               setCellWidth(fCellRenderer.getCellWidth());
-               setCellHeight(fCellRenderer.getCellHeight());
-               calculateGrid();
-       }
-
-       public void setInvertedColors(boolean invert) {
-               fCellRenderer.setInvertedColors(invert);
-               redraw();
-       }
-
-       /**
-        * @return true if the cursor is enabled (blinking). By default the cursor is not enabled.
-        */
-       public boolean isCursorEnabled() {
-               return fCursorEnabled;
-       }
-
-       /**
-        * @param enabled enabling means that the cursor blinks
-        */
-       public void setCursorEnabled(boolean enabled) {
-               if(enabled!=fCursorEnabled) {
-                       fCursorEnabled=enabled;
-                       fCellCanvasModel.setCursorEnabled(fCursorEnabled);
-               }
-
-       }
-
-       public void addTerminalMouseListener(final ITerminalMouseListener listener) {
-               fMouseListeners.add(listener);
-       }
-
-       public void removeTerminalMouseListener(ITerminalMouseListener listener) {
-               fMouseListeners.remove(listener);
-       }
-}
-
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/TextLineRenderer.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/TextLineRenderer.java
deleted file mode 100644 (file)
index 46497f4..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Michael Scharf (Wind River) - [205260] Terminal does not take the font from the preferences
- * Michael Scharf (Wind River) - [206328] Terminal does not draw correctly with proportional fonts
- * Anton Leherbauer (Wind River) - [294468] Fix scroller and text line rendering
- * Martin Oberhuber (Wind River) - [265352][api] Allow setting fonts programmatically
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.textcanvas;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tm.terminal.model.ITerminalTextDataReadOnly;
-import org.eclipse.tm.terminal.model.LineSegment;
-import org.eclipse.tm.terminal.model.Style;
-
-/**
- *
- */
-public class TextLineRenderer implements ILinelRenderer {
-       private final ITextCanvasModel fModel;
-       StyleMap fStyleMap=new StyleMap();
-       public TextLineRenderer(TextCanvas c, ITextCanvasModel model) {
-               fModel=model;
-       }
-       /* (non-Javadoc)
-        * @see com.imagicus.thumbs.view.ICellRenderer#getCellWidth()
-        */
-       public int getCellWidth() {
-               return fStyleMap.getFontWidth();
-       }
-       /* (non-Javadoc)
-        * @see com.imagicus.thumbs.view.ICellRenderer#getCellHeight()
-        */
-       public int getCellHeight() {
-               return fStyleMap.getFontHeight();
-       }
-       public void drawLine(ITextCanvasModel model, GC gc, int line, int x, int y, int colFirst, int colLast) {
-               if(line<0 || line>=getTerminalText().getHeight() || colFirst>=getTerminalText().getWidth() || colFirst-colLast==0) {
-                       fillBackground(gc, x, y, getCellWidth()*(colLast-colFirst), getCellHeight());
-               } else {
-                       colLast=Math.min(colLast, getTerminalText().getWidth());
-                       LineSegment[] segments=getTerminalText().getLineSegments(line, colFirst, colLast-colFirst);
-                       for (int i = 0; i < segments.length; i++) {
-                               LineSegment segment=segments[i];
-                               Style style=segment.getStyle();
-                               setupGC(gc, style);
-                               String text=segment.getText();
-                               drawText(gc, x, y, colFirst, segment.getColumn(), text);
-                               drawCursor(model, gc, line, x, y, colFirst);
-                       }
-                       if(fModel.hasLineSelection(line)) {
-                               gc.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT));
-                               gc.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_LIST_SELECTION));
-                               Point start=model.getSelectionStart();
-                               Point end=model.getSelectionEnd();
-                               char[] chars=model.getTerminalText().getChars(line);
-                               if(chars==null)
-                                       return;
-                               int offset=0;
-                               if(start.y==line)
-                                       offset=start.x;
-                               offset=Math.max(offset, colFirst);
-                               int len;
-                               if(end.y==line)
-                                       len=end.x-offset+1;
-                               else
-                                       len=chars.length-offset+1;
-                               len=Math.min(len,chars.length-offset);
-                               if(len>0) {
-                                       String text=new String(chars,offset,len);
-                                       drawText(gc, x, y, colFirst, offset, text);
-                               }
-                       }
-               }
-       }
-
-       private void fillBackground(GC gc, int x, int y, int width, int height) {
-               Color bg=gc.getBackground();
-               gc.setBackground(getDefaultBackgroundColor());
-               gc.fillRectangle (x,y,width,height);
-               gc.setBackground(bg);
-
-       }
-
-       public Color getDefaultBackgroundColor() {
-               // null == default style
-               return fStyleMap.getBackgroundColor(null);
-       }
-       
-       private void drawCursor(ITextCanvasModel model, GC gc, int row, int x, int y, int colFirst) {
-               if(!model.isCursorOn())
-                       return;
-               int cursorLine=model.getCursorLine();
-
-               if(row==cursorLine) {
-                       int cursorColumn=model.getCursorColumn();
-                       if(cursorColumn<getTerminalText().getWidth()) {
-                               Style style=getTerminalText().getStyle(row, cursorColumn);
-                               if(style==null) {
-                                       // TODO make the cursor color customizable
-                                       style=Style.getStyle("BLACK", "WHITE");  //$NON-NLS-1$//$NON-NLS-2$
-                               }
-                               style=style.setReverse(!style.isReverse());
-                               setupGC(gc,style);
-                               String text=String.valueOf(getTerminalText().getChar(row, cursorColumn));
-                               drawText(gc, x, y, colFirst, cursorColumn, text);
-                       }
-               }
-       }
-       private void drawText(GC gc, int x, int y, int colFirst, int col, String text) {
-               int offset=(col-colFirst)*getCellWidth();
-               if(fStyleMap.isFontProportional()) {
-                       // draw the background
-                       // TODO why does this not work???????
-//                     gc.fillRectangle(x,y,fStyleMap.getFontWidth()*text.length(),fStyleMap.getFontHeight());
-                       for (int i = 0; i < text.length(); i++) {
-                               char c=text.charAt(i);
-                               int xx=x+offset+i*fStyleMap.getFontWidth();
-                               // TODO why do I have to draw the background character by character??????
-                               gc.fillRectangle(xx,y,fStyleMap.getFontWidth(),fStyleMap.getFontHeight());
-                               if(c!=' ' && c!='\000') {
-                                       gc.drawString(String.valueOf(c),fStyleMap.getCharOffset(c)+xx,y,true);
-                               }
-                       }
-               } else {
-                       text=text.replace('\000', ' ');
-                       gc.drawString(text,x+offset,y,false);
-               }
-       }
-       private void setupGC(GC gc, Style style) {
-               Color c=fStyleMap.getForegrondColor(style);
-               if(c!=gc.getForeground()) {
-                       gc.setForeground(c);
-               }
-               c=fStyleMap.getBackgroundColor(style);
-               if(c!=gc.getBackground()) {
-                       gc.setBackground(c);
-               }
-               Font f=fStyleMap.getFont(style);
-               if(f!=gc.getFont()) {
-                       gc.setFont(f);
-               }
-       }
-       ITerminalTextDataReadOnly getTerminalText() {
-               return fModel.getTerminalText();
-       }
-       public void onFontChange() {
-               fStyleMap.updateFont();
-       }
-       public void updateFont(String fontName) {
-               fStyleMap.updateFont(fontName);
-       }
-       public void setInvertedColors(boolean invert) {
-               fStyleMap.setInvertedColors(invert);
-
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/VirtualCanvas.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/VirtualCanvas.java
deleted file mode 100644 (file)
index 9d479c7..0000000
+++ /dev/null
@@ -1,348 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- * Anton Leherbauer (Wind River) - [294468] Fix scroller and text line rendering
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.textcanvas;
-
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.tm.internal.terminal.control.impl.TerminalPlugin;
-
-/**
- * A <code>Canvas</code> showing a virtual object.
- * Virtual: the extent of the total canvas.
- * Screen: the visible client area in the screen.
- */
-public abstract class VirtualCanvas extends Canvas {
-
-       private final Rectangle fVirtualBounds = new Rectangle(0,0,0,0);
-       private Rectangle fClientArea;
-       /**
-        * prevent infinite loop in {@link #updateScrollbars()}
-        */
-       private boolean fInUpdateScrollbars;
-       private static boolean fInUpdateScrollbarsLogged;
-       
-       public VirtualCanvas(Composite parent, int style) {
-               super(parent, style|SWT.NO_BACKGROUND|SWT.NO_REDRAW_RESIZE);
-               fClientArea=getClientArea();
-               addListener(SWT.Paint, new Listener() {
-                       public void handleEvent(Event event) {
-                               paint(event.gc);
-                       }
-               });
-               addListener(SWT.Resize, new Listener() {
-                       public void handleEvent(Event event) {
-                               fClientArea=getClientArea();
-                               onResize();
-                       }
-               });
-               getVerticalBar().addListener(SWT.Selection, new Listener() {
-                       public void handleEvent(Event e) {
-                               scrollY((ScrollBar)e.widget);
-
-                       }
-
-               });
-               getHorizontalBar().addListener(SWT.Selection, new Listener() {
-                       public void handleEvent(Event e) {
-                               scrollX((ScrollBar)e.widget);
-
-                       }
-               });
-       }
-       protected void onResize() {
-               updateViewRectangle();
-       }
-       protected void scrollX(ScrollBar hBar) {
-               int hSelection = hBar.getSelection ();
-               int destX = -hSelection - fVirtualBounds.x;
-               fVirtualBounds.x = -hSelection;
-               scrollSmart(destX, 0);
-               updateViewRectangle();
-       }
-       protected void scrollXDelta(int delta) {
-               getHorizontalBar().setSelection(-fVirtualBounds.x+delta);
-               scrollX(getHorizontalBar());
-       }
-
-       protected void scrollY(ScrollBar vBar) {
-               int vSelection = vBar.getSelection ();
-               int destY = -vSelection - fVirtualBounds.y;
-               if(destY!=0) {
-                       fVirtualBounds.y = -vSelection;
-                       scrollSmart(0,destY);
-                       updateViewRectangle();
-               }
-               
-       }
-       protected void scrollYDelta(int delta) {
-               getVerticalBar().setSelection(-fVirtualBounds.y+delta);
-               scrollY(getVerticalBar());
-       }
-
-
-       protected void scrollSmart(int deltaX, int deltaY) {
-               if (deltaX != 0 || deltaY != 0) {
-                       Rectangle rect = getBounds();
-                       scroll (deltaX, deltaY, 0, 0, rect.width, rect.height, false);
-               }
-       }
-
-       /**
-        * @param rect in virtual space
-        */
-       protected void revealRect(Rectangle rect) {
-               Rectangle visibleRect=getScreenRectInVirtualSpace();
-               // scroll the X part
-               int deltaX=0;
-               if(rect.x<visibleRect.x) {
-                       deltaX=rect.x-visibleRect.x;
-               } else if(visibleRect.x+visibleRect.width<rect.x+rect.width){
-                       deltaX=(rect.x+rect.width)-(visibleRect.x+visibleRect.width);
-               }
-               if(deltaX!=0) {
-                       getHorizontalBar().setSelection(-fVirtualBounds.x+deltaX);
-                       scrollX(getHorizontalBar());
-               }
-       
-               // scroll the Y part
-               int deltaY=0;
-               if(rect.y<visibleRect.y){
-                       deltaY=rect.y-visibleRect.y;
-               } else if(visibleRect.y+visibleRect.height<rect.y+rect.height){
-                       deltaY=(rect.y+rect.height)-(visibleRect.y+visibleRect.height);
-                       
-               }
-               if(deltaY!=0) {
-                       getVerticalBar().setSelection(-fVirtualBounds.y+deltaY);
-                       scrollY(getVerticalBar());
-               }
-       }
-
-       protected void repaint(Rectangle r) {
-               if(isDisposed())
-                       return;
-               if(inClipping(r,fClientArea)) {
-                       redraw(r.x, r.y, r.width, r.height, true);
-                       update();
-               }
-       }
-
-       /**
-        * Paint the virtual canvas.
-        * Override to implement actual paint method.
-        * @param gc graphics context to paint in
-        */
-       abstract protected void paint(GC gc);
-       protected Color getTerminalBackgroundColor() {
-//             return getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND);
-               return getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-       }
-       protected void paintUnoccupiedSpace(GC gc, Rectangle clipping) {
-               int width=fVirtualBounds.width + fVirtualBounds.x;
-               int height=fVirtualBounds.height + fVirtualBounds.y;
-               int marginWidth = (clipping.x+clipping.width) - width;
-               int marginHeight = (clipping.y+clipping.height) - height;
-               if(marginWidth>0||marginHeight>0){
-                       Color bg=getBackground();
-                       gc.setBackground(getTerminalBackgroundColor());
-                       if (marginWidth > 0) {
-                               gc.fillRectangle (width, clipping.y, marginWidth, clipping.height);
-                       }
-                       if (marginHeight > 0) {
-                               gc.fillRectangle (clipping.x, height, clipping.width, marginHeight);
-                       }
-                       gc.setBackground(bg);
-               }
-       }
-       /**
-        * @private
-        */
-       protected boolean inClipping(Rectangle clipping, Rectangle r) {
-               // TODO check if this is OK in all cases (the <=!)
-               // 
-               if(r.x+r.width<=clipping.x)
-                       return false;
-               if(clipping.x+clipping.width<=r.x)
-                       return false;
-               if(r.y+r.height<=clipping.y)
-                       return false;
-               if(clipping.y+clipping.height<=r.y)
-                       return false;
-               
-               return true;
-       }
-       /**
-        * @return the screen rect in virtual space (starting with (0,0))
-        * of the visible screen. (x,y>=0)
-        */
-       protected Rectangle getScreenRectInVirtualSpace() {
-               Rectangle r= new Rectangle(fClientArea.x-fVirtualBounds.x,fClientArea.y-fVirtualBounds.y,fClientArea.width,fClientArea.height);
-               return r;
-       }
-       /**
-        * @return the rect in virtual space (starting with (0,0))
-        * of the visible screen. (x,y>=0)
-        */
-       protected Rectangle getRectInVirtualSpace(Rectangle r) {
-               return new Rectangle(r.x-fVirtualBounds.x,r.y-fVirtualBounds.y,r.width,r.height);
-       }
-       
-       /**
-        * Sets the extent of the virtual display area
-        * @param width width of the display area
-        * @param height height of the display area
-        */
-       protected void setVirtualExtend(int width, int height) {
-               fVirtualBounds.width=width;
-               fVirtualBounds.height=height;
-               updateScrollbars();
-               updateViewRectangle();
-       }
-       /**
-        * sets the scrolling origin. Also sets the scrollbars.
-        * Does NOT redraw!
-        * Use negative values (move the virtual origin to the top left
-        * to see something in the screen (which is located at (0,0))
-        * @param x
-        * @param y
-        */
-       protected void setVirtualOrigin(int x, int y) {
-               if (fVirtualBounds.x != x || fVirtualBounds.y != y) {
-                       fVirtualBounds.x=x;
-                       fVirtualBounds.y=y;
-                       getHorizontalBar().setSelection(-x);
-                       getVerticalBar().setSelection(-y);
-                       updateViewRectangle();
-               }
-       }
-       protected Rectangle getVirtualBounds() {
-               return cloneRectangle(fVirtualBounds);
-       }
-       /**
-        * @param x
-        * @return the virtual coordinate in screen space
-        */
-       protected int virtualXtoScreen(int x) {
-               return x+fVirtualBounds.x;
-       }
-       protected int virtualYtoScreen(int y) {
-               return y+fVirtualBounds.y;
-       }
-       protected int screenXtoVirtual(int x) {
-               return x-fVirtualBounds.x;
-       }
-       protected int screenYtoVirtual(int y) {
-               return y-fVirtualBounds.y;
-       }
-       /** called when the viewed part is changing */
-       private final Rectangle fViewRectangle=new Rectangle(0,0,0,0);
-       protected void updateViewRectangle() {
-               if(
-                               fViewRectangle.x==-fVirtualBounds.x 
-                               && fViewRectangle.y==-fVirtualBounds.y
-                               && fViewRectangle.width==fClientArea.width
-                               && fViewRectangle.height==fClientArea.height
-                       )
-                       return;
-               fViewRectangle.x=-fVirtualBounds.x;
-               fViewRectangle.y=-fVirtualBounds.y;
-               fViewRectangle.width=fClientArea.width;
-               fViewRectangle.height=fClientArea.height;
-               viewRectangleChanged(fViewRectangle.x,fViewRectangle.y,fViewRectangle.width,fViewRectangle.height);
-       }
-       protected Rectangle getViewRectangle() {
-               return cloneRectangle(fViewRectangle);
-       }
-       private Rectangle cloneRectangle(Rectangle r) {
-               return new Rectangle(r.x,r.y,r.width,r.height);
-       }
-       /**
-        * Called when the viewed part has changed.
-        * Override when you need this information....
-        * Is only called if the values change!
-        * @param x visible in virtual space
-        * @param y visible in virtual space
-        * @param width
-        * @param height
-        */
-       protected void viewRectangleChanged(int x, int y, int width, int height) {
-       }
-       /**
-        * @private
-        */
-       private void updateScrollbars() {
-               // don't get into infinite loops....
-               if(!fInUpdateScrollbars) {
-                       fInUpdateScrollbars=true;
-                       try {
-                               doUpdateScrollbar();
-                       } finally {
-                               fInUpdateScrollbars=false;
-                       }
-               } else {
-                       if(!fInUpdateScrollbarsLogged) {
-                               fInUpdateScrollbarsLogged=true;
-                               TerminalPlugin.getDefault().getLog().log(new Status(IStatus.WARNING, 
-                                               TerminalPlugin.PLUGIN_ID, IStatus.OK, "Unexpected Recursion in terminal", //$NON-NLS-1$
-                                               new RuntimeException()));
-                       }
-               }
-       }
-       private void doUpdateScrollbar() {
-               Rectangle clientArea= getClientArea();
-               ScrollBar horizontal= getHorizontalBar();
-               // even if setVisible was called on the scrollbar, isVisible
-               // returns false if its parent is not visible. 
-               if(!isVisible() || horizontal.isVisible()) {
-                       horizontal.setPageIncrement(clientArea.width - horizontal.getIncrement());
-                       int max= fVirtualBounds.width;
-                       horizontal.setMaximum(max);
-                       horizontal.setThumb(clientArea.width);
-               }
-               ScrollBar vertical= getVerticalBar();
-               // even if setVisible was called on the scrollbar, isVisible
-               // returns false if its parent is not visible. 
-               if(!isVisible() || vertical.isVisible()) {
-                       vertical.setPageIncrement(clientArea.height - vertical.getIncrement());
-                       int max= fVirtualBounds.height;
-                       vertical.setMaximum(max);
-                       vertical.setThumb(clientArea.height);
-               }
-       }
-       protected boolean isVertialBarVisible() {
-               return getVerticalBar().isVisible();
-       }
-       protected void serVerticalBarVisible(boolean showVScrollBar) {
-               ScrollBar vertical= getVerticalBar();
-               vertical.setVisible(showVScrollBar);
-               vertical.setSelection(0);
-       }
-       protected boolean isHorizontalBarVisble() {
-               return getHorizontalBar().isVisible();
-       }
-       protected void setHorizontalBarVisible(boolean showHScrollBar) {
-               ScrollBar horizontal= getHorizontalBar();
-               horizontal.setVisible(showHScrollBar);
-               horizontal.setSelection(0);
-       }
-}
-
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/ITerminalTextData.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/ITerminalTextData.java
deleted file mode 100644 (file)
index 5ce26ee..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - [261486][api][cleanup] Mark @noimplement interfaces as @noextend
- * Anton Leherbauer (Wind River) - [453393] Add support for copying wrapped lines without line break
- *******************************************************************************/
-package org.eclipse.tm.terminal.model;
-
-/**
- * A writable matrix of characters and {@link Style}. This is intended to be the
- * low level representation of the text of a Terminal. Higher layers are
- * responsible to fill the text and styles into this representation.
- * <p>
- * <b>Note: </b> Implementations of this interface has to be thread safe.
- * </p>
- *
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- */
-public interface ITerminalTextData extends ITerminalTextDataReadOnly {
-
-       /**
-        * Sets the dimensions of the data. If the dimensions are smaller than the current
-        * dimensions, the lines will be chopped. If the dimensions are bigger, then
-        * the new elements will be filled with 0 chars and null Style.
-        * @param height
-        * @param width
-        */
-       void setDimensions(int height, int width);
-
-       void setMaxHeight(int height);
-       int getMaxHeight();
-
-       /**
-        * Set a single character and the associated {@link Style}.
-        * @param line line must be >=0 and < height
-        * @param column column must be >=0 and < width
-        * @param c the new character at this position
-        * @param style the style or null
-        */
-       void setChar(int line, int column, char c, Style style);
-
-       /**
-        * Set an array of characters showing in the same {@link Style}.
-        * @param line line must be >=0 and < height
-        * @param column column must be >=0 and < width
-        * @param chars the new characters at this position
-        * @param style the style or null
-        */
-       void setChars(int line, int column, char[] chars, Style style);
-
-       /**
-        * Set a subrange of an array of characters showing in the same {@link Style}.
-        * @param line line must be >=0 and < height
-        * @param column column must be >=0 and < width
-        * @param chars the new characters at this position
-        * @param start the start index in the chars array
-        * @param len the number of characters to insert. Characters beyond width are not inserted.
-        * @param style the style or null
-        */
-       void setChars(int line, int column, char[] chars, int start, int len, Style style);
-
-
-       /**
-        * Cleans the entire line.
-        * @param line
-        */
-       void cleanLine(int line);
-
-       /**
-        * Shifts some lines up or down. The "empty" space is filled with <code>'\000'</code> chars
-        * and <code>null</code> {@link Style}
-        * <p>To illustrate shift, here is some sample data:
-        * <pre>
-        * 0 aaaa
-        * 1 bbbb
-        * 2 cccc
-        * 3 dddd
-        * 4 eeee
-        * </pre>
-        *
-        * Shift a region of 3 lines <b>up</b> by one line <code>shift(1,3,-1)</code>
-        * <pre>
-        * 0 aaaa
-        * 1 cccc
-        * 2 dddd
-        * 3
-        * 4 eeee
-        * </pre>
-        *
-        *
-        * Shift a region of 3 lines <b>down</b> by one line <code>shift(1,3,1)</code>
-        * <pre>
-        * 0 aaaa
-        * 1
-        * 2 bbbb
-        * 3 cccc
-        * 4 eeee
-        * </pre>
-        * @param startLine the start line of the shift
-        * @param size the number of lines to shift
-        * @param shift how much scrolling is done. New scrolled area is filled with <code>'\000</code>'.
-        * Negative number means scroll down, positive scroll up (see example above).
-        */
-       void scroll(int startLine, int size, int shift);
-
-       /**Adds a new line to the terminal. If maxHeigth is reached, the entire terminal
-        * will be scrolled. Else a line will be added.
-        */
-       void addLine();
-       /**
-        * Copies the entire source into this and changes the size accordingly
-        * @param source
-        */
-       void copy(ITerminalTextData source);
-       /**
-        * Copy a sourceLine from source to this at destLine.
-        * @param source
-        * @param sourceLine
-        * @param destLine
-        */
-       void copyLine(ITerminalTextData source,int sourceLine, int destLine);
-       /**
-        * Copy <code>length</code> lines from source starting at sourceLine into this starting at
-        * destLine.
-        * @param source
-        * @param sourceStartLine
-        * @param destStartLine
-        * @param length
-        */
-       void copyRange(ITerminalTextData source, int sourceStartLine, int destStartLine,int length);
-
-       void setCursorLine(int line);
-       void setCursorColumn(int column);
-
-       /**
-        * Makes this line a wrapped line which logically continues on next line. 
-        *
-        * @param line
-        * @since 3.3
-        */
-       void setWrappedLine(int line);
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/ITerminalTextDataReadOnly.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/ITerminalTextDataReadOnly.java
deleted file mode 100644 (file)
index d7a63ae..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - [261486][api][cleanup] Mark @noimplement interfaces as @noextend
- * Anton Leherbauer (Wind River) - [453393] Add support for copying wrapped lines without line break
- *******************************************************************************/
-package org.eclipse.tm.terminal.model;
-
-/**
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- */
-public interface ITerminalTextDataReadOnly {
-
-       /**
-        * @return the width of the terminal
-        */
-       int getWidth();
-
-       /**
-        * @return the height of the terminal
-        */
-       int getHeight();
-
-       /**
-        * @param line be >=0 and < height
-        * @param startCol must be >=0 and < width
-        * @param numberOfCols must be > 0
-        * @return a the line segments of the specified range
-        */
-       LineSegment[] getLineSegments(int line, int startCol, int numberOfCols);
-
-       /**
-        * @param line must be >=0 and < height
-        * @param column must be >=0 and < width
-        * @return the character at column,line
-        */
-       char getChar(int line, int column);
-
-       /**
-        * @param line must be >=0 and < height
-        * @param column must be >=0 and < width
-        * @return style at column,line or null
-        */
-       Style getStyle(int line, int column);
-
-       /**
-        * Creates a new instance of {@link ITerminalTextDataSnapshot} that
-        * can be used to track changes. Make sure to call {@link ITerminalTextDataSnapshot#detach()}
-        * if you don't need the snapshots anymore.
-        * <p><b>Note: </b>A new snapshot is empty and needs a call to {@link ITerminalTextDataSnapshot#updateSnapshot(boolean)} to
-        * get its initial values. You might want to setup the snapshot to your needs by calling
-        * {@link ITerminalTextDataSnapshot#setInterestWindow(int, int)}.
-        * </p>
-        * @return a new instance of {@link ITerminalTextDataSnapshot} that "listens" to changes of
-        * <code>this</code>.
-        */
-       public ITerminalTextDataSnapshot makeSnapshot();
-
-       char[] getChars(int line);
-       Style[] getStyles(int line);
-
-       /**
-        * @return the line in which the cursor is at the moment
-        */
-       int getCursorLine();
-       /**
-        * @return the column at which the cursor is at the moment
-        */
-       int getCursorColumn();
-
-       /**
-        * @param line
-        * @return true if this line got wrapped, ie. logically continues on next line
-        * @since 3.3
-        */
-       boolean isWrappedLine(int line);
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/ITerminalTextDataSnapshot.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/ITerminalTextDataSnapshot.java
deleted file mode 100644 (file)
index 0d5960a..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - [261486][api][cleanup] Mark @noimplement interfaces as @noextend
- *******************************************************************************/
-package org.eclipse.tm.terminal.model;
-
-/**
- * This class maintains a snapshot of an instance of {@link ITerminalTextData}.
- * While the {@link ITerminalTextData} continues changing, the snapshot remains
- * unchanged until the next snapshot is taken by calling
- * {@link #updateSnapshot(boolean)}. This is important, because the
- * {@link ITerminalTextData} might get modified by another thread. Suppose you
- * would want to draw the content of the {@link ITerminalTextData} using the
- * following loop:
- *
- * <pre>
- * for (int line = 0; line &lt; term.getHeight(); line++)
- *     for (int column = 0; column &lt; term.getWidth(); column++)
- *             drawCharacter(column, line, term.getChar(column, line), term.getStyle(column, line));
- * </pre>
- *
- * This might fail because the background thread could change the dimensions of
- * the {@link ITerminalTextData} while you iterate the loop. One solution would
- * be to put a <code>synchronized(term){}</code> statement around the code. This
- * has two problems: 1. you would have to know about the internals of the
- * synchronisation of {@link ITerminalTextData}. 2. The other thread that
- * changes {@link ITerminalTextData} is blocked while the potentially slow
- * drawing is done.
- * <p>
- * <b>Solution:</b> Take a snapshot of the terminal and use the snapshot to draw
- * the content. There is no danger that the data structure get changed while you
- * draw. There are also methods to find out what has changed to minimize the
- * number of lines that get redrawn.
- * </p>
- *
- * <p>
- * <b>Drawing optimization</b>: To optimize redrawing of changed lines, this
- * class keeps track of lines that have changed since the previous snapshot.
- * </p>
- *
- * <pre>
- * // iterate over the potentially changed lines
- * for (int line = snap.getFirstChangedLine(); line &lt;= snap.getLastChangedLine(); line++)
- *     // redraw only if the line has changed
- *     if (snap.hasLineChanged(line))
- *             for (int column = 0; column &lt; snap.getWidth(); column++)
- *                     drawCharacter(column, line, snap.getChar(column, line), snap.getStyle(column, line));
- * </pre>
- *
- * <p>
- * <b>Scroll optimization:</b> Often new lines are appended at the bottom of the
- * terminal and the rest of the lines are scrolled up. In this case all lines
- * would be marked as changed. To optimize for this case,
- * {@link #updateSnapshot(boolean)} can be called with <code>true</code> for the
- * <code>detectScrolling</code> parameter. The object will keep track of
- * scrolling. The UI must <b>first</b> handle the scrolling and then use the
- * {@link #hasLineChanged(int)} method to determine scrolling:
- *
- * <pre>
- * // scroll the visible region of the UI &lt;b&gt;before&lt;/b&gt; drawing the changed lines.
- * doUIScrolling(snap.getScrollChangeY(), snap.getScrollChangeN(), snap.getScrollChangeShift());
- * // iterate over the potentially changed lines
- * for (int line = snap.getFirstChangedLine(); line &lt;= snap.getFirstChangedLine(); line++)
- *     // redraw only if the line has changed
- *     if (snap.hasLineChanged(line))
- *             for (int column = 0; column &lt; snap.getWidth(); column++)
- *                     drawCharacter(column, line, snap.getChar(column, line), snap.getStyle(column, line));
- * </pre>
- *
- * </p>
- * <p>
- * <b>Threading Note</b>: This class is not thread safe! All methods have to be
- * called by the a same thread, that created the instance by calling
- * {@link ITerminalTextDataReadOnly#makeSnapshot()}.
- * </p>
- *
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- */
-public interface ITerminalTextDataSnapshot extends ITerminalTextDataReadOnly {
-       /**
-        * This listener gets called when the current snapshot
-        * is out of date. Calling {@link ITerminalTextDataSnapshot#updateSnapshot(boolean)}
-        * will have an effect. Once the {@link #snapshotOutOfDate(ITerminalTextDataSnapshot)} method is called,
-        * it will not be called until {@link ITerminalTextDataSnapshot#updateSnapshot(boolean)}
-        * is called and a new snapshot needs to be updated again.
-        * <p>
-        * A typical terminal view would not update the snapshot immediately
-        * after the {@link #snapshotOutOfDate(ITerminalTextDataSnapshot)} has been called. It would introduce a
-        * delay to update the UI (and the snapshot} 10 or 20 times per second.
-        *
-        * <p>Make sure you don't spend too much time in this method.
-        */
-       interface SnapshotOutOfDateListener {
-               /**
-                * Gets called when the snapshot is out of date. To get the snapshot up to date,
-                * call {@link ITerminalTextDataSnapshot#updateSnapshot(boolean)}.
-                * @param snapshot The snapshot that is out of date
-                */
-               void snapshotOutOfDate(ITerminalTextDataSnapshot snapshot);
-       }
-       void addListener(SnapshotOutOfDateListener listener);
-       void removeListener(SnapshotOutOfDateListener listener);
-
-       /**
-        * Ends the listening to the {@link ITerminalTextData}. After this
-        * has been called no new snapshot data is collected.
-        */
-       void detach();
-       /**
-        * @return true if the data has changed since the previous snapshot.
-        */
-       boolean isOutOfDate();
-
-       /**
-        * The window of interest is the region the snapshot should track.
-        * Changes outside this region are ignored. The change takes effect after
-        * an update!
-        * @param startLine -1 means track the end of the data
-        * @param size number of lines to track. A size of -1 means track all.
-        */
-       void setInterestWindow(int startLine, int size);
-       int getInterestWindowStartLine();
-       int getInterestWindowSize();
-
-       /**
-        * Create a new snapshot of the {@link ITerminalTextData}. It will efficiently
-        * copy the data of the {@link ITerminalTextData} into an internal representation.
-        * The snapshot also keeps track of the changes since the previous snapshot.
-        * <p>With the methods {@link #getFirstChangedLine()}, {@link #getLastChangedLine()} and
-        * {@link #hasLineChanged(int)}
-        * you can find out what has changed in the current snapshot since the previous snapshot.
-        * @param detectScrolling if <code>true</code> the snapshot tries to identify scroll
-        * changes since the last snapshot. In this case the information about scrolling
-        * can be retrieved using the following methods:
-        * {@link #getScrollWindowStartLine()}, {@link #getScrollWindowSize()} and {@link #getScrollWindowShift()}
-        * <br><b>Note:</b> The method {@link #hasLineChanged(int)} returns changes <b>after</b> the
-        * scrolling has been applied.
-        */
-       void updateSnapshot(boolean detectScrolling);
-
-       /**
-        * @return The first line changed in this snapshot compared
-        * to the previous snapshot.
-        *
-        * <p><b>Note:</b> If no line has changed, this
-        * returns {@link Integer#MAX_VALUE}
-        *
-        * <p><b>Note:</b> if {@link #updateSnapshot(boolean)} has been called with <code>true</code>,
-        * then this does not include lines that only have been scrolled. This is the
-        * first line that has changed <b>after</b> the scroll has been applied.
-        */
-       int getFirstChangedLine();
-
-       /**
-        * @return The last line changed in this snapshot compared
-        * to the previous snapshot. If the height has changed since the
-        * last update of the snapshot, then the returned value is within
-        * the new dimensions.
-        *
-        * <p><b>Note:</b> If no line has changed, this returns <code>-1</code>
-        *
-        * <p><b>Note:</b> if {@link #updateSnapshot(boolean)} has been called with <code>true</code>,
-        * then this does not include lines that only have been scrolled. This is the
-        * last line that has changed <b>after</b> the scroll has been applied.
-        *
-        * <p>A typical for loop using this method would look like this (note the <code>&lt;=</code> in the for loop):
-        * <pre>
-        * for(int line=snap.{@link #getFirstChangedLine()}; line <b>&lt;=</b> snap.getLastChangedLine(); line++)
-        *    if(snap.{@link #hasLineChanged(int) hasLineChanged(line)})
-        *       doSomething(line);
-        * </pre>
-        */
-       int getLastChangedLine();
-
-       /**
-        * @param line
-        * @return true if the line has changed since the previous snapshot
-        */
-       boolean hasLineChanged(int line);
-
-       boolean hasDimensionsChanged();
-
-       /**
-        * @return true if the terminal has changed (and not just the
-        * window of interest)
-        */
-       boolean hasTerminalChanged();
-       /**
-        * If {@link #updateSnapshot(boolean)} was called with <code>true</code>, then this method
-        * returns the top of the scroll region.
-        * @return The first line scrolled in this snapshot compared
-        * to the previous snapshot. See also {@link ITerminalTextData#scroll(int, int, int)}.
-        */
-       int getScrollWindowStartLine();
-
-       /**
-        * If {@link #updateSnapshot(boolean)} was called with <code>true</code>, then this method
-        * returns the size of the scroll region.
-        * @return The number of lines scrolled  in this snapshot compared
-        * to the previous snapshot. See also {@link ITerminalTextData#scroll(int, int, int)}
-        * If nothing has changed, 0 is returned.
-        */
-       int getScrollWindowSize();
-
-       /**
-        * If {@link #updateSnapshot(boolean)} was called with <code>true</code>, then this method
-        * returns number of lines moved by the scroll region.
-        * @return The the scroll shift of this snapshot compared
-        * to the previous snapshot. See also {@link ITerminalTextData#scroll(int, int, int)}
-        */
-       int getScrollWindowShift();
-
-       /**
-        * @return The {@link ITerminalTextData} on that this instance is observing.
-        */
-       ITerminalTextData getTerminalTextData();
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/LineSegment.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/LineSegment.java
deleted file mode 100644 (file)
index 3f153dd..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.model;
-
-
-public class LineSegment {
-       private final String fText;
-       private final int fCol;
-       private final Style fStyle;
-       public LineSegment(int col, String text, Style style) {
-               fCol = col;
-               fText = text;
-               fStyle = style;
-       }
-       public Style getStyle() {
-               return fStyle;
-       }
-       public String getText() {
-               return fText;
-       }
-       public int getColumn() {
-               return fCol;
-       }
-       public String toString() {
-               return "LineSegment("+fCol+", \""+fText+"\","+fStyle+")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-       }
-}
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/Style.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/Style.java
deleted file mode 100644 (file)
index 001ad68..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.model;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author scharf
- * Flyweight
- * Threadsafe.
- * 
- */
-// TODO add an Object for user data, use weak map to keep track of styles with associated
-// user data
-public class Style {
-       private final StyleColor fForground;
-       private final StyleColor fBackground;
-       private final boolean fBold;
-       private final boolean fBlink;
-       private final boolean fUnderline;
-       private final boolean fReverse;
-       private final static Map<Style, Style> fgStyles=new HashMap<Style, Style>();
-       private Style(StyleColor forground, StyleColor background, boolean bold, boolean blink, boolean underline, boolean reverse) {
-               fForground = forground;
-               fBackground = background;
-               fBold = bold;
-               fBlink = blink;
-               fUnderline = underline;
-               fReverse = reverse;
-       }
-       public static Style getStyle(StyleColor forground, StyleColor background, boolean bold, boolean blink, boolean underline, boolean reverse) {
-               Style style = new Style(forground,background, bold, blink,underline,reverse);
-               Style cached;
-               synchronized (fgStyles) {
-                       cached=fgStyles.get(style);
-                       if(cached==null) {
-                               cached=style;
-                               fgStyles.put(cached, cached);
-                       }
-               }
-               return cached;
-       }
-       public static Style getStyle(String forground, String background) {
-               return getStyle(StyleColor.getStyleColor(forground), StyleColor.getStyleColor(background),false,false,false,false);
-       }
-       public static Style getStyle(StyleColor forground, StyleColor background) {
-               return getStyle(forground, background,false,false,false,false);
-       }
-       public Style setForground(StyleColor forground) {
-               return getStyle(forground,fBackground,fBold,fBlink,fUnderline,fReverse);
-       }
-       public Style setBackground(StyleColor background) {
-               return getStyle(fForground,background,fBold,fBlink,fUnderline,fReverse);
-       }
-       public Style setForground(String colorName) {
-               return getStyle(StyleColor.getStyleColor(colorName),fBackground,fBold,fBlink,fUnderline,fReverse);
-       }
-       public Style setBackground(String colorName) {
-               return getStyle(fForground,StyleColor.getStyleColor(colorName),fBold,fBlink,fUnderline,fReverse);
-       }
-       public Style setBold(boolean bold) {
-               return getStyle(fForground,fBackground,bold,fBlink,fUnderline,fReverse);
-       }
-       public Style setBlink(boolean blink) {
-               return getStyle(fForground,fBackground,fBold,blink,fUnderline,fReverse);
-       }
-       public Style setUnderline(boolean underline) {
-               return getStyle(fForground,fBackground,fBold,fBlink,underline,fReverse);
-       }
-       public Style setReverse(boolean reverse) {
-               return getStyle(fForground,fBackground,fBold,fBlink,fUnderline,reverse);
-       }
-       public StyleColor getBackground() {
-               return fBackground;
-       }
-       public boolean isBlink() {
-               return fBlink;
-       }
-       public boolean isBold() {
-               return fBold;
-       }
-       public StyleColor getForground() {
-               return fForground;
-       }
-       public boolean isReverse() {
-               return fReverse;
-       }
-       public boolean isUnderline() {
-               return fUnderline;
-       }
-       public int hashCode() {
-               final int prime = 31;
-               int result = 1;
-               result = prime * result + ((fBackground == null) ? 0 : fBackground.hashCode());
-               result = prime * result + (fBlink ? 1231 : 1237);
-               result = prime * result + (fBold ? 1231 : 1237);
-               result = prime * result + ((fForground == null) ? 0 : fForground.hashCode());
-               result = prime * result + (fReverse ? 1231 : 1237);
-               result = prime * result + (fUnderline ? 1231 : 1237);
-               return result;
-       }
-       public boolean equals(Object obj) {
-               if (this == obj)
-                       return true;
-               if (obj == null)
-                       return false;
-               if (getClass() != obj.getClass())
-                       return false;
-               final Style other = (Style) obj;
-               // background == is the same as equals
-               if (fBackground != other.fBackground)
-                       return false;
-               if (fBlink != other.fBlink)
-                       return false;
-               if (fBold != other.fBold)
-                       return false;
-               if (fForground != other.fForground)
-                       return false;
-               if (fReverse != other.fReverse)
-                       return false;
-               if (fUnderline != other.fUnderline)
-                       return false;
-               return true;
-       }
-       public String toString() {
-               StringBuffer result=new StringBuffer();
-               result.append("Style(foreground="); //$NON-NLS-1$
-               result.append(fForground);
-               result.append(", background="); //$NON-NLS-1$
-               result.append(fBackground);
-               if(fBlink)
-                       result.append(", blink"); //$NON-NLS-1$
-               if(fBold)
-                       result.append(", bold"); //$NON-NLS-1$
-               if(fBlink)
-                       result.append(", blink"); //$NON-NLS-1$
-               if(fReverse)
-                       result.append(", reverse"); //$NON-NLS-1$
-               if(fUnderline)
-                       result.append(", underline"); //$NON-NLS-1$
-               result.append(")"); //$NON-NLS-1$
-               return result.toString();
-       }
-       
-}
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/StyleColor.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/StyleColor.java
deleted file mode 100644 (file)
index 98b19ad..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.model;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/** 
- * 
- * Flyweight
- * Threadsafe.
- */
-public class StyleColor {
-       private final static Map<String, StyleColor> fgStyleColors=new HashMap<String, StyleColor>();
-       final String fName;
-       
-       /**
-        * @param name the name of the color. It is up to the UI to associate a
-        * named color with a visual representation
-        * @return a StyleColor
-        */
-       public static StyleColor getStyleColor(String name) {
-               StyleColor result;
-               synchronized (fgStyleColors) {
-                       result=fgStyleColors.get(name);
-                       if(result==null) {
-                               result=new StyleColor(name);
-                               fgStyleColors.put(name, result);
-                       }
-               }
-               return result;
-       }
-       // nobody except the factory method is allowed to instantiate this class!
-       private StyleColor(String name) {
-               fName = name;
-       }
-
-       public String getName() {
-               return fName;
-       }
-
-       public String toString() {
-               return fName;
-       }
-       // no need to override equals and hashCode, because Object uses object identity
-}
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/TerminalTextDataFactory.java b/rtosTMTerminal/org.eclipse.tm.terminal.control/src/org/eclipse/tm/terminal/model/TerminalTextDataFactory.java
deleted file mode 100644 (file)
index 364f810..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2015 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: 
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.model;
-
-import org.eclipse.tm.internal.terminal.model.SynchronizedTerminalTextData;
-import org.eclipse.tm.internal.terminal.model.TerminalTextData;
-
-public class TerminalTextDataFactory {
-       static public ITerminalTextData makeTerminalTextData() {
-               return new SynchronizedTerminalTextData(new TerminalTextData());
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.control/tm32.png b/rtosTMTerminal/org.eclipse.tm.terminal.control/tm32.png
deleted file mode 100644 (file)
index 668b05b..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.control/tm32.png and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.classpath b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.classpath
deleted file mode 100644 (file)
index ad32c83..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-       <classpathentry kind="src" path="src"/>
-       <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.gitignore b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.gitignore
deleted file mode 100644 (file)
index ae3c172..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.options b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.options
deleted file mode 100644 (file)
index a0a2c87..0000000
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.tm.terminal.view.core/debugmode = 0
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.project b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.project
deleted file mode 100644 (file)
index f6e4e7e..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-       <name>org.eclipse.tm.terminal.view.core</name>
-       <comment></comment>
-       <projects>
-       </projects>
-       <buildSpec>
-               <buildCommand>
-                       <name>org.eclipse.jdt.core.javabuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.ManifestBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.SchemaBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-       </buildSpec>
-       <natures>
-               <nature>org.eclipse.pde.PluginNature</nature>
-               <nature>org.eclipse.jdt.core.javanature</nature>
-               <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-       </natures>
-       <filteredResources>
-               <filter>
-                       <id>1329501981620</id>
-                       <name></name>
-                       <type>10</type>
-                       <matcher>
-                               <id>org.eclipse.ui.ide.multiFilter</id>
-                               <arguments>1.0-name-matches-false-false-target</arguments>
-                       </matcher>
-               </filter>
-       </filteredResources>
-</projectDescription>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.core.prefs b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644 (file)
index 7fc8175..0000000
+++ /dev/null
@@ -1,380 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=0
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=100
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=4
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=4
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=true
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=true
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=true
-org.eclipse.jdt.core.formatter.lineSplit=100
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.ui.prefs b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644 (file)
index 0d73226..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Target Explorer Java STD
-formatter_settings_version=12
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_type_arguments=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=false
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-sp_cleanup.use_type_arguments=false
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.pde.prefs b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644 (file)
index cf80c8b..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=1
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/META-INF/MANIFEST.MF b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/META-INF/MANIFEST.MF
deleted file mode 100644 (file)
index a811429..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.tm.terminal.view.core;singleton:=true
-Bundle-Version: 4.2.0.qualifier
-Bundle-Activator: org.eclipse.tm.terminal.view.core.activator.CoreBundleActivator
-Bundle-Vendor: %providerName
-Require-Bundle: org.eclipse.core.expressions;bundle-version="3.4.400",
- org.eclipse.core.runtime;bundle-version="3.8.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Export-Package: org.eclipse.tm.terminal.view.core,
- org.eclipse.tm.terminal.view.core.activator;x-internal:=true,
- org.eclipse.tm.terminal.view.core.interfaces,
- org.eclipse.tm.terminal.view.core.interfaces.constants,
- org.eclipse.tm.terminal.view.core.internal;x-internal:=true,
- org.eclipse.tm.terminal.view.core.nls;x-internal:=true,
- org.eclipse.tm.terminal.view.core.preferences,
- org.eclipse.tm.terminal.view.core.tracing,
- org.eclipse.tm.terminal.view.core.utils
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/about.html b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/about.html
deleted file mode 100644 (file)
index 0f07cf0..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-<p>May 24, 2012</p>    
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/about.ini b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/about.ini
deleted file mode 100644 (file)
index 3adc27a..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=tm32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/about.mappings b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/about.mappings
deleted file mode 100644 (file)
index bddaab4..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/about.properties b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/about.properties
deleted file mode 100644 (file)
index 35d7bbe..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2016 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: 
-# Martin Oberhuber - initial API and implementation 
-################################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=TM Terminal\n\
-\n\
-Version: {featureVersion}\n\
-\n\
-(c) Copyright Wind River Systems, Inc. and others 2011, 2016.  All rights reserved.\n\
-Visit http://marketplace.eclipse.org/content/tm-terminal
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/build.properties b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/build.properties
deleted file mode 100644 (file)
index 01e440a..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2012, 2015 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
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               about.html,\
-               plugin.xml,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               tm32.png
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/plugin.properties b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/plugin.properties
deleted file mode 100644 (file)
index 15d6077..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-##################################################################################
-# Copyright (c) 2015 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
-##################################################################################
-
-pluginName = Terminal View Core
-providerName = Eclipse.org - Target Management
-
-ExtensionPoint.contextPropertiesProviders = Terminal Context Properties Providers
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/plugin.xml b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/plugin.xml
deleted file mode 100644 (file)
index c9373fa..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension-point id="contextPropertiesProviders" name="%contextPropertiesProviders" schema="schema/contextPropertiesProviders.exsd"/>
-
-<!-- Property tester contributions -->
-   <extension point="org.eclipse.core.expressions.propertyTesters">
-      <propertyTester
-            class="org.eclipse.tm.terminal.view.core.internal.PropertyTester"
-            id="org.eclipse.tm.terminal.view.core.PropertyTester"
-            namespace="org.eclipse.tm.terminal.view.core"
-            properties="hasContextPropertiesProvider"
-            type="java.lang.Object">
-      </propertyTester>
-   </extension>
-
-</plugin>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/pom.xml b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/pom.xml
deleted file mode 100644 (file)
index 4acad71..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.tm.terminal</groupId>
-    <artifactId>org.eclipse.tm.terminal.maven-build</artifactId>
-    <version>4.2.0-SNAPSHOT</version>
-    <relativePath>../../admin/pom-build.xml</relativePath>
-  </parent>
-
-  <version>4.2.0-SNAPSHOT</version>
-  <artifactId>org.eclipse.tm.terminal.view.core</artifactId>
-  <packaging>eclipse-plugin</packaging>
-</project>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/schema/contextPropertiesProviders.exsd b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/schema/contextPropertiesProviders.exsd
deleted file mode 100644 (file)
index 42db131..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.tm.terminal.view.core" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.tm.terminal.view.core" id="contextPropertiesProviders" name="Terminal Context Properties Providers"/>
-      </appinfo>
-      <documentation>
-         This extension point is used to contribute terminal context properties providers. The context properties provider allows querying desired properties for a given context.
-&lt;p&gt;
-The terminal context is passed in as default variable to the enablement expression evaluation. The terminal context is not expected to be iteratable or countable.
-      </documentation>
-   </annotation>
-
-   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="contextPropertiesProvider" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="contextPropertiesProvider">
-      <annotation>
-         <documentation>
-            Declares a terminal context properties provider contribution.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="enablement"/>
-         </sequence>
-         <attribute name="class" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements &lt;code&gt;org.eclipse.tm.terminal.view.core.interfaces.ITerminalContextPropertiesProvider&lt;/code&gt;.
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn=":org.eclipse.tm.terminal.view.core.interfaces.ITerminalContextPropertiesProvider"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         TM Terminal 4.0.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="examples"/>
-      </appinfo>
-      <documentation>
-         This is an example of the extension point usage:
-&lt;p&gt;
-&lt;pre&gt;&lt;code&gt;
-  &lt;extension point=&quot;org.eclipse.tm.terminal.view.core.contextPropertiesProviders&quot;&gt;
-      &lt;contextPropertiesProvider
-            class=&quot;com.my.contribution.MyContextPropertiesProviderImpl&quot;&gt;
-      &lt;/contextPropertiesProvider&gt;
-   &lt;/extension&gt;
-&lt;/code&gt;&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="apiinfo"/>
-      </appinfo>
-      <documentation>
-         The provider of a terminal context properties provider must implement &lt;samp&gt;org.eclipse.tm.terminal.view.core.interfaces.ITerminalContextPropertiesProvider&lt;/samp&gt;.
-      </documentation>
-   </annotation>
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         Copyright (c) 2015 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.
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/TerminalContextPropertiesProviderFactory.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/TerminalContextPropertiesProviderFactory.java
deleted file mode 100644 (file)
index 9d26a00..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.core;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.tm.terminal.view.core.activator.CoreBundleActivator;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalContextPropertiesProvider;
-import org.eclipse.tm.terminal.view.core.nls.Messages;
-
-/**
- * Terminal context properties provider factory.
- */
-public final class TerminalContextPropertiesProviderFactory {
-       // Flag to remember if the contributions got loaded
-       private static boolean contributionsLoaded = false;
-
-       // The list of all loaded contributions
-       private static final List<Proxy> contributions = new ArrayList<Proxy>();
-
-       // The proxy used to achieve lazy class loading and plug-in activation
-       private static class Proxy implements IExecutableExtension {
-               // Reference to the configuration element
-               private IConfigurationElement configElement = null;
-               // The class implementing the provider
-               public String clazz;
-               // The context properties provider instance
-               private ITerminalContextPropertiesProvider provider = null;
-               // The converted expression
-               private Expression expression;
-
-               /**
-                * Constructor.
-                */
-               protected Proxy() {
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object)
-                */
-               @Override
-               public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
-                       Assert.isNotNull(config);
-                       this.configElement = config;
-
-                       // Read the class attribute.
-                       // Throws an exception if the attribute value is empty or null.
-                       clazz = config.getAttribute("class"); //$NON-NLS-1$
-                       if (clazz == null || "".equals(clazz.trim())) { //$NON-NLS-1$
-                               throw new CoreException(new Status(IStatus.ERROR,
-                                                                               CoreBundleActivator.getUniqueIdentifier(),
-                                                                               NLS.bind(Messages.Extension_error_missingRequiredAttribute, "class", config.getContributor().getName()))); //$NON-NLS-1$
-                       }
-
-                       // Read the "enablement" sub element of the extension
-                       IConfigurationElement[] children = configElement.getChildren("enablement"); //$NON-NLS-1$
-                       if (children == null || children.length == 0) {
-                               throw new CoreException(new Status(IStatus.ERROR,
-                                                               CoreBundleActivator.getUniqueIdentifier(),
-                                                               NLS.bind(Messages.Extension_error_missingRequiredAttribute, "enablement", config.getContributor().getName()))); //$NON-NLS-1$
-                       }
-                       // Only one "enablement" element is expected
-                       expression = ExpressionConverter.getDefault().perform(children[0]);
-               }
-
-               /**
-                * Return the real terminal context properties provider instance for this proxy.
-                */
-               protected ITerminalContextPropertiesProvider getProvider() {
-                       if (provider == null && configElement != null) {
-                               try {
-                                       // Create the service class instance via the configuration element
-                                       Object provider = configElement.createExecutableExtension("class"); //$NON-NLS-1$
-                                       if (provider instanceof ITerminalContextPropertiesProvider) {
-                                               this.provider = (ITerminalContextPropertiesProvider)provider;
-                                       }
-                                       else {
-                                               IStatus status = new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(), "Terminal context properties provider '" + provider.getClass().getName() + "' not of type ITerminalContextPropertiesProvider."); //$NON-NLS-1$ //$NON-NLS-2$
-                                               Platform.getLog(CoreBundleActivator.getContext().getBundle()).log(status);
-                                       }
-                               }
-                               catch (CoreException e) {
-                                       IStatus status = new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(), "Cannot create terminal context properties provider '" + clazz + "'.", e); //$NON-NLS-1$ //$NON-NLS-2$
-                                       Platform.getLog(CoreBundleActivator.getContext().getBundle()).log(status);
-                               }
-                       }
-                       return provider;
-               }
-
-               /**
-                * Returns if or if not the context properties provider contribution is enabled for
-                * the given terminal context.
-                *
-                * @param context The terminal context or <code>null</code>.
-                * @return <code>True</code> if the context properties provider contribution is enabled
-                *         for the given terminal context, <code>false</code> otherwise.
-                */
-               protected boolean isEnabled(Object context) {
-                       if (context == null) {
-                               return getEnablement() == null;
-                       }
-
-                       Expression enablement = getEnablement();
-
-                       // The service contribution is enabled by default if no expression is specified.
-                       boolean enabled = enablement == null;
-
-                       if (enablement != null) {
-                               // Set the default variable to the service context.
-                               EvaluationContext evalContext = new EvaluationContext(null, context);
-                               // Allow plug-in activation
-                               evalContext.setAllowPluginActivation(true);
-                               // Evaluate the expression
-                               try {
-                                       enabled = enablement.evaluate(evalContext).equals(EvaluationResult.TRUE);
-                               } catch (CoreException e) {
-                                       IStatus status = new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(), e.getLocalizedMessage(), e);
-                                       Platform.getLog(CoreBundleActivator.getContext().getBundle()).log(status);
-                               }
-                       }
-
-                       return enabled;
-               }
-
-               /**
-                * Returns the enablement expression.
-                *
-                * @return The enablement expression or <code>null</code>.
-                */
-               protected Expression getEnablement() {
-                       return expression;
-               }
-       }
-
-
-       /**
-        * Creates a new terminal context properties provider proxy instance and initialize it.
-        *
-        * @param config The configuration element. Must not be <code>null</code>.
-        * @return The new terminal context properties provider proxy instance.
-        */
-       private static Proxy getProxy(IConfigurationElement config) {
-               Assert.isNotNull(config);
-               Proxy proxy = new Proxy();
-               try {
-                       proxy.setInitializationData(config, null, null);
-               } catch (CoreException e) {
-                       if (Platform.inDebugMode()) {
-                               Platform.getLog(CoreBundleActivator.getContext().getBundle()).log(e.getStatus());
-                       }
-               }
-               return proxy;
-       }
-
-       /**
-        * Load the terminal context properties provider contributions.
-        */
-       private static void loadContributions() {
-               IExtensionPoint ep = Platform.getExtensionRegistry().getExtensionPoint("org.eclipse.tm.terminal.view.core.contextPropertiesProviders"); //$NON-NLS-1$
-               if (ep != null) {
-                       IExtension[] extensions = ep.getExtensions();
-                       if (extensions != null) {
-                               for (IExtension extension : extensions) {
-                                       IConfigurationElement[] configElements = extension.getConfigurationElements();
-                                       if (configElements != null) {
-                                               for (IConfigurationElement configElement : configElements) {
-                                                       if ("contextPropertiesProvider".equals(configElement.getName())) { //$NON-NLS-1$
-                                                               Proxy proxy = getProxy(configElement);
-                                                               contributions.add(proxy);
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-               }
-       }
-
-       /**
-        * Get the terminal context properties provider for the given context. The first terminal
-        * context properties provider which is enabled is returned.
-        *
-        * @param context The terminal context. Must not be <code>null</code>.
-        *
-        * @return The service or <code>null</code>.
-        */
-       public static ITerminalContextPropertiesProvider getProvider(Object context) {
-               Assert.isNotNull(context);
-
-               // Load the contributions if not yet loaded
-               synchronized (contributions) {
-                       if (!contributionsLoaded) {
-                               loadContributions();
-                               contributionsLoaded = true;
-                       }
-        }
-
-               for (Proxy proxy : contributions) {
-                       if (proxy.isEnabled(context)) {
-                               return proxy.getProvider();
-                       }
-               }
-
-               return null;
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/TerminalServiceFactory.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/TerminalServiceFactory.java
deleted file mode 100644 (file)
index 7dd819a..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.core;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.tm.terminal.view.core.activator.CoreBundleActivator;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
-import org.eclipse.tm.terminal.view.core.nls.Messages;
-import org.osgi.framework.Bundle;
-
-/**
- * Terminal service factory implementation.
- * <p>
- * Provides access to the terminal service instance.
- */
-public final class TerminalServiceFactory {
-       private static ITerminalService instance = null;
-
-       static {
-               // Tries to instantiate the terminal service implementation
-               // from the o.e.tm.terminal.view.ui bundle
-               Bundle bundle = Platform.getBundle("org.eclipse.tm.terminal.view.ui"); //$NON-NLS-1$
-               if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
-                       try {
-                   Class<?> clazz = bundle.loadClass("org.eclipse.tm.terminal.view.ui.services.TerminalService"); //$NON-NLS-1$
-                   instance = (ITerminalService) clazz.newInstance();
-            }
-            catch (Exception e) {
-               if (Platform.inDebugMode()) {
-                       Platform.getLog(bundle).log(new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(), Messages.TerminalServiceFactory_error_serviceImplLoadFailed, e));
-               }
-            }
-               }
-       }
-
-       /**
-        * Returns the terminal service instance.
-        */
-       public static ITerminalService getService() {
-               return instance;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/activator/CoreBundleActivator.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/activator/CoreBundleActivator.java
deleted file mode 100644 (file)
index 16e0ed8..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.core.activator;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class CoreBundleActivator implements BundleActivator {
-       // The bundle context
-       private static BundleContext context;
-
-       /**
-        * Returns the bundle context
-        *
-        * @return the bundle context
-        */
-       public static BundleContext getContext() {
-               return context;
-       }
-
-       /**
-        * Convenience method which returns the unique identifier of this plug-in.
-        */
-       public static String getUniqueIdentifier() {
-               if (getContext() != null && getContext().getBundle() != null) {
-                       return getContext().getBundle().getSymbolicName();
-               }
-               return "org.eclipse.tm.terminal.view.core"; //$NON-NLS-1$
-       }
-
-       /* (non-Javadoc)
-        * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-        */
-       @Override
-       public void start(BundleContext bundleContext) throws Exception {
-               CoreBundleActivator.context = bundleContext;
-       }
-
-       /* (non-Javadoc)
-        * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-        */
-       @Override
-       public void stop(BundleContext bundleContext) throws Exception {
-               CoreBundleActivator.context = null;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalContextPropertiesProvider.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalContextPropertiesProvider.java
deleted file mode 100644 (file)
index 86dd363..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.core.interfaces;
-
-import java.util.Map;
-
-/**
- * Terminal context properties provider.
- * <p>
- * The context properties provider allows querying desired properties
- * for a given context. The context is typically an element from a selection
- * and the inner structure of the element is unknown to the terminal.
- */
-public interface ITerminalContextPropertiesProvider {
-
-       /**
-        * Returns a unmodifiable map containing the target address and port for the given context,
-        * if it can be determined.
-        * <p>
-        * A context may return multiple target addresses and ports if the context can be reached using
-        * different connection methods.
-        * <p>
-        * <b>Note:</b>
-        * <ul>
-        * <li>See the constants defined in the context provider constants interface for default
-        * address and port types.</li>
-        * <li>The target address returned must <b>not</b> necessarily be an IP address.</li>
-        * <li>The values of the address or port properties might be <code>null</code>.</li>
-        * </ul>
-        *
-        * @param context The context to get the target addresses and ports from. Must not be <code>null</code>.
-        * @return The unmodifiable map containing the target addresses and ports, or <code>null</code>.
-        */
-       public Map<String, String> getTargetAddress(Object context);
-
-       /**
-        * Returns the property value stored under the given property key. If the property does not
-        * exist, <code>null</code> is returned.
-        *
-        * @param context The context to get the property from. Must not be <code>null</code>.
-        * @param key The property key. Must not be <code>null</code>.
-        *
-        * @return The stored property value or <code>null</code>.
-        */
-       public Object getProperty(Object context, String key);
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalService.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalService.java
deleted file mode 100644 (file)
index 7633762..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 - 2015 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.terminal.view.core.interfaces;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Terminal service.
- */
-public interface ITerminalService {
-
-       /**
-        * Client call back interface.
-        */
-       public interface Done {
-               /**
-                * Called when the terminal service operation is done.
-                *
-                * @param status The status of the terminal service operation.
-                */
-               public void done(IStatus status);
-       }
-
-       /**
-        * Opens a terminal asynchronously and invokes the given callback if done.
-        *
-        * @param properties The terminal properties. Must not be <code>null</code>.
-        * @param done The callback to invoke if finished or <code>null</code>.
-        */
-       public void openConsole(Map<String, Object> properties, Done done);
-
-       /**
-        * Close the terminal asynchronously and invokes the given callback if done.
-        *
-        * @param properties The terminal properties. Must not be <code>null</code>.
-        * @param done The callback to invoke if finished or <code>null</code>.
-        */
-       public void closeConsole(Map<String, Object> properties, Done done);
-
-       /**
-        * Terminate (disconnect) the terminal asynchronously and invokes the given callback if done.
-        *
-        * @param properties The terminal properties. Must not be <code>null</code>.
-        * @param done The callback to invoke if finished or <code>null</code>.
-        */
-       public void terminateConsole(Map<String, Object> properties, Done done);
-
-       /**
-        * Register the given listener to receive notifications about terminal events.
-        * Calling this method multiple times with the same listener has no effect.
-
-        * @param listener The terminal tab listener. Must not be <code>null</code>.
-        */
-       public void addTerminalTabListener(ITerminalTabListener listener);
-
-       /**
-        * Unregister the given listener from receiving notifications about terminal
-        * events. Calling this method multiple times with the same listener
-        * has no effect.
-        *
-        * @param listener The terminal tab listener. Must not be <code>null</code>.
-        */
-       public void removeTerminalTabListener(ITerminalTabListener listener);
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalServiceOutputStreamMonitorListener.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalServiceOutputStreamMonitorListener.java
deleted file mode 100644 (file)
index 0205f4c..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014 - 2015 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.terminal.view.core.interfaces;
-
-/**
- * An interface to be implemented by listeners who want to listen
- * to the streams data without interfering with the original data receiver.
- * <p>
- * Listeners are invoked within the monitor processing thread.
- */
-public interface ITerminalServiceOutputStreamMonitorListener {
-
-       /**
-        * Signals that some content has been read from the monitored stream.
-        *
-        * @param byteBuffer The byte stream. Must not be <code>null</code>.
-        * @param bytesRead The number of bytes that were read into the read buffer.
-        */
-       public void onContentReadFromStream(byte[] byteBuffer, int bytesRead);
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalTabListener.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalTabListener.java
deleted file mode 100644 (file)
index e4e35fa..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.core.interfaces;
-
-/**
- * Listener to implement and to register to get notified about
- * terminal tabs events, like the disposal of a terminal tab.
- */
-public interface ITerminalTabListener {
-
-       /**
-        * Invoked once a terminal tab got disposed. The source object is
-        * the disposed tab item and data is the custom data object associated
-        * with the disposed tab item.
-        *
-        * @param source The disposed tab item. Must not be <code>null</code>.
-        * @param data The custom data object associated with the disposed tab item or <code>null</code>.
-        */
-       public void terminalTabDisposed(Object source, Object data);
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/IContextPropertiesConstants.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/IContextPropertiesConstants.java
deleted file mode 100644 (file)
index b9d2b55..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.core.interfaces.constants;
-
-/**
- * Defines the terminal context properties constants.
- */
-public interface IContextPropertiesConstants {
-
-       /**
-        * Target name.
-        * <p>
-        * The target name is not meant to be identical with the targets network name. It can
-        * be the targets network name, but it can be any other string identifying the target
-        * to the user as well. The name is for display only, it is not meant to be used for
-        * communicating with the target.
-        */
-       public static String PROP_NAME = "name"; //$NON-NLS-1$
-
-       /**
-        * Target agent address.
-        * <p>
-        * <i>The value is typically the address an agent running at the target.</i>
-        */
-       public static String PROP_ADDRESS = "address"; //$NON-NLS-1$
-
-       /**
-        * Target agent port.
-        * <p>
-        * <i>The value is typically the port an agent running at the target.</i>
-        */
-       public static String PROP_PORT = "port"; //$NON-NLS-1$
-
-       /**
-        * The default user name to use to log into the target.
-        */
-       public static String PROP_DEFAULT_USER = "defaultUser"; //$NON-NLS-1$
-
-       /**
-        * The default encoding to use.
-        */
-       public static String PROP_DEFAULT_ENCODING = "defaultEncoding"; //$NON-NLS-1$
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/ILineSeparatorConstants.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/ILineSeparatorConstants.java
deleted file mode 100644 (file)
index 7f147c3..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 - 2015 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.terminal.view.core.interfaces.constants;
-
-/**
- * Line separator constants.
- */
-public interface ILineSeparatorConstants {
-
-       /**
-        * The line separator setting CR (carriage return only; for example, used by Mac OS 9).
-        */
-       public final static String LINE_SEPARATOR_CR = "\\r"; //$NON-NLS-1$
-
-       /**
-        * The line separator setting CRLF (carriage return and line feed; for example, used by
-        * Windows).
-        */
-       public final static String LINE_SEPARATOR_CRLF = "\\r\\n"; //$NON-NLS-1$
-
-       /**
-        * The line separator setting LF (line feed only; used by all UNIX-based systems).
-        */
-       public final static String LINE_SEPARATOR_LF = "\\n"; //$NON-NLS-1$
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/ITerminalsConnectorConstants.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/ITerminalsConnectorConstants.java
deleted file mode 100644 (file)
index ebd5dd8..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2016 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
- * Max Weninger (Wind River) - [361352] [TERMINALS][SSH] Add SSH terminal support
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.interfaces.constants;
-
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalServiceOutputStreamMonitorListener;
-
-
-/**
- * Defines the terminals connector constants.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface ITerminalsConnectorConstants {
-
-       /**
-        * Property: The unique id of the terminals view to open.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_ID = "id"; //$NON-NLS-1$
-
-       /**
-        * Property: The unique secondary id of the terminals view to open.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_SECONDARY_ID = "secondaryId"; //$NON-NLS-1$
-
-       /**
-        * Property: The title of the terminal tab to open.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_TITLE = "title"; //$NON-NLS-1$
-
-       /**
-        * Property: The encoding of the terminal tab to open.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_ENCODING = "encoding"; //$NON-NLS-1$
-
-       /**
-        * Property: Custom data object to associate with the terminal tab.
-        * <p>
-        * Property Type: {@link Object}
-        */
-       public static final String PROP_DATA = "data"; //$NON-NLS-1$
-
-       /**
-        * Property: External selection to associate with the terminal tab.
-        * <p>
-        * Property Type: {@link org.eclipse.jface.viewers.ISelection}
-        */
-       public static final String PROP_SELECTION = "selection"; //$NON-NLS-1$
-
-       /**
-        * Property: Flag to force a new terminal tab.
-        * <p>
-        * Property Type: {@link Boolean}
-        */
-       public static final String PROP_FORCE_NEW = "terminal.forceNew"; //$NON-NLS-1$
-
-       /**
-        * Property: Terminal launcher delegate id.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_DELEGATE_ID = "delegateId"; //$NON-NLS-1$
-
-       /**
-        * Property: Specific terminal connector type id. Allows clients to
-        *           override the specifically used terminal connector
-        *           implementation for a given type.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_TERMINAL_CONNECTOR_ID = "tm.terminal.connector.id"; //$NON-NLS-1$
-
-       // ***** Generic terminals connector properties *****
-
-       /**
-        * Property: Timeout to be passed to the terminal connector. The specific terminal
-        *           connector implementation may interpret this value differently. If not
-        *           set, the terminal connector may use a default value.
-        * <p>
-        * Property Type: {@link Integer}
-        */
-       public static final String PROP_TIMEOUT = "timeout"; //$NON-NLS-1$
-
-       /**
-        * Property: Flag to control if a local echo is needed from the terminal widget.
-        *           <p>Typical for process and streams terminals.
-        * <p>
-        * Property Type: {@link Boolean}
-        */
-       public static final String PROP_LOCAL_ECHO = "localEcho"; //$NON-NLS-1$
-
-       /**
-        * Property: Data flag to tell the terminal to not reconnect when hitting enter
-        *           in a disconnected terminal.
-        * <p>
-        * Property Type: {@link Boolean}
-        */
-       public static final String PROP_DATA_NO_RECONNECT = "data.noReconnect"; //$NON-NLS-1$
-
-       /**
-        * Property: The line separator expected by the remote terminal on input streams and
-        *           send by the remote terminal on output streams.
-        *           <p>Typical for process and streams terminals.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_LINE_SEPARATOR = "lineSeparator"; //$NON-NLS-1$
-
-       /**
-        * Property: The list of stdout listeners to attach to the corresponding stream monitor.
-        *           <p>Typical for process and streams terminals.
-        * <p>
-        * Property Type: {@link ITerminalServiceOutputStreamMonitorListener} array
-        */
-       public static final String PROP_STDOUT_LISTENERS = "stdoutListeners"; //$NON-NLS-1$
-
-       /**
-        * Property: The list of stderr listeners to attach to the corresponding stream monitor.
-        *           <p>Typical for process and streams terminals.
-        * <p>
-        * Property Type: {@link ITerminalServiceOutputStreamMonitorListener} array
-        */
-       public static final String PROP_STDERR_LISTENERS = "stderrListeners"; //$NON-NLS-1$
-
-       /**
-        * Property: If set to <code>true</code>, backslashes are translated to
-        *           slashes before pasting the text to the terminal widget.
-        * <p>
-        * Property Type: {@link Boolean}
-        */
-       public static final String PROP_TRANSLATE_BACKSLASHES_ON_PASTE = "translateBackslashesOnPaste"; //$NON-NLS-1$
-
-       // ***** IP based terminals connector properties *****
-
-       /**
-        * Property: Host name or IP address the terminal server is running.
-        *           <p>Typical for telnet or ssh terminals.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_IP_HOST = "ip.host"; //$NON-NLS-1$
-
-       /**
-        * Property: Port at which the terminal server is providing the console input and output.
-        *           <p>Typical for telnet or ssh terminals.
-        * <p>
-        * Property Type: {@link Integer}
-        */
-       public static final String PROP_IP_PORT = "ip.port"; //$NON-NLS-1$
-
-       /**
-        * Property: An offset to add to the specified port number.
-        *           <p>Typical for telnet or ssh terminals.
-        * <p>
-        * Property Type: {@link Integer}
-        */
-       public static final String PROP_IP_PORT_OFFSET = "ip.port.offset"; //$NON-NLS-1$
-
-       // ***** Process based terminals connector properties *****
-
-       /**
-        * Property: Process image path.
-        *                       <p>Typical for process terminals.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_PROCESS_PATH = "process.path"; //$NON-NLS-1$
-
-       /**
-        * Property: Process arguments.
-        *           <p>Typical for process terminals.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_PROCESS_ARGS = "process.args"; //$NON-NLS-1$
-
-       /**
-        * Property: Process arguments.
-        *           <p>Typical for process terminals.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_PROCESS_WORKING_DIR = "process.working_dir"; //$NON-NLS-1$
-
-       /**
-        * Property: Process environment.
-        *           <p>Typical for process terminals.
-        * <p>
-        * Property Type: {@link String} array
-        */
-       public static final String PROP_PROCESS_ENVIRONMENT = "process.environment"; //$NON-NLS-1$
-
-       /**
-        * Property: Flag to merge process environment with native environment.
-        *           <p>Typical for process terminals.
-        * <p>
-        * Property Type: {@link Boolean}
-        */
-       public static final String PROP_PROCESS_MERGE_ENVIRONMENT = "process.environment.merge"; //$NON-NLS-1$
-
-       /**
-        * Property: Runtime process instance.
-     *           <p>Typical for process terminals.
-        * <p>
-        * Property Type: {@link Process}
-        */
-       public static final String PROP_PROCESS_OBJ = "process"; //$NON-NLS-1$
-
-       /**
-        * Property: Runtime process PTY instance.
-        *           <p>Typical for process terminals.
-        * <p>
-        * Property Type: {@link org.eclipse.cdt.utils.pty.PTY}
-        */
-       public static final String PROP_PTY_OBJ = "pty"; //$NON-NLS-1$
-
-       // ***** Streams based terminals connector properties *****
-
-       /**
-        * Property: Stdin streams instance.
-        *           <p>Typical for streams terminals.
-        * <p>
-        * Property Type: {@link OutputStream}
-        */
-       public static final String PROP_STREAMS_STDIN = "streams.stdin"; //$NON-NLS-1$
-
-       /**
-        * Property: Stdout streams instance.
-        *           <p>Typical for streams terminals.
-        * <p>
-        * Property Type: {@link InputStream}
-        */
-       public static final String PROP_STREAMS_STDOUT = "streams.stdout"; //$NON-NLS-1$
-
-       /**
-        * Property: Stderr streams instance.
-        *           <p>Typical for streams terminals.
-        * <p>
-        * Property Type: {@link InputStream}
-        */
-       public static final String PROP_STREAMS_STDERR = "streams.stderr"; //$NON-NLS-1$
-
-       // ***** Ssh specific properties *****
-
-       /**
-        * Property: ssh keep alive value.
-        * <p>
-        * Property Type: {@link Integer}
-        */
-       public static final String PROP_SSH_KEEP_ALIVE = "ssh.keep_alive"; //$NON-NLS-1$
-
-       /**
-        * Property: Ssh password.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_SSH_PASSWORD = "ssh.password"; //$NON-NLS-1$
-
-       /**
-        * Property: Ssh user.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_SSH_USER = "ssh.user"; //$NON-NLS-1$
-
-       // ***** Serial specific properties *****
-
-       /**
-        * The serial device name.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_SERIAL_DEVICE = "serial.device"; //$NON-NLS-1$
-
-       /**
-        * The baud rate.
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_SERIAL_BAUD_RATE = "serial.baudrate"; //$NON-NLS-1$
-
-       /**
-        * The data bits
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_SERIAL_DATA_BITS = "serial.databits"; //$NON-NLS-1$
-
-       /**
-        * The parity
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_SERIAL_PARITY = "serial.parity"; //$NON-NLS-1$
-
-       /**
-        * The stop bits
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_SERIAL_STOP_BITS = "serial.stopbits"; //$NON-NLS-1$
-
-       /**
-        * The flow control
-        * <p>
-        * Property Type: {@link String}
-        */
-       public static final String PROP_SERIAL_FLOW_CONTROL = "serial.flowcontrol"; //$NON-NLS-1$
-
-       // ***** Telnet specific properties *****
-
-       /**
-        * The end-of-line sequence to be sent to the server on "Enter".
-        * <p>
-        * Property Type: {@link String}
-        * @since 4.2
-        */
-       public static final String PROP_TELNET_EOL = "telnet.eol"; //$NON-NLS-1$
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/internal/PropertyTester.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/internal/PropertyTester.java
deleted file mode 100644 (file)
index ceca0ef..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 - 2015 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.terminal.view.core.internal;
-
-import org.eclipse.tm.terminal.view.core.TerminalContextPropertiesProviderFactory;
-
-
-
-/**
- * Property tester implementation.
- */
-public class PropertyTester extends org.eclipse.core.expressions.PropertyTester {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
-        */
-       @Override
-       public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
-
-               // "hasContextPropertiesProvider": Checks if a context properties provider is available for the given receiver.
-               if ("hasContextPropertiesProvider".equals(property)) { //$NON-NLS-1$
-                       boolean hasProvider = TerminalContextPropertiesProviderFactory.getProvider(receiver) != null;
-                       return expectedValue instanceof Boolean ? ((Boolean)expectedValue).equals(Boolean.valueOf(hasProvider)) : hasProvider;
-               }
-
-               return false;
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/nls/Messages.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/nls/Messages.java
deleted file mode 100644 (file)
index f382eea..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.core.nls;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Externalized strings management.
- */
-public class Messages extends NLS {
-
-       // The plug-in resource bundle name
-       private static final String BUNDLE_NAME = "org.eclipse.tm.terminal.view.core.nls.Messages"; //$NON-NLS-1$
-
-       /**
-        * Static constructor.
-        */
-       static {
-               // Load message values from bundle file
-               NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-       }
-
-       // **** Declare externalized string id's down here *****
-
-       public static String TerminalServiceFactory_error_serviceImplLoadFailed;
-
-       public static String Extension_error_missingRequiredAttribute;
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/nls/Messages.properties b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/nls/Messages.properties
deleted file mode 100644 (file)
index 212cd18..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2015 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
-###############################################################################
-
-TerminalServiceFactory_error_serviceImplLoadFailed=Failed to load terminal service implementation.
-
-Extension_error_missingRequiredAttribute=Required attribute "{0}" missing for extension "{1}"!
-
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/preferences/ScopedEclipsePreferences.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/preferences/ScopedEclipsePreferences.java
deleted file mode 100644 (file)
index d9e974b..0000000
+++ /dev/null
@@ -1,459 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.core.preferences;
-
-import java.io.OutputStream;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
-import org.eclipse.core.runtime.preferences.IPreferenceFilter;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.osgi.service.prefs.BackingStoreException;
-
-/**
- * Helper class to handle scoped Eclipse preferences for plug-in's. Scoped
- * preferences means a given preference context plus the default preferences
- * scope.
- * <p>
- * On changes a {@link PreferenceChangeEvent} is sent to inform all listeners of the change.
- *
- * @see IEclipsePreferences
- * @see IEclipsePreferences.PreferenceChangeEvent
- * @see IEclipsePreferences.IPreferenceChangeListener
- */
-public class ScopedEclipsePreferences {
-       /**
-        * The preferences scope qualifier.
-        */
-       private final String qualifier;
-
-       /**
-        * The default scope preference node.
-        */
-       protected final IEclipsePreferences defaultPrefs;
-
-       /**
-        * The context scope preference node.
-        */
-       protected final IEclipsePreferences contextScopePrefs;
-
-       /**
-        * The registered preference change listeners.
-        */
-       private final ListenerList listeners = new ListenerList();
-
-       /**
-        * Constructor.
-        * <p>
-        * Initialize the scoped preferences with a new instance scope for the given qualifier. The default
-        * scope is determined by calling <code>DefaultScope().getNode(qualifier)</code>.
-        *
-        * @param qualifier The qualifier for the preferences (in example the unique identifier of a plugin). Must not be <code>null</code>.
-        */
-       public ScopedEclipsePreferences(String qualifier) {
-               this(InstanceScope.INSTANCE, qualifier);
-       }
-
-       /**
-        * Constructor.
-        * <p>
-        * Initialize the scoped preferences with the given scope. The default scope
-        * is determined by calling <code>DefaultScope().getNode(qualifier)</code>.
-        *
-        * @param context The preference scope context. Must not be <code>null</code>.
-        * @param qualifier The qualifier for the preferences (in example the unique identifier of a plugin). Must not be <code>null</code>.
-        */
-       public ScopedEclipsePreferences(IScopeContext context, String qualifier) {
-               Assert.isNotNull(context);
-               Assert.isNotNull(qualifier);
-               this.qualifier = qualifier;
-               defaultPrefs = DefaultScope.INSTANCE.getNode(getQualifier());
-               contextScopePrefs = context.getNode(getQualifier());
-       }
-
-       /**
-        * Returns the qualifier that is used to get the preferences.
-        * For plugin preferences, this is the unique identifier of the plugin.
-        */
-       protected final String getQualifier() {
-               return qualifier;
-       }
-
-       /**
-        * Exports the preferences to the stream.
-        * <p>
-        * <b>Note:</b> The stream will be closed after the export.
-        *
-        * @param stream The stream to where preferences and defaults should be exported.
-        */
-       public void exportPreferences(OutputStream stream) {
-               Assert.isNotNull(stream);
-               try {
-                       IPreferenceFilter filter = new IPreferenceFilter() {
-                               /* (non-Javadoc)
-                                * @see org.eclipse.core.runtime.preferences.IPreferenceFilter#getScopes()
-                                */
-                               @Override
-                               public String[] getScopes() {
-                                       return new String[] { InstanceScope.SCOPE };
-                               }
-                               /* (non-Javadoc)
-                                * @see org.eclipse.core.runtime.preferences.IPreferenceFilter#getMapping(java.lang.String)
-                                */
-                               @Override
-                               public Map getMapping(String scope) {
-                                       return null;
-                               }
-                       };
-
-                       Platform.getPreferencesService().exportPreferences(contextScopePrefs, new IPreferenceFilter[] { filter }, stream);
-                       stream.close();
-               }
-               catch (Exception e) {
-               }
-       }
-
-       /**
-        * Check whether a key is set or not.
-        *
-        * @param key The key to check.
-        * @return <code>null</code> if the key does not exist.
-        */
-       public boolean containsKey(String key) {
-               return Platform.getPreferencesService().getString(getQualifier(), key, null, null) != null;
-       }
-
-       /**
-        * Get a String preference value.
-        *
-        * @param key The preference key.
-        * @return The value of the preference key or the default value if not set.
-        */
-       public final String getString(String key) {
-               return Platform.getPreferencesService().getString(getQualifier(), key, null, null);
-       }
-
-       /**
-        * Get a boolean preference value.
-        *
-        * @param key The preference key.
-        * @return The value of the preference key or the default value if not set.
-        */
-       public final boolean getBoolean(String key) {
-               return Platform.getPreferencesService().getBoolean(getQualifier(), key, false, null);
-       }
-
-       /**
-        * Get an int preference value.
-        *
-        * @param key The preference key.
-        * @return The value of the preference key or the default value if not set.
-        */
-       public final int getInt(String key) {
-               return Platform.getPreferencesService().getInt(getQualifier(), key, 0, null);
-       }
-
-       /**
-        * Get a long preference value.
-        *
-        * @param key The preference key.
-        * @return The value of the preference key or the default value if not set.
-        */
-       public final long getLong(String key) {
-               return Platform.getPreferencesService().getLong(getQualifier(), key, 0, null);
-       }
-
-       /**
-        * Get a default String preference value.
-        *
-        * @param key The preference key.
-        * @return The default value of the preference key or <code>null</code>.
-        */
-       public final String getDefaultString(String key) {
-               return defaultPrefs.get(key, null);
-       }
-
-       /**
-        * Get a default boolean preference value.
-        *
-        * @param key The preference key.
-        * @return The default value of the preference key or <code>null</code>.
-        */
-       public final boolean getDefaultBoolean(String key) {
-               return defaultPrefs.getBoolean(key, false);
-       }
-
-       /**
-        * Get a default int preference value.
-        *
-        * @param key The preference key.
-        * @return The default value of the preference key or <code>null</code>.
-        */
-       public final int getDefaultInt(String key) {
-               return defaultPrefs.getInt(key, 0);
-       }
-
-       /**
-        * Get a default long preference value.
-        *
-        * @param key The preference key.
-        * @return The default value of the preference key or <code>null</code>.
-        */
-       public final long getDefaultLong(String key) {
-               return defaultPrefs.getLong(key, 0);
-       }
-
-       /**
-        * Set a String preference value. If the value is <code>null</code> or is equal to
-        * the default value, the entry will be removed.
-        * <p>
-        * A {@link PreferenceChangeEvent} is fired, if the value has changed.
-        *
-        * @param key The preference key.
-        * @return The value of the preference key.
-        */
-       public void putString(String key, String value) {
-               String defValue = defaultPrefs.get(key, null);
-               String instValue = getString(key);
-               if (value == null || value.equals(defValue)) {
-                       contextScopePrefs.remove(key);
-                       flushAndNotify(contextScopePrefs, key, instValue, defValue);
-               }
-               else if (!value.equals(instValue)) {
-                       contextScopePrefs.put(key, value);
-                       flushAndNotify(contextScopePrefs, key, instValue, value);
-               }
-       }
-
-       /**
-        * Set a boolean preference value. If the value is equal the default value,
-        * the entry will be removed.
-        * <p>
-        * A {@link PreferenceChangeEvent} is fired, if the value has changed.
-        *
-        * @param key The preference key.
-        * @return The value of the preference key.
-        */
-       public void putBoolean(String key, boolean value) {
-               boolean defValue = defaultPrefs.getBoolean(key, false);
-               boolean instValue = getBoolean(key);
-               if (value == defValue) {
-                       contextScopePrefs.remove(key);
-                       flushAndNotify(contextScopePrefs, key, Boolean.toString(instValue), Boolean.toString(defValue));
-               }
-               else if (value != instValue) {
-                       contextScopePrefs.putBoolean(key, value);
-                       flushAndNotify(contextScopePrefs, key, Boolean.toString(instValue), Boolean.toString(value));
-               }
-       }
-
-       /**
-        * Set an int preference value. If the value is equal to the default value,
-        * the entry will be removed.
-        * <p>
-        * A {@link PreferenceChangeEvent} is fired, if the value has changed. The old
-        * and new values are string representation in base 10.
-        *
-        * @param key The preference key.
-        * @return The value of the preference key.
-        */
-       public void putInt(String key, int value) {
-               int defValue = defaultPrefs.getInt(key, 0);
-               int instValue = getInt(key);
-               if (value == defValue) {
-                       contextScopePrefs.remove(key);
-                       flushAndNotify(contextScopePrefs, key, Integer.toString(instValue), Integer.toString(defValue));
-               }
-               else if (value != instValue) {
-                       contextScopePrefs.putInt(key, value);
-                       flushAndNotify(contextScopePrefs, key, Integer.toString(instValue), Integer.toString(value));
-               }
-       }
-
-       /**
-        * Set a long preference value. If the given value is equal to the default
-        * value, the entry will be removed.
-        * <p>
-        * A {@link PreferenceChangeEvent} is fired, if the value has changed. The old
-        * and new values are string representation in base 10.
-        *
-        * @param key The preference key.
-        * @return The value of the preference key.
-        */
-       public void putLong(String key, long value) {
-               long defValue = defaultPrefs.getLong(key, 0);
-               long instValue = getLong(key);
-               if (value == defValue) {
-                       contextScopePrefs.remove(key);
-                       flushAndNotify(contextScopePrefs, key, Long.toString(instValue), Long.toString(defValue));
-               }
-               else if (value != instValue) {
-                       contextScopePrefs.putLong(key, value);
-                       flushAndNotify(contextScopePrefs, key, Long.toString(instValue), Long.toString(value));
-               }
-       }
-
-       /**
-        * Set a default String preference value. If the given value is <code>null</code>,
-        * the entry will be removed.
-        * <p>
-        * A {@link PreferenceChangeEvent} is fired, if the value has changed.
-        *
-        * @param key The preference key.
-        * @return The default value of the preference key.
-        */
-       public void putDefaultString(String key, String value) {
-               String defValue = defaultPrefs.get(key, null);
-               if (value == null) {
-                       defaultPrefs.remove(key);
-                       flushAndNotify(defaultPrefs, key, defValue, null);
-               }
-               else if (!value.equals(defValue)) {
-                       defaultPrefs.put(key, value);
-                       flushAndNotify(defaultPrefs, key, defValue, value);
-               }
-       }
-
-       /**
-        * Set a default boolean preference value.
-        * <p>
-        * A {@link PreferenceChangeEvent} is fired, if the value has changed.
-        *
-        * @param key The preference key.
-        * @return The default value of the preference key.
-        */
-       public void putDefaultBoolean(String key, boolean value) {
-               boolean defValue = defaultPrefs.getBoolean(key, false);
-               if (value != defValue) {
-                       defaultPrefs.putBoolean(key, value);
-                       flushAndNotify(defaultPrefs, key, Boolean.toString(defValue), Boolean.toString(value));
-               }
-       }
-
-       /**
-        * Set a default int preference value.
-        * <p>
-        * A {@link PreferenceChangeEvent} is fired, if the value has changed. The old
-        * and new values are string representation in base 10.
-        *
-        * @param key The preference key.
-        * @return The default value of the preference key.
-        */
-       public void putDefaultInt(String key, int value) {
-               int defValue = defaultPrefs.getInt(key, 0);
-               if (value != defValue) {
-                       defaultPrefs.putInt(key, value);
-                       flushAndNotify(defaultPrefs, key, Integer.toString(defValue), Integer.toString(value));
-               }
-       }
-
-       /**
-        * Set a default long preference value.
-        * <p>
-        * A {@link PreferenceChangeEvent} is fired, if the value has changed. The old
-        * and new values are string representation in base 10.
-        *
-        * @param key The preference key.
-        * @return The default value of the preference key.
-        */
-       public void putDefaultLong(String key, long value) {
-               long defValue = defaultPrefs.getLong(key, 0);
-               if (value != defValue) {
-                       defaultPrefs.putLong(key, value);
-                       flushAndNotify(defaultPrefs, key, Long.toString(defValue), Long.toString(value));
-               }
-       }
-
-       /**
-        * Write back the changes to the store and notify all listeners about the changed key.
-        *
-        * @param node The preference node which has changed. Must not be <code>null</code>.
-        * @param key The key of the changed preference. Must not be <code>null</code>.
-        * @param oldValue The old value as a {@link String}, or <code>null</code>.
-        * @param newValue The new value as a {@link String}, or <code>null</code>.
-        */
-       protected final void flushAndNotify(IEclipsePreferences node, String key, String oldValue, String newValue) {
-               // Flush the preferences to the persistence store
-               try { node.flush(); } catch (BackingStoreException e) { /* Ignored on purpose */ }
-
-               // Notify the listeners
-               firePreferenceEvent(node, key, oldValue, newValue);
-       }
-
-       /**
-        * Register the given listener to receive notifications of preference changes to this node.
-        * Calling this method multiple times with the same listener has no effect. The given listener
-        * argument must not be <code>null</code>.
-        *
-        * @param listener The preference change listener. Must not be <code>null</code>.
-        */
-       public void addPreferenceChangeListener(IPreferenceChangeListener listener) {
-               Assert.isNotNull(listener);
-               listeners.add(listener);
-       }
-
-       /**
-        * De-register the given listener from receiving notifications of preference changes
-        * to this node. Calling this method multiple times with the same listener has no
-        * effect. The given listener argument must not be <code>null</code>.
-        *
-        * @param listener The preference change listener. Must not be <code>null</code>.
-        */
-       public void removePreferenceChangeListener(IPreferenceChangeListener listener) {
-               Assert.isNotNull(listener);
-               listeners.remove(listener);
-       }
-
-       /**
-        * Convenience method for notifying the registered preference change listeners.
-        *
-        * @param node The preference node which has changed. Must not be <code>null</code>.
-        * @param key The key of the changed preference. Must not be <code>null</code>.
-        * @param oldValue The old value as a {@link String}, or <code>null</code>.
-        * @param newValue The new value as a {@link String}, or <code>null</code>.
-        */
-       protected void firePreferenceEvent(IEclipsePreferences node, String key, String oldValue, String newValue) {
-               Assert.isNotNull(node);
-               Assert.isNotNull(key);
-
-               // If no listener is registered, we are done here
-               if (listeners.isEmpty()) return;
-
-               // Get the list or currently registered listeners
-               Object[] l = listeners.getListeners();
-               // Create the preference change event
-               final PreferenceChangeEvent event = new PreferenceChangeEvent(node, key, oldValue, newValue);
-               for (int i = 0; i < l.length; i++) {
-                       final IPreferenceChangeListener listener = (IPreferenceChangeListener) l[i];
-                       ISafeRunnable job = new ISafeRunnable() {
-                               @Override
-                               public void handleException(Throwable exception) {
-                                       // already logged in Platform#run()
-                               }
-
-                               @Override
-                               public void run() throws Exception {
-                                       listener.preferenceChange(event);
-                               }
-                       };
-                       SafeRunner.run(job);
-               }
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/tracing/TraceHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/tracing/TraceHandler.java
deleted file mode 100644 (file)
index fd8bdeb..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.core.tracing;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.tm.terminal.view.core.activator.CoreBundleActivator;
-
-/**
- * Helper class to handle tracing using the platforms debug capabilities.
- */
-public class TraceHandler {
-       /**
-        * The bundle identifier.
-        */
-       private final String identifier;
-
-       /**
-        * The tracer instance.
-        */
-       private Tracer tracer = null;
-
-       /**
-        * The tracer is responsible for writing the trace message to the desired
-        * output media.
-        */
-       protected static class Tracer {
-
-               /**
-                * The bundle identifier.
-                */
-               private final String fIdentifier;
-
-               /**
-                * The qualifier for the default &quot;&lt;bundle identifier&gt;/debugmode&quot;
-                * tracing slot.
-                */
-               private final String fDebugModeQualifier;
-
-               /**
-                * Constructor.
-                *
-                * @param identifier The bundle identifier. Must not be <code>null</code>.
-                */
-               public Tracer(String identifier) {
-                       Assert.isNotNull(identifier);
-                       fIdentifier = identifier;
-
-                       // Initialize the debug mode qualifier
-                       fDebugModeQualifier = fIdentifier + "/debugmode"; //$NON-NLS-1$
-               }
-
-               /**
-                * Returns the value of the debug mode tracing slot.
-                * <p>
-                * If not set, or the value is not an {@link Integer}, the method returns <code>0</code>.
-                *
-                * @return The debug mode value.
-                */
-               protected int getDebugMode() {
-                       try {
-                               String mode = Platform.getDebugOption(fDebugModeQualifier);
-                               if (mode != null && Integer.decode(mode).intValue() > 0) {
-                                       return Integer.decode(mode).intValue();
-                               }
-                       } catch (NumberFormatException e) { /* ignored on purpose */ }
-
-                       return 0;
-               }
-
-               /**
-                * Check if the specified trace slot is enabled.
-                *
-                * @param slotId The name of the slot.
-                * @return <code>true</code> if the slot is defined and enabled, <code>false</code> otherwise.
-                */
-               protected boolean isSlotEnabled(String slotId) {
-                       return fIdentifier != null ? Boolean.parseBoolean(Platform.getDebugOption(fIdentifier + "/" + slotId)) : false; //$NON-NLS-1$
-               }
-
-               /**
-                * Check if tracing is enabled for given mode and slot.
-                *
-                * @param debugMode The debug mode for the current debug.
-                * @param slotId The name of the slot.
-                *
-                * @return <code>true</code> if the debug should be written, <code>false</code> otherwise.
-                */
-               protected final boolean isEnabled(int debugMode, String slotId) {
-                       return getDebugMode() < 0 ||
-                       (debugMode <= getDebugMode() &&
-                                       (slotId == null || slotId.trim().length() == 0 || isSlotEnabled(slotId)));
-               }
-
-               /**
-                * Format the trace message.
-                *
-                * @param message The trace message.
-                * @param debugMode The debug mode.
-                * @param slotId The name of the slot.
-                * @param severity The severity. See {@link IStatus} for valid severity values.
-                * @param clazz The class that calls this tracer.
-                *
-                * @see IStatus
-                */
-               protected String getFormattedDebugMessage(String message, int debugMode, String slotId, int severity, Object clazz) {
-                       StringBuffer debug = new StringBuffer();
-                       if (slotId != null || clazz != null) {
-                               if (clazz != null) {
-                                       String name = clazz instanceof Class<?> ? ((Class<?>)clazz).getSimpleName() : clazz.getClass().getSimpleName();
-                                       debug.append(name.trim().length() > 0 ? name.trim() : clazz instanceof Class<?> ? ((Class<?>)clazz).getName() : clazz.getClass().getName());
-                               }
-                               if (slotId != null) {
-                                       debug.append(" at "); //$NON-NLS-1$
-                                       debug.append(slotId);
-                               }
-                               if (debugMode >= 0) {
-                                       debug.append(" (Mode "); //$NON-NLS-1$
-                                       debug.append(debugMode);
-                                       debug.append(')');
-                               }
-                               debug.append('\n');
-                               debug.append('\t');
-                       }
-                       debug.append(message);
-
-                       return debug.toString();
-               }
-
-               /**
-                * Write the trace message.
-                *
-                * @param message The trace message.
-                * @param debugMode The debug mode.
-                * @param slotId The name of the slot.
-                * @param severity The severity. See {@link IStatus} for valid severity values.
-                * @param clazz The class that calls this tracer.
-                *
-                * @see IStatus
-                */
-               protected void write(String message, int debugMode, String slotId, int severity, Object clazz) {
-                       String formattedMessage = getFormattedDebugMessage(message, debugMode, slotId, severity, clazz);
-                       if (severity == IStatus.ERROR || severity == IStatus.WARNING) {
-                               System.err.println(formattedMessage);
-                       }
-                       else {
-                               System.out.println(formattedMessage);
-                       }
-               }
-
-               /**
-                * Trace the given message with the given debug mode and slot.
-                *
-                * @param message The trace message.
-                * @param debugMode The debug mode.
-                * @param slotId The name of the slot.
-                * @param severity The severity. See {@link IStatus} for valid severity values.
-                * @param clazz The class that calls this tracer.
-                *
-                * @see IStatus
-                */
-               public final void trace(String message, int debugMode, String slotId, int severity, Object clazz) {
-                       if (isEnabled(debugMode, slotId)) {
-                               write(message, debugMode, slotId, severity, clazz);
-                       }
-               }
-       }
-
-       /**
-        * Constructor.
-        * <p>
-        * Initializes the tracing handler with the given bundle identifier.
-        *
-        * @param identifier The bundle identifier or <code>null</code>.
-        */
-       public TraceHandler(String identifier) {
-               this.identifier = identifier != null ? identifier : CoreBundleActivator.getUniqueIdentifier();
-               Assert.isNotNull(this.identifier);
-       }
-
-       /**
-        * Returns the identifier.
-        */
-       protected final String getIdentifier() {
-               return identifier;
-       }
-
-       /**
-        * Returns the tracer instance. Create a new tracer instance
-        * on first invocation.
-        *
-        * @return The tracer instance.
-        */
-       protected Tracer getTracer() {
-               if (tracer == null) {
-                       tracer = new Tracer(identifier);
-               }
-               return tracer;
-       }
-
-       /**
-        * Return the current debug mode.
-        */
-       public final int getDebugMode() {
-               return getTracer().getDebugMode();
-       }
-
-       /**
-        * Check whether a trace slot is enabled. The debug mode defaults
-        * to 0.
-        *
-        * @param slotId The name of the slot.
-        *
-        * @return <code>true</code> if the slot is enabled, <code>false</code> otherwise.
-        */
-       public final boolean isSlotEnabled(String slotId) {
-               return isSlotEnabled(0, slotId);
-       }
-
-       /**
-        * Check whether a trace slot is enabled with the given debug mode.
-        *
-        * @param debugMode The debug mode
-        * @param slotId The name of the slot.
-        *
-        * @return <code>true</code> if the slot is enabled, <code>false</code> otherwise.
-        */
-       public final boolean isSlotEnabled(int debugMode, String slotId) {
-               return getTracer().isEnabled(debugMode, slotId);
-       }
-
-       /**
-        * Trace the given message.
-        * <p>
-        * The message severity will be {@link IStatus#INFO} and the message will be
-        * traced unconditionally.
-        *
-        * @param message The message.
-        * @param clazz The class that calls this tracer or <code>null</code>.
-        */
-       public final void trace(String message, Object clazz) {
-               getTracer().trace(message, 0, null, IStatus.INFO, clazz);
-       }
-
-       /**
-        * Trace the given message.
-        * <p>
-        * The message severity will be {@link IStatus#INFO}.
-        *
-        * @param message The message.
-        * @param debugMode The minimum debug mode that has to be set to write out the message.
-        * @param clazz The class that calls this tracer or <code>null</code>.
-        */
-       public final void trace(String message, int debugMode, Object clazz) {
-               getTracer().trace(message, debugMode, null, IStatus.INFO, clazz);
-       }
-
-       /**
-        * Trace the given message.
-        * <p>
-        * The message severity will be {@link IStatus#INFO} and the debug mode
-        * will default to <code>0</code>.
-        *
-        * @param message The message.
-        * @param slotId The slot that has to be enabled to write out the message.
-        * @param clazz The class that calls this tracer or <code>null</code>.
-        */
-       public final void trace(String message, String slotId, Object clazz) {
-               getTracer().trace(message, 0, slotId, IStatus.INFO, clazz);
-       }
-
-       /**
-        * Trace the given message.
-        *
-        * @param message The message.
-        * @param debugMode The minimum debug mode that has to be set to write out the message.
-        * @param slotId The slot that has to be enabled to write out the message.
-        * @param severity The severity. See {@link IStatus} for valid severity values.
-        * @param clazz The class that calls this tracer or <code>null</code>.
-        *
-        * @see IStatus
-        */
-       public final void trace(String message, int debugMode, String slotId, int severity, Object clazz) {
-               getTracer().trace(message, debugMode, slotId, severity, clazz);
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/utils/Env.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/utils/Env.java
deleted file mode 100644 (file)
index cdd2c58..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013, 2015 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.terminal.view.core.utils;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.service.environment.Constants;
-
-/**
- * Environment handling utility methods.
- */
-public class Env {
-
-       // Reference to the monitor to lock if determining the native environment
-       private final static Object ENV_GET_MONITOR = new Object();
-
-       // Reference to the native environment with the case of the variable names preserved
-       private static Map<String, String> nativeEnvironmentCasePreserved = null;
-
-       /**
-        * Returns the merged environment of the native environment and the passed
-        * in environment. Passed in variables will overwrite the native environment
-        * if the same variables are set there.
-        * <p>
-        * For use with terminals, the parameter <code>terminal</code> should be set to
-        * <code>true</code>. In this case, the method will assure that the <code>TERM</code>
-        * environment variable is always set to <code>ANSI</code> and is not overwritten
-        * by the passed in environment.
-        *
-        * @param envp The environment to set on top of the native environment or <code>null</code>.
-        * @param terminal <code>True</code> if used with an terminal, <code>false</code> otherwise.
-        *
-        * @return The merged environment.
-        */
-       public static String[] getEnvironment(String[] envp, boolean terminal) {
-               // Get the cached native environment
-               Map<String, String> nativeEnv = getNativeEnvironmentCasePreserved();
-               // Make a copy of the native environment so it can be manipulated without changing
-               // the cached environment
-               Map<String, String> env = new LinkedHashMap<String, String>(nativeEnv);
-               // Set the TERM environment variable if in terminal mode
-               if (terminal) env.put("TERM", "xterm"); //$NON-NLS-1$ //$NON-NLS-2$
-
-               // On Windows, the environment variable names are not case-sensitive. However,
-               // we desire to preserve the original case. Build up a translation map between
-               // an all lowercase name and the original environment name
-               Map<String, String> k2n = null;
-               if (Platform.OS_WIN32.equals(Platform.getOS())) {
-                       k2n = new HashMap<String, String>();
-                       for (String name : env.keySet()) {
-                               k2n.put(name.toLowerCase(), name);
-                       }
-               }
-
-               // If a "local" environment is provided, merge it with the native
-               // environment.
-               if (envp != null) {
-                       for (int i = 0; i < envp.length; i++) {
-                               // The full provided variable in form "name=value"
-                               String envpPart = envp[i];
-                               // Split the variable
-                               int eqIdx = envpPart.indexOf('=');
-                               if (eqIdx < 1)
-                                       continue;
-                               String name = envpPart.substring(0, eqIdx);
-                               // Map the variable name to the real environment name (Windows only)
-                               if (Platform.OS_WIN32.equals(Platform.getOS())) {
-                                       if (k2n.containsKey(name.toLowerCase())) {
-                                               String candidate = k2n.get(name.toLowerCase());
-                                               Assert.isNotNull(candidate);
-                                               name = candidate;
-                                       }
-                                       // Filter out environment variables with bad names
-                                       if ("".equals(name.trim()) || name.contains(":")) { //$NON-NLS-1$ //$NON-NLS-2$
-                                               continue;
-                                       }
-                               }
-                               // Get the variable value
-                               String value = envpPart.substring(eqIdx+1);
-                               // Don't overwrite the TERM variable if in terminal mode
-                               if (terminal && "TERM".equals(name)) continue; //$NON-NLS-1$
-                               // If a variable with the name does not exist, just append it
-                               if (!env.containsKey(name) && !"<unset>".equals(value)) { //$NON-NLS-1$
-                                       env.put(name, value);
-                               } else if (env.containsKey(name)) {
-                                       // If the value contains the special placeholder "<unset>", remove the variable from the environment
-                                       if ("<unset>".equals(value)) {//$NON-NLS-1$
-                                               env.remove(name);
-                                       } else {
-                                               // A variable with the name already exist, check if the value is different
-                                               String oldValue = env.get(name);
-                                               if (oldValue != null && !oldValue.equals(value) || oldValue == null && value != null) {
-                                                       env.put(name, value);
-                                               }
-                                       }
-                               }
-                       }
-               }
-
-               // Convert into an array of strings
-               List<String> keys = new ArrayList<String>(env.keySet());
-               // On Windows hosts, sort the environment keys
-               if (Platform.OS_WIN32.equals(Platform.getOS())) Collections.sort(keys);
-               Iterator<String> iter = keys.iterator();
-               List<String> strings = new ArrayList<String>(env.size());
-               StringBuilder buffer = null;
-               while (iter.hasNext()) {
-                       String key = iter.next();
-                       buffer = new StringBuilder(key);
-                       buffer.append('=').append(env.get(key));
-                       strings.add(buffer.toString());
-               }
-
-               return strings.toArray(new String[strings.size()]);
-       }
-
-       /**
-        * Determine the native environment.
-        *
-        * @return The native environment, or an empty map.
-        */
-       private static Map<String, String> getNativeEnvironmentCasePreserved() {
-               synchronized (ENV_GET_MONITOR) {
-                       if (nativeEnvironmentCasePreserved == null) {
-                               nativeEnvironmentCasePreserved = new LinkedHashMap<String, String>();
-                               cacheNativeEnvironment(nativeEnvironmentCasePreserved);
-                       }
-                       return new LinkedHashMap<String, String>(nativeEnvironmentCasePreserved);
-               }
-       }
-
-       /**
-        * Query the native environment and store it to the specified cache.
-        *
-        * @param cache The environment cache. Must not be <code>null</code>.
-        */
-       private static void cacheNativeEnvironment(Map<String, String> cache) {
-               Assert.isNotNull(cache);
-
-               try {
-                       String nativeCommand = null;
-                       if (Platform.getOS().equals(Constants.OS_WIN32)) {
-                               nativeCommand = "cmd.exe /C set"; //$NON-NLS-1$
-                       } else if (!Platform.getOS().equals(Constants.OS_UNKNOWN)) {
-                               nativeCommand = "env"; //$NON-NLS-1$
-                       }
-                       if (nativeCommand == null) { return; }
-                       Process process = Runtime.getRuntime().exec(nativeCommand);
-
-                       // read process directly on other platforms
-                       // we need to parse out matching '{' and '}' for function declarations in .bash environments
-                       // pattern is [function name]=() { and we must find the '}' on its own line with no trailing ';'
-                       InputStream stream = process.getInputStream();
-                       InputStreamReader isreader = new InputStreamReader(stream);
-                       BufferedReader reader = new BufferedReader(isreader);
-                       try {
-                               String line = reader.readLine();
-                               while (line != null) {
-                                       String key = null;
-                                       String value = null;
-                                       int func = line.indexOf("=()"); //$NON-NLS-1$
-                                       if (func > 0) {
-                                               key = line.substring(0, func);
-                                               // scan until we find the closing '}' with no following chars
-                                               value = line.substring(func + 1);
-                                               do {
-                                                       line = reader.readLine();
-                                                       if (line == null)
-                                                               break;
-                                                       if (line.equals("}")) //$NON-NLS-1$
-                                                               value += ';';
-                                                       value += ' ' + line;
-                                               } while (!line.equals("}")); //$NON-NLS-1$
-                                               line = reader.readLine();
-                                       } else {
-                                               int separator = line.indexOf('=');
-                                               if (separator > 0) {
-                                                       key = line.substring(0, separator);
-                                                       value = line.substring(separator + 1);
-                                                       StringBuilder bufValue = new StringBuilder(value);
-                                                       line = reader.readLine();
-                                                       if (line != null) {
-                                                               // this line has a '=' read ahead to check next line for '=', might be broken on more
-                                                               // than one line
-                                                               separator = line.indexOf('=');
-                                                               while (separator < 0) {
-                                                                       bufValue.append(line.trim());
-                                                                       line = reader.readLine();
-                                                                       if (line == null) {
-                                                                               // if next line read is the end of the file quit the loop
-                                                                               break;
-                                                                       }
-                                                                       separator = line.indexOf('=');
-                                                               }
-                                                       }
-                                                       value = bufValue.toString();
-                                               }
-                                       }
-                                       if (key != null) {
-                                               cache.put(key, value);
-                                       } else {
-                                               line = reader.readLine();
-                                       }
-                               }
-                       } finally {
-                               reader.close();
-                       }
-               } catch (IOException e) {
-                       // Native environment-fetching code failed.
-                       // This can easily happen and is not useful to log.
-               }
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/tm32.png b/rtosTMTerminal/org.eclipse.tm.terminal.view.core/tm32.png
deleted file mode 100644 (file)
index 668b05b..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.view.core/tm32.png and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.classpath b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.classpath
deleted file mode 100644 (file)
index ad32c83..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-       <classpathentry kind="src" path="src"/>
-       <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.gitignore b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.gitignore
deleted file mode 100644 (file)
index ae3c172..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.options b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.options
deleted file mode 100644 (file)
index 2b37de4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-org.eclipse.tm.terminal.view.ui/debugmode = 0
-org.eclipse.tm.terminal.view.ui/trace/outputStreamMonitor = false
-org.eclipse.tm.terminal.view.ui/trace/launchTerminalCommandHandler = false
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.project b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.project
deleted file mode 100644 (file)
index 3686758..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-       <name>org.eclipse.tm.terminal.view.ui</name>
-       <comment></comment>
-       <projects>
-       </projects>
-       <buildSpec>
-               <buildCommand>
-                       <name>org.eclipse.jdt.core.javabuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.ManifestBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.SchemaBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-       </buildSpec>
-       <natures>
-               <nature>org.eclipse.pde.PluginNature</nature>
-               <nature>org.eclipse.jdt.core.javanature</nature>
-               <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-       </natures>
-       <filteredResources>
-               <filter>
-                       <id>1329502074611</id>
-                       <name></name>
-                       <type>10</type>
-                       <matcher>
-                               <id>org.eclipse.ui.ide.multiFilter</id>
-                               <arguments>1.0-name-matches-false-false-target</arguments>
-                       </matcher>
-               </filter>
-       </filteredResources>
-</projectDescription>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.core.prefs b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644 (file)
index 5cb95e2..0000000
+++ /dev/null
@@ -1,362 +0,0 @@
-#Fri Oct 07 16:14:53 CEST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=0
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=100
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=4
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=4
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=true
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=true
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=true
-org.eclipse.jdt.core.formatter.lineSplit=100
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.ui.prefs b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644 (file)
index 0d73226..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Target Explorer Java STD
-formatter_settings_version=12
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_type_arguments=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=false
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-sp_cleanup.use_type_arguments=false
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.pde.prefs b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644 (file)
index cf80c8b..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=1
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/META-INF/MANIFEST.MF b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/META-INF/MANIFEST.MF
deleted file mode 100644 (file)
index 07f0081..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.tm.terminal.view.ui;singleton:=true
-Bundle-Version: 4.2.0.qualifier
-Bundle-Activator: org.eclipse.tm.terminal.view.ui.activator.UIPlugin
-Bundle-Vendor: %providerName
-Require-Bundle: org.eclipse.core.expressions;bundle-version="3.4.400",
- org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.core.resources;bundle-version="3.8.1";resolution:=optional,
- org.eclipse.core.variables;bundle-version="3.2.600",
- org.eclipse.debug.ui;bundle-version="3.8.1";resolution:=optional,
- org.eclipse.egit.ui;bundle-version="2.0.0";resolution:=optional,
- org.eclipse.tm.terminal.view.core;bundle-version="4.0.0",
- org.eclipse.tm.terminal.control;bundle-version="4.0.0",
- org.eclipse.ui;bundle-version="3.8.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Export-Package: org.eclipse.tm.terminal.view.ui.actions,
- org.eclipse.tm.terminal.view.ui.activator;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.controls,
- org.eclipse.tm.terminal.view.ui.help,
- org.eclipse.tm.terminal.view.ui.interfaces,
- org.eclipse.tm.terminal.view.ui.interfaces.tracing;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.internal;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.internal.dialogs;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.internal.handler;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.launcher,
- org.eclipse.tm.terminal.view.ui.listeners,
- org.eclipse.tm.terminal.view.ui.local.showin;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.manager,
- org.eclipse.tm.terminal.view.ui.nls;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.panels,
- org.eclipse.tm.terminal.view.ui.preferences;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.services,
- org.eclipse.tm.terminal.view.ui.streams,
- org.eclipse.tm.terminal.view.ui.tabs,
- org.eclipse.tm.terminal.view.ui.view,
- org.eclipse.tm.terminal.view.ui.view.showin;x-internal:=true
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/about.html b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/about.html
deleted file mode 100644 (file)
index 0f07cf0..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-<p>May 24, 2012</p>    
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/build.properties b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/build.properties
deleted file mode 100644 (file)
index b92d23a..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2012, 2015 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
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-               icons/,\
-               contexts.xml
-src.includes = schema/
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/contexts.xml b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/contexts.xml
deleted file mode 100644 (file)
index bb0f006..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<contexts>
-   <context id="LaunchTerminalSettingsDialog">
-      <description>Select the terminal type and specify the connections settings to connect a new terminal.</description>
-   </context>
-   <context id="EncodingSelectionDialog">
-      <description>Select the new encoding for the active terminal.</description>
-   </context>
-   <context id="ExternalExecutablesDialog">
-      <description>Add or modify an external executable added to the 'Show in Local Terminal' context menu.</description>
-   </context>
-</contexts>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/clcl16/command_input_field.gif b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/clcl16/command_input_field.gif
deleted file mode 100644 (file)
index 9e3a547..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/clcl16/command_input_field.gif and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/clcl16/new_terminal_view.gif b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/clcl16/new_terminal_view.gif
deleted file mode 100644 (file)
index 0089626..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/clcl16/new_terminal_view.gif and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/dlcl16/command_input_field.gif b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/dlcl16/command_input_field.gif
deleted file mode 100644 (file)
index f538ca7..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/dlcl16/command_input_field.gif and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/dlcl16/disconnect.gif b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/dlcl16/disconnect.gif
deleted file mode 100644 (file)
index 1ca9213..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/dlcl16/disconnect.gif and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/dlcl16/new_terminal_view.gif b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/dlcl16/new_terminal_view.gif
deleted file mode 100644 (file)
index 25adc24..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/dlcl16/new_terminal_view.gif and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/elcl16/command_input_field.gif b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/elcl16/command_input_field.gif
deleted file mode 100644 (file)
index f538ca7..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/elcl16/command_input_field.gif and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/elcl16/disconnect.gif b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/elcl16/disconnect.gif
deleted file mode 100644 (file)
index d61dd77..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/elcl16/disconnect.gif and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/elcl16/new_terminal_view.gif b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/elcl16/new_terminal_view.gif
deleted file mode 100644 (file)
index b81882b..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/elcl16/new_terminal_view.gif and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/eview16/terminal_view.gif b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/eview16/terminal_view.gif
deleted file mode 100644 (file)
index bbb6a9e..0000000
Binary files a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/icons/eview16/terminal_view.gif and /dev/null differ
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/plugin.properties b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/plugin.properties
deleted file mode 100644 (file)
index fdd4f54..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-##################################################################################
-# Copyright (c) 2011, 2016 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
-##################################################################################
-
-pluginName = Terminal View
-providerName = Eclipse.org - Target Management
-
-# ----- Terminal View -----
-
-ViewCategory.name=Terminal
-
-TerminalsView.name=Terminal
-TerminalsView.name.old=Terminals (Old)
-TerminalsView.context.name=In Terminal View
-TerminalsView.context.description=Show modified keyboard shortcuts in context menu
-
-# ----- Terminal Connectors -----
-
-TerminalConnector.streams=Streams Connector (hidden)
-
-# ----- Terminal Launcher Delegates -----
-
-StreamsLauncherDelegate.label=Streams Terminal
-
-# ----- Commands and Menu contributions -----
-command.category.name=Terminal Commands
-
-toolbar.terminal.label=Terminal
-
-command.launch.selection.name=Open Terminal on Selection
-command.launch.name=Open Terminal
-command.launch.label=Open Terminal...
-command.launch.tooltip=Open a Terminal
-
-command.disconnect.name=Disconnect Terminal
-command.disconnect.label=Disconnect
-command.disconnect.tooltip=Disconnect Terminal Connection
-
-command.newview.name=New Terminal View
-
-menu.showIn.label = Show in Local Terminal
-menu.showIn.mnemonic=I
-
-LocalLauncherDelegate.label=Local Terminal
-
-command.launch.name=Open Local Terminal on Selection
-
-menu.showIn.localterminal.label = Terminal
-
-TerminalConnector.local=Local
-
-# -----  Extension Points  -----
-
-ExtensionPoint.launcherDelegates.name=Terminal Launcher Delegates
-
-# -----  Activity contributions  -----
-
-activities.category.terminals.name=Terminal
-activities.category.terminals.description=Use the terminal to connect to remote hosts via telnet, ssh and others.
-
-activities.activity.terminals.views.name=Terminal Views
-activities.activity.terminals.views.description=Terminal related views. 
-
-# ----- Preference Pages -----
-
-preference.page.name=Local Terminal
-
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/plugin.xml b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/plugin.xml
deleted file mode 100644 (file)
index db83344..0000000
+++ /dev/null
@@ -1,470 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
-<!-- Extension points -->
-   <extension-point id="launcherDelegates" name="%ExtensionPoint.launcherDelegates.name" schema="schema/launcherDelegates.exsd"/>
-
-<!-- View contributions -->
-   <extension point="org.eclipse.ui.views">
-      <category
-            id="org.eclipse.tm.terminal.view.ui.views.category"
-            name="%ViewCategory.name">
-      </category>
-
-      <view
-            allowMultiple="true"
-            category="org.eclipse.tm.terminal.view.ui.views.category"
-            class="org.eclipse.tm.terminal.view.ui.view.TerminalsView"
-            icon="icons/eview16/terminal_view.gif"
-            id="org.eclipse.tm.terminal.view.ui.TerminalsView"
-            name="%TerminalsView.name">
-      </view>
-
-      <!-- Bug 466644: Contribute another view with the old (TCF) ID to handle the ID change -->
-      <!-- The sole purpose of this view is to close itself when it's in an old workspace/persepctive -->
-      <view
-            allowMultiple="true"
-            class="org.eclipse.tm.terminal.view.ui.view.OldTerminalsViewHandler"
-            icon="icons/eview16/terminal_view.gif"
-            id="org.eclipse.tcf.te.ui.terminals.TerminalsView"
-            name="%TerminalsView.name.old">
-      </view>
-    </extension>
-
-<!-- Perspective extension contributions -->    
-   <extension point="org.eclipse.ui.perspectiveExtensions">
-      <perspectiveExtension targetID="org.eclipse.tcf.te.ui.perspective">
-                <!-- Register the view shortcuts  -->
-         <viewShortcut id="org.eclipse.tm.terminal.view.ui.TerminalsView"/>
-         <!-- Place the Terminal view relative to the Task List view -->
-         <view
-               id="org.eclipse.tm.terminal.view.ui.TerminalsView"
-               minimized="false"
-               relationship="stack"
-               relative="org.eclipse.ui.views.TaskList"
-               visible="false">
-         </view>
-      </perspectiveExtension>
-
-      <perspectiveExtension targetID="org.eclipse.ui.resourcePerspective">
-                <!-- Register the view shortcuts  -->
-         <viewShortcut id="org.eclipse.tm.terminal.view.ui.TerminalsView"/>
-         <!-- Place the Terminal view relative to the Task List view -->
-         <view
-               id="org.eclipse.tm.terminal.view.ui.TerminalsView"
-               minimized="false"
-               relationship="stack"
-               relative="org.eclipse.ui.views.TaskList"
-               visible="false">
-         </view>
-      </perspectiveExtension>
-
-      <perspectiveExtension targetID="org.eclipse.debug.ui.DebugPerspective">
-                <!-- Register the view shortcuts  -->
-         <viewShortcut id="org.eclipse.tm.terminal.view.ui.TerminalsView"/>
-         <!-- Place the Terminal view relative to the Task List view -->
-         <view
-               id="org.eclipse.tm.terminal.view.ui.TerminalsView"
-               minimized="false"
-               relationship="stack"
-               relative="org.eclipse.ui.views.TaskList"
-               visible="false">
-         </view>
-      </perspectiveExtension>
-
-      <perspectiveExtension targetID="org.eclipse.cdt.ui.CPerspective">
-                <!-- Register the view shortcuts  -->
-         <viewShortcut id="org.eclipse.tm.terminal.view.ui.TerminalsView"/>
-         <!-- Place the Terminal view relative to the Task List view -->
-         <view
-               id="org.eclipse.tm.terminal.view.ui.TerminalsView"
-               minimized="false"
-               relationship="stack"
-               relative="org.eclipse.ui.views.TaskList"
-               visible="false">
-         </view>
-      </perspectiveExtension>
-
-      <perspectiveExtension targetID="org.eclipse.jdt.ui.JavaPerspective">
-                <!-- Register the view shortcuts  -->
-         <viewShortcut id="org.eclipse.tm.terminal.view.ui.TerminalsView"/>
-         <!-- Place the Terminal view relative to the Task List view -->
-         <view
-               id="org.eclipse.tm.terminal.view.ui.TerminalsView"
-               minimized="false"
-               relationship="stack"
-               relative="org.eclipse.ui.views.ProblemView"
-               visible="false">
-         </view>
-      </perspectiveExtension>
-
-      <perspectiveExtension targetID="org.eclipse.pde.ui.PDEPerspective">
-                <!-- Register the view shortcuts  -->
-         <viewShortcut id="org.eclipse.tm.terminal.view.ui.TerminalsView"/>
-         <!-- Place the Terminal view relative to the Task List view -->
-         <view
-               id="org.eclipse.tm.terminal.view.ui.TerminalsView"
-               minimized="false"
-               relationship="stack"
-               relative="org.eclipse.ui.views.ProblemView"
-               visible="false">
-         </view>
-      </perspectiveExtension>
-      
-      <perspectiveExtension targetID="*">
-         <!-- Show In shortcut -->
-         <showInPart id="org.eclipse.tm.terminal.view.ui.TerminalsView"/>
-      </perspectiveExtension>
-   </extension>
-
-<!-- Terminal connector contributions -->
-   <extension point="org.eclipse.tm.terminal.control.connectors">
-      <connector 
-                 name="%TerminalConnector.streams"
-                 id="org.eclipse.tm.terminal.connector.streams.StreamsConnector"
-                 hidden="true"
-                 class="org.eclipse.tm.terminal.view.ui.streams.StreamsConnector"/>
-   </extension>
-
-<!-- Preferences contributions -->
-   <extension point="org.eclipse.core.expressions.propertyTesters">
-      <propertyTester
-            class="org.eclipse.tm.terminal.view.ui.internal.PropertyTester"
-            id="org.eclipse.tm.terminal.view.ui.PropertyTester"
-            namespace="org.eclipse.tm.terminal.view.ui"
-            properties="hasApplicableLauncherDelegates,canDisconnect"
-            type="java.lang.Object">
-      </propertyTester>
-   </extension>
-   <extension point="org.eclipse.tm.terminal.view.ui.launcherDelegates">
-      <delegate
-            class="org.eclipse.tm.terminal.view.ui.streams.StreamsLauncherDelegate"
-            hidden="true"
-            id="org.eclipse.tm.terminal.connector.streams.launcher.streams"
-            label="%StreamsLauncherDelegate.label">
-      </delegate>
-   </extension>
-   <extension point="org.eclipse.ui.menus">
-      <menuContribution locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
-         <toolbar
-               id="org.eclipse.tm.terminal.view.ui.toolbar"
-               label="%toolbar.terminal.label">
-                <command
-                      commandId="org.eclipse.tm.terminal.view.ui.command.launchToolbar"
-                      icon="platform:/plugin/org.eclipse.ui.console/icons/full/eview16/console_view.gif"
-                      id="org.eclipse.tm.terminal.view.ui.commands.launchToolbar"
-                      label="%command.launch.label"
-                      style="push"
-                      tooltip="%command.launch.tooltip">
-                </command>
-         </toolbar>
-      </menuContribution>
-      <menuContribution locationURI="toolbar:org.eclipse.tm.terminal.view.ui.TerminalsView">
-         <command
-               commandId="org.eclipse.tm.terminal.view.ui.command.launchToolbar"
-               icon="platform:/plugin/org.eclipse.ui.console/icons/full/eview16/console_view.gif"
-               id="org.eclipse.tm.terminal.view.ui.commands.launchToolbarTerminalsView"
-               label="%command.launch.label"
-               style="push"
-               tooltip="%command.launch.tooltip">
-         </command>
-         <command
-               commandId="org.eclipse.tm.terminal.view.ui.command.disconnect"
-               icon="icons/elcl16/disconnect.gif"
-               id="org.eclipse.tm.terminal.view.ui.commands.disconnect"
-               label="%command.disconnect.label"
-               style="push"
-               tooltip="%command.disconnect.tooltip">
-         </command>
-      </menuContribution>
-      <menuContribution locationURI="popup:org.eclipse.tm.terminal.view.ui.TerminalsView?after=additions">
-         <command
-               commandId="org.eclipse.tm.terminal.maximize"
-               id="org.eclipse.tm.terminal.view.ui.commands.maximizePart"
-               label="Maximize View"
-               style="push">
-         </command>
-         <command
-               commandId="org.eclipse.tm.terminal.quickaccess"
-               id="org.eclipse.tm.terminal.view.ui.commands.quickAccess"
-               label="Quick Access"
-               style="push">
-         </command>
-      </menuContribution>
-
-      <!-- Project Explorer "Show In" contribution -->
-      <menuContribution locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?before=group.edit">
-         <menu
-               id="org.eclipse.tm.terminal.view.ui.ProjectExplorer.menu.showIn"
-               label="%menu.showIn.label"
-               mnemonic="%menu.showIn.mnemonic">
-             <separator name="additions" visible="false"/>
-                <dynamic
-                      class="org.eclipse.tm.terminal.view.ui.local.showin.DynamicContributionItems"
-                      id="org.eclipse.tm.terminal.connector.local.LocalLauncherDynamicContributionItems">
-                   <visibleWhen
-                         checkEnabled="false">
-                      <or>
-                             <with variable="selection">
-                                <iterate operator="and" ifEmpty="false">
-                                   <adapt type="org.eclipse.core.resources.IResource">
-                                     <not>
-                                        <!-- The JDT Project Explorer contributions are adding the "Navigate -> Show In" quick menu.
-                                             See o.e.jdt.internal.ui.navigator.JavaNavigatorActionProvider -->
-                                        <test property="org.eclipse.core.resources.projectNature" value="org.eclipse.jdt.core.javanature" />
-                                     </not> 
-                                   </adapt>
-                                </iterate>
-                             </with>
-                         <and>
-                                     <with variable="selection">
-                                        <iterate operator="and" ifEmpty="false">
-                                           <adapt type="org.eclipse.core.resources.IResource">
-                                                <!-- The JDT Project Explorer contributions are adding the "Navigate -> Show In" quick menu.
-                                                     See o.e.jdt.internal.ui.navigator.JavaNavigatorActionProvider -->
-                                                <test property="org.eclipse.core.resources.projectNature" value="org.eclipse.jdt.core.javanature" />
-                                           </adapt>
-                                        </iterate>
-                                     </with>
-                                 <with
-                                       variable="org.eclipse.tm.terminal.external.executable.configured">
-                                    <equals
-                                          value="TRUE">
-                                    </equals>
-                                 </with>
-                         </and>
-                      </or>
-                   </visibleWhen>
-                </dynamic>
-         </menu>
-      </menuContribution>
-
-      <!-- JDT Package Explorer "Show In" contribution -->
-      <menuContribution locationURI="popup:org.eclipse.jdt.ui.PackageExplorer?before=group.edit">
-         <menu
-               id="org.eclipse.tm.terminal.view.ui.PackageExplorer.menu.showIn"
-               label="%menu.showIn.label"
-               mnemonic="%menu.showIn.mnemonic">
-             <separator name="additions" visible="false"/>
-                <dynamic
-                      class="org.eclipse.tm.terminal.view.ui.local.showin.DynamicContributionItems"
-                      id="org.eclipse.tm.terminal.connector.local.LocalLauncherDynamicContributionItems">
-                   <visibleWhen
-                         checkEnabled="false">
-                      <or>
-                             <with variable="selection">
-                                <iterate operator="and" ifEmpty="false">
-                                   <adapt type="org.eclipse.core.resources.IResource">
-                                     <not>
-                                        <!-- The JDT Project Explorer contributions are adding the "Navigate -> Show In" quick menu.
-                                             See o.e.jdt.internal.ui.navigator.JavaNavigatorActionProvider -->
-                                        <test property="org.eclipse.core.resources.projectNature" value="org.eclipse.jdt.core.javanature" />
-                                     </not> 
-                                   </adapt>
-                                </iterate>
-                             </with>
-                         <and>
-                                     <with variable="selection">
-                                        <iterate operator="and" ifEmpty="false">
-                                           <adapt type="org.eclipse.core.resources.IResource">
-                                                <!-- The JDT Project Explorer contributions are adding the "Navigate -> Show In" quick menu.
-                                                     See o.e.jdt.internal.ui.navigator.JavaNavigatorActionProvider -->
-                                                <test property="org.eclipse.core.resources.projectNature" value="org.eclipse.jdt.core.javanature" />
-                                           </adapt>
-                                        </iterate>
-                                     </with>
-                                 <with
-                                       variable="org.eclipse.tm.terminal.external.executable.configured">
-                                    <equals
-                                          value="TRUE">
-                                    </equals>
-                                 </with>
-                         </and>
-                      </or>
-                   </visibleWhen>
-                </dynamic>
-         </menu>
-      </menuContribution>
-            
-   </extension>
-   <extension point="org.eclipse.ui.commands">
-      <category
-            id="org.eclipse.tm.terminal.view.ui.commands.category"
-            name="%command.category.name">
-      </category>
-   
-      <command
-            categoryId="org.eclipse.tm.terminal.view.ui.commands.category"
-            helpContextId="org.eclipse.tm.terminal.view.ui.command_Launch"
-            id="org.eclipse.tm.terminal.view.ui.command.launch"
-            name="%command.launch.selection.name">
-      </command>
-      <command
-            categoryId="org.eclipse.tm.terminal.view.ui.commands.category"
-            helpContextId="org.eclipse.tm.terminal.view.ui.command_Launch"
-            id="org.eclipse.tm.terminal.view.ui.command.launchToolbar"
-            name="%command.launch.name">
-      </command>
-      <command
-            categoryId="org.eclipse.tm.terminal.view.ui.commands.category"
-            helpContextId="org.eclipse.tm.terminal.view.ui.command_Disconnect"
-            id="org.eclipse.tm.terminal.view.ui.command.disconnect"
-            name="%command.disconnect.name">
-      </command>
-      <command
-            categoryId="org.eclipse.tm.terminal.view.ui.commands.category"
-            helpContextId="org.eclipse.tm.terminal.view.ui.command_NewView"
-            id="org.eclipse.tm.terminal.view.ui.command.newview"
-            name="%command.newview.name">
-      </command>
-   </extension>
-   <extension point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.tm.terminal.view.ui.command.launchToolbar"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+SHIFT+M3+T"/> <!-- Bug 435111: Don't use M1 since COMMAND+Option T already taken on Mac -->
-   </extension>
-   <extension point="org.eclipse.ui.handlers">
-      <handler
-            class="org.eclipse.tm.terminal.view.ui.internal.handler.LaunchTerminalCommandHandler"
-            commandId="org.eclipse.tm.terminal.view.ui.command.launch">
-      </handler>
-      <handler
-            class="org.eclipse.tm.terminal.view.ui.internal.handler.LaunchTerminalCommandHandler"
-            commandId="org.eclipse.tm.terminal.view.ui.command.launchToolbar">
-      </handler>
-      <handler
-            class="org.eclipse.tm.terminal.view.ui.internal.handler.DisconnectTerminalCommandHandler"
-            commandId="org.eclipse.tm.terminal.view.ui.command.disconnect">
-            <enabledWhen>
-               <with variable="activePart">
-                  <instanceof value="org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView"/>
-                  <test property="org.eclipse.tm.terminal.view.ui.canDisconnect" value="true"/>
-               </with>
-            </enabledWhen>
-      </handler>
-      
-      <handler
-            class="org.eclipse.tm.terminal.view.ui.internal.handler.MaximizeViewHandler"
-            commandId="org.eclipse.tm.terminal.maximize">
-            <activeWhen>
-               <with variable="activePartId">
-                  <equals value="org.eclipse.tm.terminal.view.ui.TerminalsView"/>
-               </with>
-            </activeWhen>
-      </handler>
-      
-      <handler
-            class="org.eclipse.tm.terminal.view.ui.internal.handler.QuickAccessHandler"
-            commandId="org.eclipse.tm.terminal.quickaccess">
-            <activeWhen>
-               <with variable="activePartId">
-                  <equals value="org.eclipse.tm.terminal.view.ui.TerminalsView"/>
-               </with>
-            </activeWhen>
-      </handler>
-
-      <handler
-            class="org.eclipse.tm.terminal.view.ui.internal.handler.NewTerminalViewHandler"
-            commandId="org.eclipse.tm.terminal.view.ui.command.newview">
-            <activeWhen>
-               <with variable="activePartId">
-                  <equals value="org.eclipse.tm.terminal.view.ui.TerminalsView"/>
-               </with>
-            </activeWhen>
-      </handler>
-   </extension>
-   <extension point="org.eclipse.help.contexts">
-      <contexts
-            file="contexts.xml">
-      </contexts>
-   </extension>
-   <extension point="org.eclipse.ui.activities">
-      <category
-            description="%activities.category.terminals.description"
-            id="org.eclipse.tm.terminal.view.ui.category"
-            name="%activities.category.terminals.name">
-      </category>
-      
-      <activity
-            description="%activities.activity.terminals.views.description"
-            id="org.eclipse.tm.terminal.view.ui.activity.views"
-            name="%activities.activity.terminals.views.name">
-      </activity>
-
-      <activityPatternBinding
-            activityId="org.eclipse.tm.terminal.view.ui.activity.views"
-            pattern="org\.eclipse\.tm\.terminal\.view\.ui/org\.eclipse\.tm\.terminal\.view\.ui\.TerminalsView">
-      </activityPatternBinding>
-      <activityPatternBinding
-            activityId="org.eclipse.tm.terminal.view.ui.activity.views"
-            pattern="org\.eclipse\.tm\.terminal\.view\.ui/org\.eclipse\.tm\.terminal\.view\.ui\.toolbar">
-      </activityPatternBinding>
-      <activityPatternBinding
-            activityId="org.eclipse.tm.terminal.view.ui.activity.views"
-            pattern="org\.eclipse\.tm\.terminal\.view\.ui/org\.eclipse\.tm\.terminal\.view\.ui\.commands\..*">
-      </activityPatternBinding>
-      
-      <categoryActivityBinding
-            activityId="org.eclipse.tm.terminal.view.ui.activity.views"
-            categoryId="org.eclipse.tm.terminal.view.ui.category">
-      </categoryActivityBinding>
-      
-      <defaultEnablement
-            id="org.eclipse.tm.terminal.view.ui.activity.views">
-      </defaultEnablement>
-     
-      <!-- Hide the old TCF Terminals (Migration Only) View from the View Shortcuts Menu -->
-      <activity
-            id="org.eclipse.tm.terminal.view.ui.activity.oldview"
-            name="Terminal Views (Old)">
-      </activity>
-      
-      <activityPatternBinding
-            activityId="org.eclipse.tm.terminal.view.ui.activity.oldview"
-            pattern=".*/org\.eclipse\.tcf\.te\.ui\.terminals\.TerminalsView">
-      </activityPatternBinding>
-     
-      <!-- TBD Remove this category binding to hide the Migration Capability from the Preferences -->
-      <!-- 
-      <categoryActivityBinding
-            activityId="org.eclipse.tm.terminal.view.ui.activity.oldview"
-            categoryId="org.eclipse.tm.terminal.view.ui.category">
-      </categoryActivityBinding>
-      -->
-   </extension>
-
-   <extension point="org.eclipse.ui.contexts">
-      <context
-            id="org.eclipse.tm.terminal.view.ui.TerminalsView"
-            name="%TerminalsView.context.name"
-            description="%TerminalsView.context.description"
-            parentId="org.eclipse.ui.contexts.window">
-      </context>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            category="org.eclipse.tm.terminal.TerminalPreferencePage"
-            class="org.eclipse.tm.terminal.view.ui.preferences.PreferencePage"
-            id="org.eclipse.tm.terminal.view.ui.preferences"
-            name="%preference.page.name">
-      </page>
-   </extension>
-   <extension point="org.eclipse.core.runtime.preferences">
-      <initializer class="org.eclipse.tm.terminal.view.ui.preferences.PreferencesInitializer"/>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.services">
-      <sourceProvider
-            provider="org.eclipse.tm.terminal.view.ui.internal.ExternalExecutablesState">
-         <variable
-               name="org.eclipse.tm.terminal.external.executable.configured"
-               priorityLevel="workbench">
-         </variable>
-      </sourceProvider>
-   </extension>
-</plugin>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/pom.xml b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/pom.xml
deleted file mode 100644 (file)
index b907bdf..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.tm.terminal</groupId>
-    <artifactId>org.eclipse.tm.terminal.maven-build</artifactId>
-    <version>4.2.0-SNAPSHOT</version>
-    <relativePath>../../admin/pom-build.xml</relativePath>
-  </parent>
-
-  <version>4.2.0-SNAPSHOT</version>
-  <artifactId>org.eclipse.tm.terminal.view.ui</artifactId>
-  <packaging>eclipse-plugin</packaging>
-</project>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/schema/launcherDelegates.exsd b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/schema/launcherDelegates.exsd
deleted file mode 100644 (file)
index e3454e0..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.tcf.te.ui.terminals" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.tcf.te.ui.terminals" id="launcherDelegates" name="Terminal Launcher Delegates"/>
-      </appinfo>
-      <documentation>
-         This extension point is used to contribute terminal launcher delegates.
-&lt;p&gt;
-Terminal launcher delegates contributes terminal settings widget to the &lt;code&gt;LaunchTerminalSettingsDialog&lt;/code&gt; required to open a remote terminal through a specific communication channel, like TCF or SSH.
-      </documentation>
-   </annotation>
-
-   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="delegate" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="delegate">
-      <annotation>
-         <documentation>
-            Declares a terminal launcher delegate contribution.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="class" minOccurs="0" maxOccurs="1"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-            <element ref="enablement" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique id of the terminal launcher delegate contribution.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="label" type="string">
-            <annotation>
-               <documentation>
-                  The label representing the terminal launcher delegate within the UI.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements &lt;code&gt;org.eclipse.tcf.te.ui.terminals.interfaces.ILauncherDelegate&lt;/code&gt; or extends &lt;code&gt;org.eclipse.tcf.te.ui.terminals.launcher.AbstractLauncherDelegate&lt;/code&gt;.
-&lt;p&gt;
-The terminal launcher delegate implementation class must be specified either by the class attribute or the class child element!
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.tm.terminal.view.ui.launcher.AbstractLauncherDelegate:org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="hidden" type="boolean">
-            <annotation>
-               <documentation>
-                  If &lt;code&gt;true&lt;/code&gt;, than the terminal launcher delegate is not visible in the UI, even if a possible &lt;code&gt;enablement&lt;/code&gt; will evaluate to &lt;code&gt;true&lt;/code&gt;.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="description" type="string">
-      <annotation>
-         <documentation>
-            A short description of the terminal connector type to be presented in the UI.
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="class">
-      <annotation>
-         <documentation>
-            Used when creating an &lt;code&gt;IExecutableExtension&lt;/code&gt; with a named parameter, or more than one.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="class" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements &lt;code&gt;org.eclipse.tcf.te.ui.terminals.interfaces.ILauncherDelegate&lt;/code&gt; or extends &lt;code&gt;org.eclipse.tcf.te.ui.terminals.launcher.AbstractLauncherDelegate&lt;/code&gt;.
-&lt;p&gt;
-The terminal launcher delegate implementation class must be specified either by the class attribute or the class child element!
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.tm.terminal.view.ui.launcher.AbstractLauncherDelegate:org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="parameter">
-      <annotation>
-         <documentation>
-            A parameter for an &lt;code&gt;IExecutableExtension&lt;/code&gt;.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  &lt;p&gt;The parameter name.&lt;/p&gt;
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="value" type="string" use="required">
-            <annotation>
-               <documentation>
-                  &lt;p&gt;The parameter value.&lt;/p&gt;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         Target Explorer 1.0.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="examples"/>
-      </appinfo>
-      <documentation>
-         This is an example of the extension point usage:
-&lt;p&gt;
-&lt;pre&gt;&lt;code&gt;
-  &lt;extension point=&quot;org.eclipse.tcf.te.ui.terminals.launcherDelegates&quot;&gt;
-      &lt;delegate
-            id=&quot;org.eclipse.tcf.te.ui.terminals.launcher.tcf&quot;
-            class=&quot;org.eclipse.tcf.te.tcf.terminals.ui.internal.TerminalLauncherDelegate&quot;
-            label=&quot;TCF Terminal&quot;&gt;
-            &lt;enablement&gt;
-               ...
-            &lt;/enablement&gt;
-      &lt;/delegate&gt;
-   &lt;/extension&gt;
-&lt;/code&gt;&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="apiinfo"/>
-      </appinfo>
-      <documentation>
-         The provider of a launcher delegate must implement &lt;samp&gt;org.eclipse.tcf.te.ui.terminals.interfaces.ILauncherDelegate&lt;/samp&gt;.
-      </documentation>
-   </annotation>
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         Copyright (c) 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.
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/AbstractAction.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/AbstractAction.java
deleted file mode 100644 (file)
index e3c4a3e..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.actions;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderToolbarHandler;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-
-/**
- * Abstract terminal action wrapper implementation.
- */
-public abstract class AbstractAction extends AbstractTerminalAction {
-       // Reference to the parent toolbar handler
-       private final TabFolderToolbarHandler parent;
-
-       /**
-        * Constructor.
-        *
-        * @param parent
-        *            The parent toolbar handler instance. Must not be
-        *            <code>null</code>.
-        * @param id
-        *            The terminal action id. Must not be <code>null</code>.
-        */
-       public AbstractAction(TabFolderToolbarHandler parent, String id) {
-               super(id);
-
-               Assert.isNotNull(parent);
-               this.parent = parent;
-       }
-
-       /**
-        * Returns the parent toolbar handler.
-        *
-        * @return The parent toolbar handler.
-        */
-       protected final TabFolderToolbarHandler getParent() {
-               return parent;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#getTarget()
-        */
-       @Override
-       protected ITerminalViewControl getTarget() {
-               return getParent().getActiveTerminalViewControl();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#run()
-        */
-       @Override
-       public void run() {
-               // Get the active tab item from the tab folder manager
-               TabFolderManager manager = (TabFolderManager)getParent().getAdapter(TabFolderManager.class);
-               if (manager != null) {
-                       // If we have the active tab item, we can get the active terminal control
-                       CTabItem activeTabItem = manager.getActiveTabItem();
-                       if (activeTabItem != null) {
-                               // And execute the command
-                               executeCommand(activeTabItem.getData("customData")); //$NON-NLS-1$
-                       }
-               }
-       }
-
-       /**
-        * Executes the command for the given data node as current and active menu selection.
-        * <p>
-        * <b>Node:</b> If the provided data node is <code>null</code>, the method will trigger
-        *              the command with an empty selection.
-        *
-        * @param data The terminal custom data node or <code>null</code>.
-        */
-       @SuppressWarnings("cast")
-       protected void executeCommand(Object data) {
-               // Get the command service from the workbench
-               ICommandService service = (ICommandService)PlatformUI.getWorkbench().getAdapter(ICommandService.class);
-               if (service != null && getCommandId() != null) {
-                       // Get the command
-                       final Command command = service.getCommand(getCommandId());
-                       if (command != null && command.isDefined()) {
-                               IHandlerService handlerSvc = (IHandlerService)PlatformUI.getWorkbench().getService(IHandlerService.class);
-                               Assert.isNotNull(handlerSvc);
-
-                               // Construct a selection element
-                               IStructuredSelection selection = data != null ? new StructuredSelection(data) : new StructuredSelection();
-                               // Construct the application context
-                               EvaluationContext context = new EvaluationContext(handlerSvc.getCurrentState(), selection);
-                               // Apply the selection to the "activeMenuSelection" and "selection" variable too
-                               context.addVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME, selection);
-                               context.addVariable(ISources.ACTIVE_MENU_SELECTION_NAME, selection);
-                               // Allow plug-in activation
-                               context.setAllowPluginActivation(true);
-                               // And execute the event
-                               try {
-                                       ParameterizedCommand pCmd = ParameterizedCommand.generateCommand(command, null);
-                                       Assert.isNotNull(pCmd);
-
-                                       handlerSvc.executeCommandInContext(pCmd, null, context);
-                               } catch (Exception e) {
-                                       IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(),
-                                                                                               NLS.bind(Messages.AbstractAction_error_commandExecutionFailed, getCommandId(), e.getLocalizedMessage()),
-                                                                                               e);
-                                       UIPlugin.getDefault().getLog().log(status);
-                               }
-                       }
-               }
-       }
-
-       /**
-        * Returns the command id of the command to execute.
-        *
-        * @return The command id. Must be never <code>null</code>.
-        */
-       protected abstract String getCommandId();
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#updateAction(boolean)
-        */
-       @Override
-       public void updateAction(boolean aboutToShow) {
-               // Ignore the flag given from outside. We have to decide ourself
-               // what the enabled state of the action is
-               boolean enabled = getTarget() != null;
-
-               // If a target terminal control is available, we need to find the corresponding
-               // VLM target object which we need to trigger the handler
-               if (enabled) {
-                       // The action will be enabled if we can determine the VLM target object
-                       enabled = false;
-                       // Get the active tab item from the tab folder manager
-                       TabFolderManager manager = (TabFolderManager)getParent().getAdapter(TabFolderManager.class);
-                       if (manager != null) {
-                               // If we have the active tab item, we can get the active terminal control
-                               CTabItem activeTabItem = manager.getActiveTabItem();
-                               if (activeTabItem != null) {
-                                       enabled = checkEnableAction(activeTabItem.getData("customData")); //$NON-NLS-1$
-                               }
-                       }
-               }
-
-               setEnabled(enabled);
-       }
-
-       /**
-        * Checks if the action should be enabled based on the given terminal data object.
-        *
-        * @param data The terminal data node or <code>null</code>.
-        * @return <code>True</code> to enable the action, <code>false</code> otherwise.
-        */
-       protected boolean checkEnableAction(Object data) {
-               return data != null;
-       }
-
-       /**
-        * Returns if the action is a separator. Returning <code>true</code> here
-        * means that an additional separator toolbar element is added right or
-        * above of the action.
-        *
-        * @return <code>True</code> if the action is separating the parent contribution manager, <code>false</code> otherwise.
-        */
-       public boolean isSeparator() {
-               return false;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/NewTerminalViewAction.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/NewTerminalViewAction.java
deleted file mode 100644 (file)
index a9e8093..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.ui.actions;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView;
-import org.eclipse.tm.terminal.view.ui.interfaces.ImageConsts;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-
-/**
- * Opens a new terminal view with a new secondary view ID.
- *
- * @since 4.1
- */
-public class NewTerminalViewAction extends AbstractTerminalAction {
-
-       //private ITerminalsView view = null;
-
-       /**
-        * Constructor.
-        */
-       public NewTerminalViewAction(ITerminalsView view) {
-               super(null, NewTerminalViewAction.class.getName(), IAction.AS_PUSH_BUTTON);
-
-               //this.view = view;
-               setupAction(Messages.NewTerminalViewAction_menu, Messages.NewTerminalViewAction_tooltip,
-                                               UIPlugin.getImageDescriptor(ImageConsts.ACTION_NewTerminalView_Hover),
-                                               UIPlugin.getImageDescriptor(ImageConsts.ACTION_NewTerminalView_Enabled),
-                                               UIPlugin.getImageDescriptor(ImageConsts.ACTION_NewTerminalView_Disabled), true);
-               setEnabled(true);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#run()
-        */
-       @SuppressWarnings("cast")
-    @Override
-       public void run() {
-               ICommandService service = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class);
-               Command command = service != null ? service.getCommand("org.eclipse.tm.terminal.view.ui.command.newview") : null; //$NON-NLS-1$
-               if (command != null && command.isDefined() && command.isEnabled()) {
-                       try {
-                               ParameterizedCommand pCmd = ParameterizedCommand.generateCommand(command, null);
-                               Assert.isNotNull(pCmd);
-                               IHandlerService handlerSvc = (IHandlerService)PlatformUI.getWorkbench().getService(IHandlerService.class);
-                               Assert.isNotNull(handlerSvc);
-                               handlerSvc.executeCommandInContext(pCmd, null, handlerSvc.getCurrentState());
-                       } catch (Exception e) {
-                               // If the platform is in debug mode, we print the exception to the log view
-                               if (Platform.inDebugMode()) {
-                                       IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(),
-                                                                                               Messages.AbstractTriggerCommandHandler_error_executionFailed, e);
-                                       UIPlugin.getDefault().getLog().log(status);
-                               }
-                       }
-               }
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/SelectEncodingAction.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/SelectEncodingAction.java
deleted file mode 100644 (file)
index 1d8513a..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.view.ui.actions;
-
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.ui.internal.dialogs.EncodingSelectionDialog;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
-
-/**
- * Terminal control select encoding action implementation.
- */
-public class SelectEncodingAction extends AbstractTerminalAction {
-       // Reference to the parent tab folder manager
-       private final TabFolderManager tabFolderManager;
-
-       /**
-        * Constructor.
-        *
-        * @param tabFolderManager The parent tab folder manager. Must not be <code>null</code>.
-        */
-       public SelectEncodingAction(TabFolderManager tabFolderManager) {
-               super(null, SelectEncodingAction.class.getName(), IAction.AS_PUSH_BUTTON);
-
-               Assert.isNotNull(tabFolderManager);
-               this.tabFolderManager = tabFolderManager;
-
-        setupAction(Messages.SelectEncodingAction_menu,
-                    Messages.SelectEncodingAction_tooltip,
-                    (ImageDescriptor)null,
-                    (ImageDescriptor)null,
-                    (ImageDescriptor)null,
-                    true);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#run()
-        */
-       @Override
-       public void run() {
-               ITerminalViewControl target = getTarget();
-               if (target == null) return;
-
-               EncodingSelectionDialog dialog = new EncodingSelectionDialog(null);
-               dialog.setEncoding(target.getEncoding());
-               if (dialog.open() == Window.OK) {
-                       try {
-                               target.setEncoding(dialog.getEncoding());
-                               tabFolderManager.updateStatusLine();
-                       }
-                       catch (UnsupportedEncodingException e) { e.printStackTrace(); }
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#updateAction(boolean)
-        */
-       @Override
-       public void updateAction(boolean aboutToShow) {
-               setEnabled(aboutToShow
-                                               && getTarget() != null && getTarget().getState() == TerminalState.CONNECTED);
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/TabScrollLockAction.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/TabScrollLockAction.java
deleted file mode 100644 (file)
index b9645a1..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.ImageConsts;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-
-/**
- * Terminal console tab scroll lock action.
- */
-public class TabScrollLockAction extends AbstractTerminalAction {
-
-       /**
-        * Constructor.
-        */
-       public TabScrollLockAction() {
-               super(null, TabScrollLockAction.class.getName(), IAction.AS_RADIO_BUTTON);
-
-        setupAction(Messages.TabScrollLockAction_text,
-                    Messages.TabScrollLockAction_tooltip,
-                    UIPlugin.getImageDescriptor(ImageConsts.ACTION_ScrollLock_Hover),
-                    UIPlugin.getImageDescriptor(ImageConsts.ACTION_ScrollLock_Enabled),
-                    UIPlugin.getImageDescriptor(ImageConsts.ACTION_ScrollLock_Disabled),
-                    true);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#run()
-        */
-       @Override
-       public void run() {
-               ITerminalViewControl target = getTarget();
-               if (target != null) {
-                       target.setScrollLock(!target.isScrollLock());
-                       setChecked(target.isScrollLock());
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#updateAction(boolean)
-        */
-       @Override
-       public void updateAction(boolean aboutToShow) {
-               setEnabled(aboutToShow && getTarget() != null && getTarget().getState() == TerminalState.CONNECTED);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/ToggleCommandFieldAction.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/ToggleCommandFieldAction.java
deleted file mode 100644 (file)
index dcdbbe9..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.view.ui.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView;
-import org.eclipse.tm.terminal.view.ui.interfaces.ImageConsts;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.tm.terminal.view.ui.tabs.TabCommandFieldHandler;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
-
-/**
- * Toggle command input field.
- */
-public class ToggleCommandFieldAction extends AbstractTerminalAction {
-       private ITerminalsView view = null;
-
-       /**
-        * Constructor.
-        */
-       public ToggleCommandFieldAction(ITerminalsView view) {
-               super(null, ToggleCommandFieldAction.class.getName(), IAction.AS_CHECK_BOX);
-
-               this.view = view;
-               setupAction(Messages.ToggleCommandFieldAction_menu, Messages.ToggleCommandFieldAction_toolTip,
-                                               UIPlugin.getImageDescriptor(ImageConsts.ACTION_ToggleCommandField_Hover),
-                                               UIPlugin.getImageDescriptor(ImageConsts.ACTION_ToggleCommandField_Enabled),
-                                               UIPlugin.getImageDescriptor(ImageConsts.ACTION_ToggleCommandField_Disabled), true);
-
-               TabCommandFieldHandler handler = getCommandFieldHandler();
-               setChecked(handler != null && handler.hasCommandInputField());
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.action.IAction#run()
-        */
-       @Override
-    public void run() {
-               TabCommandFieldHandler handler = getCommandFieldHandler();
-               if (handler != null) {
-                       handler.setCommandInputField(!handler.hasCommandInputField());
-               }
-               setChecked(handler != null && handler.hasCommandInputField());
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#updateAction(boolean)
-        */
-       @Override
-       public void updateAction(boolean aboutToShow) {
-               TabCommandFieldHandler handler = getCommandFieldHandler();
-               ITerminalViewControl target = getTarget();
-               setEnabled(aboutToShow && handler != null
-                                               && target != null && target.getState() == TerminalState.CONNECTED);
-               setChecked(handler != null && handler.hasCommandInputField());
-       }
-
-       /**
-        * Returns the command input field handler for the active tab.
-        *
-        * @return The command input field handler or <code>null</code>.
-        */
-       @SuppressWarnings("cast")
-       protected TabCommandFieldHandler getCommandFieldHandler() {
-               TabCommandFieldHandler handler = null;
-               // Get the active tab item from the tab folder manager
-               TabFolderManager manager = (TabFolderManager)view.getAdapter(TabFolderManager.class);
-               if (manager != null) {
-                       // If we have the active tab item, we can get the active terminal control
-                       CTabItem activeTabItem = manager.getActiveTabItem();
-                       if (activeTabItem != null && !activeTabItem.isDisposed()) {
-                               handler = manager.getTabCommandFieldHandler(activeTabItem);
-                       }
-               }
-               return handler;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/activator/UIPlugin.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/activator/UIPlugin.java
deleted file mode 100644 (file)
index ac6b57d..0000000
+++ /dev/null
@@ -1,264 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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
- * Max Weninger (Wind River) - [361363] [TERMINALS] Implement "Pin&Clone" for the "Terminals" view
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.activator;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.core.preferences.ScopedEclipsePreferences;
-import org.eclipse.tm.terminal.view.core.tracing.TraceHandler;
-import org.eclipse.tm.terminal.view.ui.interfaces.ImageConsts;
-import org.eclipse.tm.terminal.view.ui.listeners.WorkbenchWindowListener;
-import org.eclipse.tm.terminal.view.ui.view.TerminalsView;
-import org.eclipse.tm.terminal.view.ui.view.TerminalsViewMementoHandler;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchListener;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class UIPlugin extends AbstractUIPlugin {
-       // The shared instance
-       private static UIPlugin plugin;
-       // The scoped preferences instance
-       private static volatile ScopedEclipsePreferences scopedPreferences;
-       // The trace handler instance
-       private static volatile TraceHandler traceHandler;
-       // The workbench listener instance
-       private IWorkbenchListener listener;
-       // The global window listener instance
-       private IWindowListener windowListener;
-
-       /**
-        * The constructor
-        */
-       public UIPlugin() {
-       }
-
-       /**
-        * Returns the shared instance
-        *
-        * @return the shared instance
-        */
-       public static UIPlugin getDefault() {
-               return plugin;
-       }
-
-       /**
-        * Convenience method which returns the unique identifier of this plug-in.
-        */
-       public static String getUniqueIdentifier() {
-               if (getDefault() != null && getDefault().getBundle() != null) {
-                       return getDefault().getBundle().getSymbolicName();
-               }
-               return "org.eclipse.tm.terminal.view.ui"; //$NON-NLS-1$
-       }
-
-       /**
-        * Return the scoped preferences for this plug-in.
-        */
-       public static ScopedEclipsePreferences getScopedPreferences() {
-               if (scopedPreferences == null) {
-                       scopedPreferences = new ScopedEclipsePreferences(getUniqueIdentifier());
-               }
-               return scopedPreferences;
-       }
-
-       /**
-        * Returns the bundles trace handler.
-        *
-        * @return The bundles trace handler.
-        */
-       public static TraceHandler getTraceHandler() {
-               if (traceHandler == null) {
-                       traceHandler = new TraceHandler(getUniqueIdentifier());
-               }
-               return traceHandler;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-        */
-       @Override
-       public void start(BundleContext context) throws Exception {
-               super.start(context);
-               plugin = this;
-
-               // Create and register the workbench listener instance
-               listener = new IWorkbenchListener() {
-
-                       @Override
-                       public boolean preShutdown(IWorkbench workbench, boolean forced) {
-                               if (workbench != null && workbench.getActiveWorkbenchWindow() != null && workbench.getActiveWorkbenchWindow().getActivePage() != null) {
-                                       // Find all "Terminal" views
-                                       IViewReference[] refs = workbench.getActiveWorkbenchWindow().getActivePage().getViewReferences();
-                                       for (IViewReference ref : refs) {
-                                               IViewPart part = ref.getView(false);
-                                               if (part instanceof TerminalsView) {
-                                                       /*
-                                                        * The terminal tabs to save to the views memento on shutdown can
-                                                        * be determined only _before_ the saveState(memento) method of the
-                                                        * view is called. Within saveState, it is already to late and the
-                                                        * terminals might be in CLOSED state already. This depends on the
-                                                        * terminal type and the corresponding connector implementation.
-                                                        *
-                                                        * To be safe, we determine the still opened terminals on shutdown
-                                                        * separately here in the preShutdown.
-                                                        */
-                                                       final List<CTabItem> saveables = new ArrayList<CTabItem>();
-
-                                                       // Get the tab folder
-                                                       CTabFolder tabFolder = (CTabFolder)((TerminalsView)part).getAdapter(CTabFolder.class);
-                                                       if (tabFolder != null && !tabFolder.isDisposed()) {
-                                                               // Get the list of tab items
-                                                               CTabItem[] items = tabFolder.getItems();
-                                                               // Loop the tab items and find the still connected ones
-                                                               for (CTabItem item : items) {
-                                                                       // Ignore disposed items
-                                                                       if (item.isDisposed()) continue;
-                                                                       // Get the terminal view control
-                                                                       ITerminalViewControl terminal = (ITerminalViewControl)item.getData();
-                                                                       if (terminal == null || terminal.getState() != TerminalState.CONNECTED) {
-                                                                               continue;
-                                                                       }
-                                                                       // Still connected -> Add to the list
-                                                                       saveables.add(item);
-                                                               }
-                                                       }
-
-                                                       // Push the determined saveable items to the memento handler
-                                                       TerminalsViewMementoHandler mementoHandler = (TerminalsViewMementoHandler)((TerminalsView)part).getAdapter(TerminalsViewMementoHandler.class);
-                                                       if (mementoHandler != null) mementoHandler.setSaveables(saveables);
-                                               }
-                                       }
-                               }
-
-                               return true;
-                       }
-
-                       @Override
-                       public void postShutdown(IWorkbench workbench) {
-                       }
-               };
-               PlatformUI.getWorkbench().addWorkbenchListener(listener);
-
-               if (windowListener == null && PlatformUI.getWorkbench() != null) {
-                       windowListener = new WorkbenchWindowListener();
-                       PlatformUI.getWorkbench().addWindowListener(windowListener);
-                       activateContexts();
-               }
-       }
-
-       void activateContexts() {
-               if (Display.getCurrent() != null) {
-                       IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-                       if (window != null && windowListener != null) windowListener.windowOpened(window);
-               }
-               else {
-                       PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable(){
-                               @Override
-                               public void run() {
-                                       activateContexts();
-                               }});
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-        */
-       @Override
-       public void stop(BundleContext context) throws Exception {
-               if (windowListener != null && PlatformUI.getWorkbench() != null) {
-                       PlatformUI.getWorkbench().removeWindowListener(windowListener);
-                       windowListener = null;
-               }
-
-               plugin = null;
-               scopedPreferences = null;
-               traceHandler = null;
-               if (listener != null) { PlatformUI.getWorkbench().removeWorkbenchListener(listener); listener = null; }
-               super.stop(context);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#initializeImageRegistry(org.eclipse.jface.resource.ImageRegistry)
-        */
-       @Override
-       protected void initializeImageRegistry(ImageRegistry registry) {
-               Bundle bundle = Platform.getBundle("org.eclipse.ui.console"); //$NON-NLS-1$
-               if (bundle != null) {
-                       URL url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + "full/" + ImageConsts.IMAGE_DIR_EVIEW + "console_view.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-                       registry.put(ImageConsts.VIEW_Terminals, ImageDescriptor.createFromURL(url));
-
-                       url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + "full/" + ImageConsts.IMAGE_DIR_CLCL + "lock_co.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-                       registry.put(ImageConsts.ACTION_ScrollLock_Hover, ImageDescriptor.createFromURL(url));
-                       url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + "full/" + ImageConsts.IMAGE_DIR_ELCL + "lock_co.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-                       registry.put(ImageConsts.ACTION_ScrollLock_Enabled, ImageDescriptor.createFromURL(url));
-                       url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + "full/" + ImageConsts.IMAGE_DIR_DLCL + "lock_co.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-                       registry.put(ImageConsts.ACTION_ScrollLock_Disabled, ImageDescriptor.createFromURL(url));
-               }
-
-               bundle = getBundle();
-               URL url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_CLCL + "command_input_field.gif"); //$NON-NLS-1$
-               registry.put(ImageConsts.ACTION_ToggleCommandField_Hover, ImageDescriptor.createFromURL(url));
-               url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_ELCL + "command_input_field.gif"); //$NON-NLS-1$
-               registry.put(ImageConsts.ACTION_ToggleCommandField_Enabled, ImageDescriptor.createFromURL(url));
-               url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_DLCL + "command_input_field.gif"); //$NON-NLS-1$
-               registry.put(ImageConsts.ACTION_ToggleCommandField_Disabled, ImageDescriptor.createFromURL(url));
-
-               url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_CLCL + "new_terminal_view.gif"); //$NON-NLS-1$
-               registry.put(ImageConsts.ACTION_NewTerminalView_Hover, ImageDescriptor.createFromURL(url));
-               url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_ELCL + "new_terminal_view.gif"); //$NON-NLS-1$
-               registry.put(ImageConsts.ACTION_NewTerminalView_Enabled, ImageDescriptor.createFromURL(url));
-               url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_DLCL + "new_terminal_view.gif"); //$NON-NLS-1$
-               registry.put(ImageConsts.ACTION_NewTerminalView_Disabled, ImageDescriptor.createFromURL(url));
-       }
-
-       /**
-        * Loads the image registered under the specified key from the image
-        * registry and returns the <code>Image</code> object instance.
-        *
-        * @param key The key the image is registered with.
-        * @return The <code>Image</code> object instance or <code>null</code>.
-        */
-       public static Image getImage(String key) {
-               return getDefault().getImageRegistry().get(key);
-       }
-
-       /**
-        * Loads the image registered under the specified key from the image
-        * registry and returns the <code>ImageDescriptor</code> object instance.
-        *
-        * @param key The key the image is registered with.
-        * @return The <code>ImageDescriptor</code> object instance or <code>null</code>.
-        */
-       public static ImageDescriptor getImageDescriptor(String key) {
-               return getDefault().getImageRegistry().getDescriptor(key);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/controls/ConfigurationPanelControl.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/controls/ConfigurationPanelControl.java
deleted file mode 100644 (file)
index 1a3e70d..0000000
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.controls;
-
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel;
-
-/**
- * Base control to deal with wizard or property page controls
- * which should share the same UI space.
- */
-public class ConfigurationPanelControl implements IConfigurationPanelContainer, IMessageProvider {
-       private final Map<String, IConfigurationPanel> configurationPanels = new Hashtable<String, IConfigurationPanel>();
-
-       private String message = null;
-       private int messageType = IMessageProvider.NONE;
-
-       private boolean isGroup;
-
-       private Composite panel;
-       private StackLayout panelLayout;
-
-       private String activeConfigurationPanelKey = null;
-       private IConfigurationPanel activeConfigurationPanel = null;
-
-       private final AbstractConfigurationPanel EMPTY_PANEL;
-
-       /**
-        * An empty configuration panel implementation.
-        */
-       private static final class EmptySettingsPanel extends AbstractConfigurationPanel {
-
-               /**
-                * Constructor.
-                *
-                * @param container The configuration panel container or <code>null</code>.
-            */
-           public EmptySettingsPanel(IConfigurationPanelContainer container) {
-                   super(container);
-           }
-
-           /* (non-Javadoc)
-            * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#setupPanel(org.eclipse.swt.widgets.Composite)
-            */
-        @Override
-           public void setupPanel(Composite parent) {
-               Composite panel = new Composite(parent, SWT.NONE);
-               panel.setLayout(new GridLayout());
-               panel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-               panel.setBackground(parent.getBackground());
-
-               setControl(panel);
-           }
-
-        /* (non-Javadoc)
-         * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#isValid()
-         */
-           @Override
-           public boolean isValid() {
-               return false;
-           }
-       }
-
-       /**
-        * Cleanup all resources the control might have been created.
-        */
-       public void dispose() {
-               EMPTY_PANEL.dispose();
-       }
-
-       /**
-        * Constructor.
-        */
-       public ConfigurationPanelControl() {
-               EMPTY_PANEL = new EmptySettingsPanel(this);
-               clear();
-               setPanelIsGroup(false);
-       }
-
-       /**
-        * Sets if or if not the controls panel is a <code>Group</code>.
-        *
-        * @param isGroup <code>True</code> if the controls panel is a group, <code>false</code> otherwise.
-        */
-       public void setPanelIsGroup(boolean isGroup) {
-               this.isGroup = isGroup;
-       }
-
-       /**
-        * Returns if or if not the controls panel is a <code>Group</code>.
-        *
-        * @return <code>True</code> if the controls panel is a group, <code>false</code> otherwise.
-        */
-       public boolean isPanelIsGroup() {
-               return isGroup;
-       }
-
-       /**
-        * Returns the controls panel.
-        *
-        * @return The controls panel or <code>null</code>.
-        */
-       public Composite getPanel() {
-               return panel;
-       }
-
-       /**
-        * Returns the label text to set for the group (if the panel is a group).
-        *
-        * @return The label text to apply or <code>null</code>.
-        */
-       public String getGroupLabel() {
-               return null;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer#validate()
-        */
-       @Override
-       public void validate() {
-       }
-
-       /**
-        * To be called from the embedding control to setup the controls UI elements.
-        *
-        * @param parent The parent control. Must not be <code>null</code>!
-        */
-       public void setupPanel(Composite parent, String[] configurationPanelKeys) {
-               Assert.isNotNull(parent);
-
-               if (isPanelIsGroup()) {
-                       panel = new Group(parent, SWT.NONE);
-                       if (getGroupLabel() != null) ((Group)panel).setText(getGroupLabel());
-               } else {
-                       panel = new Composite(parent, SWT.NONE);
-               }
-               Assert.isNotNull(panel);
-               panel.setFont(parent.getFont());
-               panel.setBackground(parent.getBackground());
-
-               panelLayout = new StackLayout();
-               panel.setLayout(panelLayout);
-
-               setupConfigurationPanels(panel, configurationPanelKeys);
-               EMPTY_PANEL.setupPanel(panel);
-       }
-
-       /**
-        * Removes all configuration panels.
-        */
-       public void clear() {
-               configurationPanels.clear();
-       }
-
-       /**
-        * Returns a unsorted list of all registered configuration panel id's.
-        *
-        * @return A list of registered configuration panel id's.
-        */
-       public String[] getConfigurationPanelIds() {
-               return configurationPanels.keySet().toArray(new String[configurationPanels.keySet().size()]);
-       }
-
-       /**
-        * Returns the configuration panel instance registered for the given configuration panel key.
-        *
-        * @param key The key to get the configuration panel for. Must not be <code>null</code>!
-        * @return The configuration panel instance or an empty configuration panel if the key is unknown.
-        */
-       public IConfigurationPanel getConfigurationPanel(String key) {
-               IConfigurationPanel panel = key != null ? configurationPanels.get(key) : null;
-               return panel != null ? panel : EMPTY_PANEL;
-       }
-
-       /**
-        * Returns if or if not the given configuration panel is equal to the
-        * empty configuration panel.
-        *
-        * @param panel The configuration panel or <code>null</code>.
-        * @return <code>True</code> if the configuration panel is equal to the empty configuration panel.
-        */
-       public final boolean isEmptyConfigurationPanel(IConfigurationPanel panel) {
-               return EMPTY_PANEL == panel;
-       }
-
-       /**
-        * Adds the given configuration panel under the given configuration panel key to the
-        * list of known panels. If the given configuration panel is <code>null</code>, any
-        * configuration panel stored under the given key is removed from the list of known panels.
-        *
-        * @param key The key to get the configuration panel for. Must not be <code>null</code>!
-        * @param panel The configuration panel instance or <code>null</code>.
-        */
-       public void addConfigurationPanel(String key, IConfigurationPanel panel) {
-               if (key == null) return;
-               if (panel != null) {
-                       configurationPanels.put(key, panel);
-               } else {
-                       configurationPanels.remove(key);
-               }
-       }
-
-       /**
-        * Setup the configuration panels for being presented to the user. This method is called by the
-        * controls <code>doSetupPanel(...)</code> and initialize all possible configuration panels to show.
-        * The default implementation iterates over the given list of configuration panel keys and calls
-        * <code>setupPanel(...)</code> for each of them.
-        *
-        * @param parent The parent composite to use for the configuration panels. Must not be <code>null</code>!
-        * @param configurationPanelKeys The list of configuration panels to initialize. Might be <code>null</code> or empty!
-        */
-       public void setupConfigurationPanels(Composite parent, String[] configurationPanelKeys) {
-               Assert.isNotNull(parent);
-
-               if (configurationPanelKeys != null) {
-                       for (int i = 0; i < configurationPanelKeys.length; i++) {
-                               IConfigurationPanel configPanel = getConfigurationPanel(configurationPanelKeys[i]);
-                               Assert.isNotNull(configPanel);
-                               configPanel.setupPanel(parent);
-                       }
-               }
-       }
-
-       /**
-        * Make the wizard configuration panel registered under the given configuration panel key the
-        * most top configuration panel. If no configuration panel is registered under the given key,
-        * nothing will happen.
-        *
-        * @param key The key to get the wizard configuration panel for. Must not be <code>null</code>!
-        */
-       public void showConfigurationPanel(String key) {
-               String activeKey = getActiveConfigurationPanelKey();
-               if (key != null && key.equals(activeKey) && activeConfigurationPanel != null) {
-                       return;
-               }
-               IConfigurationPanel configPanel = getActiveConfigurationPanel();
-               Map<String, Object> data = new HashMap<String, Object>();
-               if (configPanel != null) configPanel.extractData(data);
-               configPanel = getConfigurationPanel(key);
-               Assert.isNotNull(configPanel);
-               if (configPanel.getControl() != null) {
-                       activeConfigurationPanel = configPanel;
-                       activeConfigurationPanelKey = key;
-                       panelLayout.topControl = configPanel.getControl();
-                       panel.layout();
-                       if (!data.isEmpty()) configPanel.updateData(data);
-                       configPanel.activate();
-               }
-               else {
-                       activeConfigurationPanelKey = key;
-               }
-       }
-
-       /**
-        * Returns the currently active configuration panel.
-        *
-        * @return The active configuration panel or <code>null</code>.
-        */
-       public IConfigurationPanel getActiveConfigurationPanel() {
-               return activeConfigurationPanel;
-       }
-
-       /**
-        * Returns the currently active configuration panel key.
-        *
-        * @return The active configuration panel key or <code>null</code>.
-        */
-       public String getActiveConfigurationPanelKey() {
-               return activeConfigurationPanelKey;
-       }
-
-       /**
-        * Returns the dialog settings to use to save and restore control specific
-        * widget values.
-        *
-        * @param settings The parent dialog settings. Must not be <code>null</code>.
-        * @return The dialog settings to use.
-        */
-       public final IDialogSettings getDialogSettings(IDialogSettings settings) {
-               Assert.isNotNull(settings);
-
-               // Store the settings of the control within it's own section.
-               String sectionName = this.getClass().getSimpleName();
-               Assert.isNotNull(sectionName);
-
-               IDialogSettings section = settings.getSection(sectionName);
-               if (section == null) {
-                       section = settings.addNewSection(sectionName);
-               }
-
-        return section;
-       }
-
-       /**
-        * Restore the widget values from the dialog settings store to recreate the control history.
-        * <p>
-        * <b>Note:</b>
-        * The control is saving the widget values into a section equal to the class name {@link Class#getName()}.
-        * After the sections has been created, the method calls <code>doRestoreWidgetValues</code> for restoring
-        * the single properties from the dialog settings. Subclasses may override <code>doRestoreWidgetValues</code>
-        * only to deal with the single properties only or <code>restoreWidgetValues</code> when to override the
-        * creation of the subsections.
-        *
-        * @param settings The dialog settings object instance to restore the widget values from. Must not be <code>null</code>!
-        * @param idPrefix The prefix to use for every dialog settings slot keys. If <code>null</code>, the dialog settings slot keys are not to prefix.
-        */
-       public final void restoreWidgetValues(IDialogSettings settings, String idPrefix) {
-               Assert.isNotNull(settings);
-
-               // now, call the hook for actually reading the single properties from the dialog settings.
-               doRestoreWidgetValues(getDialogSettings(settings), idPrefix);
-       }
-
-       /**
-        * Hook to restore the widget values finally plain from the given dialog settings. This method should
-        * not fragment the given dialog settings any further.
-        *
-        * @param settings The dialog settings to restore the widget values from. Must not be <code>null</code>!
-        * @param idPrefix The prefix to use for every dialog settings slot keys. If <code>null</code>, the dialog settings slot keys are not to prefix.
-        */
-       public void doRestoreWidgetValues(IDialogSettings settings, String idPrefix) {
-               Assert.isNotNull(settings);
-
-               for (String panelKey : configurationPanels.keySet()) {
-                       IConfigurationPanel configPanel = getConfigurationPanel(panelKey);
-                       if (configPanel != null && !isEmptyConfigurationPanel(configPanel)) {
-                               IDialogSettings configPanelSettings = settings.getSection(panelKey);
-                               if (configPanelSettings == null) configPanelSettings = settings.addNewSection(panelKey);
-                               configPanel.doRestoreWidgetValues(configPanelSettings, idPrefix);
-                       }
-               }
-       }
-
-       /**
-        * Saves the widget values to the dialog settings store for remembering the history. The control might
-        * be embedded within multiple pages multiple times handling different properties. Because the single
-        * controls should not mix up the history, we create subsections within the given dialog settings if
-        * they do not already exist. After the sections has been created, the method calls <code>doSaveWidgetValues</code>
-        * for saving the single properties to the dialog settings. Subclasses may override <code>doSaveWidgetValues</code>
-        * only to deal with the single properties only or <code>saveWidgetValues</code> when to override the
-        * creation of the subsections.
-        *
-        * @param settings The dialog settings object instance to save the widget values to. Must not be <code>null</code>!
-        * @param idPrefix The prefix to use for every dialog settings slot keys. If <code>null</code>, the dialog settings slot keys are not to prefix.
-        */
-       public final void saveWidgetValues(IDialogSettings settings, String idPrefix) {
-               Assert.isNotNull(settings);
-
-               // now, call the hook for actually writing the single properties to the dialog settings.
-               doSaveWidgetValues(getDialogSettings(settings), idPrefix);
-       }
-
-       /**
-        * Hook to save the widget values finally plain to the given dialog settings. This method should
-        * not fragment the given dialog settings any further.
-        *
-        * @param settings The dialog settings to save the widget values to. Must not be <code>null</code>!
-        * @param idPrefix The prefix to use for every dialog settings slot keys. If <code>null</code>, the dialog settings slot keys are not to prefix.
-        */
-       public void doSaveWidgetValues(IDialogSettings settings, String idPrefix) {
-               Assert.isNotNull(settings);
-
-               IConfigurationPanel configPanel = getActiveConfigurationPanel();
-               if (configPanel != null && !isEmptyConfigurationPanel(configPanel)) {
-                       String key = getActiveConfigurationPanelKey();
-                       IDialogSettings configPanelSettings = settings.getSection(key);
-                       if (configPanelSettings == null) configPanelSettings = settings.addNewSection(key);
-                       configPanel.doSaveWidgetValues(configPanelSettings, idPrefix);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.IMessageProvider#getMessage()
-        */
-       @Override
-       public final String getMessage() {
-               return message;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.IMessageProvider#getMessageType()
-        */
-       @Override
-       public final int getMessageType() {
-               return messageType;
-       }
-
-       /**
-        * Set the message and the message type to display.
-        *
-        * @param message The message or <code>null</code>.
-        * @param messageType The message type or <code>IMessageProvider.NONE</code>.
-        */
-       @Override
-    public final void setMessage(String message, int messageType) {
-               this.message = message;
-               this.messageType = messageType;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/controls/NoteCompositeHelper.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/controls/NoteCompositeHelper.java
deleted file mode 100644 (file)
index a861234..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.controls;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-
-/**
- * A helper class to create a composite with a highlighted note
- * entry and a message text.
- */
-public class NoteCompositeHelper {
-
-       /**
-        * The common label text to show on a note. Defaults to &quot;Note:&quot;.
-        */
-       public static final String NOTE_LABEL = Messages.NoteCompositeHelper_note_label;
-
-       private static class NoteComposite extends Composite {
-
-               public NoteComposite(Composite parent, int style) {
-                       super(parent, style);
-               }
-
-               @Override
-               public void setEnabled(boolean enabled) {
-                       super.setEnabled(enabled);
-                       Control[] childs = getChildren();
-                       for (int iChild = 0; iChild < childs.length; iChild++) {
-                               Control child = childs[iChild];
-                               child.setEnabled(enabled);
-                       }
-               }
-       }
-
-       /**
-        * Creates a composite with a highlighted Note entry and a message text.
-        * This is designed to take up the full width of the page.
-        *
-        * @see PreferencePage#createNoteComposite, this is a plain copy of that!
-        * @param font
-        *            the font to use
-        * @param composite
-        *            the parent composite
-        * @param title
-        *            the title of the note
-        * @param message
-        *            the message for the note
-        *
-        * @return the composite for the note
-        */
-       public static Composite createNoteComposite(Font font, Composite composite, String title, String message) {
-               return createNoteComposite(font, composite, title, message, SWT.DEFAULT);
-       }
-
-       /**
-        * Creates a composite with a highlighted Note entry and a message text.
-        * This is designed to take up the full width of the page.
-        *
-        * @see PreferencePage#createNoteComposite, this is a plain copy of that!
-        * @param font
-        *            the font to use
-        * @param composite
-        *            the parent composite
-        * @param title
-        *            the title of the note
-        * @param message
-        *            the message for the note
-        * @param minCharsPerLine
-        *            the minimum number of characters per line. Defaults to '65' if less than '20'.
-        *
-        * @return the composite for the note
-        */
-       public static Composite createNoteComposite(Font font, Composite composite, String title, String message, int minCharsPerLine) {
-               final GC gc = new GC(composite);
-               gc.setFont(font);
-
-               Composite messageComposite = new NoteComposite(composite, SWT.NONE);
-
-               GridLayout messageLayout = new GridLayout();
-               messageLayout.numColumns = 2;
-               messageLayout.marginWidth = 0;
-               messageLayout.marginHeight = 0;
-               messageComposite.setLayout(messageLayout);
-
-               GridData layoutData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-               if (composite.getLayout() instanceof GridLayout) {
-                       layoutData.horizontalSpan = ((GridLayout) composite.getLayout()).numColumns;
-               }
-               messageComposite.setLayoutData(layoutData);
-               messageComposite.setFont(font);
-
-               final Label noteLabel = new Label(messageComposite, SWT.BOLD);
-               noteLabel.setText(title);
-               noteLabel.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT));
-               noteLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
-
-               final IPropertyChangeListener fontListener = new IPropertyChangeListener() {
-                       @Override
-                       public void propertyChange(PropertyChangeEvent event) {
-                               // Note: This is actually wrong but the same as in platforms
-                               // PreferencePage
-                               if (JFaceResources.BANNER_FONT.equals(event.getProperty())) {
-                                       noteLabel.setFont(JFaceResources.getFont(JFaceResources.BANNER_FONT));
-                               }
-                       }
-               };
-               JFaceResources.getFontRegistry().addListener(fontListener);
-               noteLabel.addDisposeListener(new DisposeListener() {
-                       @Override
-                       public void widgetDisposed(DisposeEvent event) {
-                               JFaceResources.getFontRegistry().removeListener(fontListener);
-                       }
-               });
-
-               Label messageLabel = new Label(messageComposite, SWT.WRAP);
-               messageLabel.setText(message);
-               messageLabel.setFont(font);
-
-               /**
-                * Set the controls style to FILL_HORIZONTAL making it multi-line if
-                * needed
-                */
-               layoutData = new GridData(GridData.FILL_HORIZONTAL);
-               layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), minCharsPerLine >= 20 ? minCharsPerLine : 65);
-               messageLabel.setLayoutData(layoutData);
-
-               gc.dispose();
-
-               return messageComposite;
-       }
-
-       /**
-        * change the text of the second label
-        *
-        * @param messageComposite
-        *            the NoteComposite that gets returned from createNoteComposite
-        * @param msg
-        *            the new text
-        */
-       public static void setMessage(Composite messageComposite, String msg) {
-               if (messageComposite instanceof NoteComposite) {
-                       Control[] children = messageComposite.getChildren();
-                       if (children.length == 2) {
-                               Control c = children[1];
-                               if (c instanceof Label) {
-                                       ((Label) c).setText(msg);
-                                       messageComposite.pack();
-                               }
-                       }
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/help/IContextHelpIds.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/help/IContextHelpIds.java
deleted file mode 100644 (file)
index f4f2a07..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2016 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
- * Dirk Fauth <dirk.fauth@googlemail.com> - Bug 460496
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.help;
-
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-
-
-/**
- * UI Context help id definitions.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IContextHelpIds {
-
-       /**
-        * UI plug-in common context help id prefix.
-        */
-       public final static String PREFIX = UIPlugin.getUniqueIdentifier() + "."; //$NON-NLS-1$
-
-       /**
-        * Launch terminal settings dialog.
-        */
-       public final static String LAUNCH_TERMINAL_SETTINGS_DIALOG = PREFIX + "LaunchTerminalSettingsDialog"; //$NON-NLS-1$
-
-       /**
-        * Terminal control encoding selection dialog.
-        */
-       public final static String ENCODING_SELECTION_DIALOG = PREFIX + "EncodingSelectionDialog"; //$NON-NLS-1$
-
-       /**
-        * External executables dialog.
-        * @since 4.1
-        */
-       public final static String EXTERNAL_EXECUTABLES_DIALOG = PREFIX + "ExternalExecutablesDialog"; //$NON-NLS-1$
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IConfigurationPanel.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IConfigurationPanel.java
deleted file mode 100644 (file)
index dcdfc67..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.interfaces;
-
-import java.util.Map;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel;
-
-/**
- * Terminal launcher configuration panel.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * Clients should extend {@link AbstractConfigurationPanel} instead.
- */
-public interface IConfigurationPanel extends IMessageProvider {
-
-       /**
-        * Returns the configuration panel container.
-        *
-        * @return The configuration panel container or <code>null</code>.
-        */
-       public IConfigurationPanelContainer getContainer();
-
-       /**
-        * Creates the terminal launcher configuration panel UI elements within the
-        * given parent composite. Terminal launcher configuration panels should always
-        * create another composite within the given composite, which is the panel top
-        * control. The top control is queried later from the stack layout to show the
-        * different panels if the selected terminal launcher changed.
-        *
-        * @param parent The parent composite to create the UI elements in. Must not be <code>null</code>.
-        */
-       public void setupPanel(Composite parent);
-
-       /**
-        * Cleanup all resources the wizard configuration panel might have been created.
-        */
-       public void dispose();
-
-       /**
-        * Returns the terminal launcher configuration panels top control, typically a
-        * composite control. This control is requested every time the stack layout is
-        * required to set a new top control because the selected terminal launcher changed.
-        *
-        * @return The top control or <code>null</code> if the configuration panel has been not setup yet.
-        */
-       public Composite getControl();
-
-       /**
-        * Validates the control and sets the message text and type so the parent
-        * page or control is able to display validation result informations.
-        * The default implementation of this method does nothing.
-        *
-        * @return Result of validation.
-        */
-       public boolean isValid();
-
-       /**
-        * Restore the widget values plain from the given dialog settings. This method should
-        * not fragment the given dialog settings any further.
-        *
-        * @param settings The dialog settings to restore the widget values from. Must not be <code>null</code>!
-        * @param idPrefix The prefix to use for every dialog settings slot keys. If <code>null</code>, the dialog settings slot keys are not to prefix.
-        */
-       public void doRestoreWidgetValues(IDialogSettings settings, String idPrefix);
-
-       /**
-        * Save the widget values plain to the given dialog settings. This method should
-        * not fragment the given dialog settings any further.
-        *
-        * @param settings The dialog settings to save the widget values to. Must not be <code>null</code>!
-        * @param idPrefix The prefix to use for every dialog settings slot keys. If <code>null</code>, the dialog settings slot keys are not to prefix.
-        */
-       public void doSaveWidgetValues(IDialogSettings settings, String idPrefix);
-
-       /**
-        * Enables or disables all UI elements belonging to the wizard configuration panel.
-        *
-        * @param enabled <code>True</code> to enable the UI elements, <code>false</code> otherwise.
-        */
-       public void setEnabled(boolean enabled);
-
-       /**
-        * Called when the panel gets the active panel.
-        */
-       public void activate();
-
-       /**
-        * Initialize the widgets based of the data from the given map.
-        * <p>
-        * This method may called multiple times during the lifetime of the panel and the given
-        * map might be even <code>null</code>.
-        *
-        * @param data The map or <code>null</code>.
-        */
-       public void setupData(Map<String, Object> data);
-
-       /**
-        * Extract the data from the widgets and write it back to the given map.
-        * <p>
-        * This method may called multiple times during the lifetime of the panel and the given
-        * map might be even <code>null</code>.
-        *
-        * @param data The map or <code>null</code>.
-        */
-       public void extractData(Map<String, Object> data);
-
-       /**
-        * Update the data from the given properties container which contains the current
-        * working data.
-        * <p>
-        * This method may called multiple times during the lifetime of the panel and the given
-        * map might be even <code>null</code>.
-        *
-        * @param data The map or <code>null</code>.
-        */
-       public void updateData(Map<String, Object> data);
-
-       /**
-        * Set the selection to the terminal launcher configuration panel.
-        *
-        * @param selection The selection or <code>null</code>.
-        */
-       public void setSelection(ISelection selection);
-
-       /**
-        * Returns the selection associated with the terminal launcher configuration panel.
-        *
-        * @return The selection or <code>null</code>.
-        */
-       public ISelection getSelection();
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IConfigurationPanelContainer.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IConfigurationPanelContainer.java
deleted file mode 100644 (file)
index 9be4adf..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.ui.interfaces;
-
-
-
-/**
- * A container to deal with configuration panels.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IConfigurationPanelContainer {
-
-       /**
-        * Validates the container status.
-        * <p>
-        * If necessary, set the corresponding messages and message types to signal when some sub
-        * elements of the container needs user attention.
-        */
-       public void validate();
-
-       /**
-        * Set the message and the message type to display.
-        *
-        * @param message The message or <code>null</code>.
-        * @param messageType The message type or <code>IMessageProvider.NONE</code>.
-        */
-       public void setMessage(String message, int messageType);
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IExternalExecutablesProperties.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IExternalExecutablesProperties.java
deleted file mode 100644 (file)
index 78fcc4b..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2016 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
- * Dirk Fauth - [460496] Moved from o.e.tm.t.connector.local.showin.interfaces
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces;
-
-/**
- * External executables data property names.
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @since 4.1
- */
-public interface IExternalExecutablesProperties {
-
-       /**
-        * The name/label of the external executable.
-        */
-       public final String PROP_NAME = "Name"; //$NON-NLS-1$
-
-       /**
-        * The absolute path of the external executable.
-        */
-       public final String PROP_PATH = "Path"; //$NON-NLS-1$
-
-       /**
-        * The arguments to pass to the external executable.
-        */
-       public final String PROP_ARGS = "Args"; //$NON-NLS-1$
-
-       /**
-        * The absolute path to the icon representing the external executable.
-        */
-       public final String PROP_ICON = "Icon"; //$NON-NLS-1$
-
-       /**
-        * If set, backslashes are translated to forward slashes on paste.
-        */
-       public final String PROP_TRANSLATE = "Translate"; //$NON-NLS-1$
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ILauncherDelegate.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ILauncherDelegate.java
deleted file mode 100644 (file)
index c7b7be3..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.interfaces;
-
-import java.util.Map;
-
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
-import org.eclipse.tm.terminal.view.ui.launcher.AbstractLauncherDelegate;
-
-/**
- * Terminal launcher delegate.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * Clients should extend {@link AbstractLauncherDelegate} instead.
- */
-public interface ILauncherDelegate extends IExecutableExtension, IAdaptable {
-
-       /**
-        * Returns the unique id of the launcher delegate. The returned
-        * id must be never <code>null</code> or an empty string.
-        *
-        * @return The unique id.
-        */
-       public String getId();
-
-       /**
-        * Returns the label or UI name of the launcher delegate.
-        *
-        * @return The label or UI name. An empty string if not set.
-        */
-       public String getLabel();
-
-       /**
-        * Returns if or if not the launcher delegate is hidden for the user.
-        *
-        * @return <code>True</code> if the launcher delegate is hidden, <code>false</code> otherwise.
-        */
-       public boolean isHidden();
-
-       /**
-        * Returns the enablement expression.
-        *
-        * @return The enablement expression or <code>null</code>.
-        */
-       public Expression getEnablement();
-
-       /**
-        * Returns if or if not the user needs to set configuration details for this launcher to work.
-        * The settings to configure are provided to the user through the configuration panel returned
-        * by {@link #getPanel(BaseDialogPageControl)}.
-        *
-        * @return <code>True</code> if a user configuration is required, <code>false</code> otherwise.
-        */
-       public boolean needsUserConfiguration();
-
-       /**
-        * Returns the configuration panel instance to present to the user. The instance must be always
-        * the same on subsequent calls until disposed.
-        * <p>
-        * The method may return <code>null</code> if the launcher does not provide any user
-        * configurable settings. In this case, {@link #needsUserConfiguration()} should return
-        * <code>false</code>.
-        *
-        * @param container The configuration panel container or <code>null</code>.
-        * @return The configuration panel instance or <code>null</code>
-        */
-       public IConfigurationPanel getPanel(IConfigurationPanelContainer container);
-
-       /**
-        * Execute the terminal launch.
-        *
-        * @param properties The properties. Must not be <code>null</code>.
-        * @param done The callback or <code>null</code>.
-        */
-       public void execute(Map<String, Object> properties, ITerminalService.Done done);
-
-       /**
-        * Creates the terminal connector for this launcher delegate based on
-        * the given properties.
-        *
-        * @param properties The terminal properties. Must not be <code>null</code>.
-        * @return The terminal connector or <code>null</code>.
-        */
-    public ITerminalConnector createTerminalConnector(Map<String, Object> properties);
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IMementoHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IMementoHandler.java
deleted file mode 100644 (file)
index 5afbf66..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.view.ui.interfaces;
-
-import java.util.Map;
-
-import org.eclipse.ui.IMemento;
-
-/**
- * Terminal properties memento handler.
- */
-public interface IMementoHandler {
-
-    /**
-     * Saves the terminal properties in the given memento.
-     *
-     * @param memento The memento. Must not be <code>null</code>.
-     * @param properties The map containing the terminal properties to save. Must not be <code>null</code>.
-     */
-    public void saveState(IMemento memento, Map<String, Object> properties);
-
-    /**
-     * Restore the terminal properties from the given memento.
-     *
-     * @param memento The memento. Must not be <code>null</code>.
-     * @param properties The map receiving the restored terminal properties. Must not be <code>null</code>.
-     */
-    public void restoreState(IMemento memento, Map<String, Object> properties);
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IPreferenceKeys.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IPreferenceKeys.java
deleted file mode 100644 (file)
index c4df89d..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2016 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
- * Dirk Fauth <dirk.fauth@googlemail.com> - Bug 460496
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces;
-
-/**
- * Terminal plug-in preference key definitions.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IPreferenceKeys {
-       /**
-        * Preference keys family prefix.
-        */
-       public final String PREF_TERMINAL = "terminals"; //$NON-NLS-1$
-
-       /**
-        * Preference key: Remove terminated terminals when a new terminal is created.
-        */
-       public final String PREF_REMOVE_TERMINATED_TERMINALS = PREF_TERMINAL + ".removeTerminatedTerminals"; //$NON-NLS-1$
-
-       // showin preferences
-
-       /**
-        * Preference key: Local terminal initial working directory.
-        * @since 4.1
-        */
-       public final String PREF_LOCAL_TERMINAL_INITIAL_CWD = PREF_TERMINAL + ".localTerminalInitialCwd"; //$NON-NLS-1$
-
-       /**
-        * Preference value: Local terminal initial working directory is "User home"
-        * @since 4.1
-        */
-       public final String PREF_INITIAL_CWD_USER_HOME = "userhome"; //$NON-NLS-1$
-
-       /**
-        * Preference value: Local terminal initial working directory is "Eclipse home"
-        * @since 4.1
-        */
-       public final String PREF_INITIAL_CWD_ECLIPSE_HOME = "eclipsehome"; //$NON-NLS-1$
-
-       /**
-        * Preference value: Local terminal initial working directory is "Eclipse workspace"
-        * @since 4.1
-        */
-       public final String PREF_INITIAL_CWD_ECLIPSE_WS = "eclipsews"; //$NON-NLS-1$
-
-       /**
-        * Preference key: Local terminal default shell command on Unix hosts.
-        * @since 4.1
-        */
-       public final String PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX = PREF_TERMINAL + ".localTerminalDefaultShellUnix"; //$NON-NLS-1$
-
-       /**
-        * Preference key: Local terminal default shell command arguments on Unix hosts.
-        * @since 4.1
-        */
-       public final String PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX_ARGS = PREF_TERMINAL + ".localTerminalDefaultShellUnixArgs"; //$NON-NLS-1$
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ITerminalsView.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ITerminalsView.java
deleted file mode 100644 (file)
index c3a5ec8..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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
- * Max Weninger (Wind River) - [361363] [TERMINALS] Implement "Pin&Clone" for the "Terminals" view
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces;
-
-import org.eclipse.ui.IViewPart;
-
-/**
- * Terminal view public interface.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface ITerminalsView extends IViewPart {
-
-       /**
-        * Switch to the empty page control.
-        */
-       public void switchToEmptyPageControl();
-
-       /**
-        * Switch to the tab folder control.
-        */
-       public void switchToTabFolderControl();
-
-       /**
-        * Returns the context help id associated with the terminal
-        * console view instance.
-        *
-        * @return The context help id or <code>null</code> if none is associated.
-        */
-       public String getContextHelpId();
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IUIConstants.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IUIConstants.java
deleted file mode 100644 (file)
index dcaaddd..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.interfaces;
-
-/**
- * Terminal common UI constants.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IUIConstants {
-       /**
-        * The view id of the terminals view.
-        */
-       public static final String ID = "org.eclipse.tm.terminal.view.ui.TerminalsView"; //$NON-NLS-1$
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ImageConsts.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ImageConsts.java
deleted file mode 100644 (file)
index dd43cb7..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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
- * Max Weninger (Wind River) - [361363] [TERMINALS] Implement "Pin&Clone" for the "Terminals" view
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces;
-
-/**
- * Image registry constants.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface ImageConsts {
-       /**
-        * The root directory where to load the images from, relative to
-        * the bundle directory.
-        */
-    public final static String IMAGE_DIR_ROOT = "icons/"; //$NON-NLS-1$
-
-    /**
-     * The directory where to load colored local toolbar images from,
-     * relative to the image root directory.
-     */
-    public final static String  IMAGE_DIR_CLCL = "clcl16/"; //$NON-NLS-1$
-
-    /**
-     * The directory where to load disabled local toolbar images from,
-     * relative to the image root directory.
-     */
-    public final static String  IMAGE_DIR_DLCL = "dlcl16/"; //$NON-NLS-1$
-
-    /**
-     * The directory where to load enabled local toolbar images from,
-     * relative to the image root directory.
-     */
-    public final static String  IMAGE_DIR_ELCL = "elcl16/"; //$NON-NLS-1$
-
-    /**
-     * The directory where to load view related images from, relative to
-     * the image root directory.
-     */
-    public final static String  IMAGE_DIR_EVIEW = "eview16/"; //$NON-NLS-1$
-
-    /**
-     * The key to access the terminals console view image.
-     */
-    public static final String VIEW_Terminals = "TerminalsView"; //$NON-NLS-1$
-
-    /**
-     * The key to access the scroll lock action image (enabled).
-     */
-    public static final String  ACTION_ScrollLock_Enabled = "ScrollLockAction_enabled"; //$NON-NLS-1$
-
-    /**
-     * The key to access the scroll lock action image (disabled).
-     */
-    public static final String  ACTION_ScrollLock_Disabled = "ScrollLockAction_disabled"; //$NON-NLS-1$
-
-    /**
-     * The key to access the scroll lock action image (hover).
-     */
-    public static final String  ACTION_ScrollLock_Hover = "ScrollLockAction_hover"; //$NON-NLS-1$
-
-    /**
-     * The key to access the new terminal view action image (enabled).
-     * @since 4.1
-     */
-    public static final String  ACTION_NewTerminalView_Enabled = "NewTerminalViewAction_enabled"; //$NON-NLS-1$
-
-    /**
-     * The key to access the new terminal view action image (disabled).
-     * @since 4.1
-     */
-    public static final String  ACTION_NewTerminalView_Disabled = "NewTerminalViewAction_disabled"; //$NON-NLS-1$
-
-    /**
-     * The key to access the new terminal view action image (hover).
-     * @since 4.1
-     */
-    public static final String  ACTION_NewTerminalView_Hover = "NewTerminalViewAction_hover"; //$NON-NLS-1$
-
-    /**
-     * The key to access the toggle command field action image (enabled).
-     */
-    public static final String  ACTION_ToggleCommandField_Enabled = "ToggleCommandField_enabled"; //$NON-NLS-1$
-
-    /**
-     * The key to access the toggle command field action image (disabled).
-     */
-    public static final String  ACTION_ToggleCommandField_Disabled = "ToggleCommandField_disabled"; //$NON-NLS-1$
-
-    /**
-     * The key to access the toggle command field action image (hover).
-     */
-    public static final String  ACTION_ToggleCommandField_Hover = "ToggleCommandField_hover"; //$NON-NLS-1$
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/tracing/ITraceIds.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/tracing/ITraceIds.java
deleted file mode 100644 (file)
index d0e4d4d..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.interfaces.tracing;
-
-/**
- * Core plug-in trace slot identifiers.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface ITraceIds {
-
-       /**
-        * If activated, tracing information about the terminals output stream monitor is printed out.
-        */
-       public static final String TRACE_OUTPUT_STREAM_MONITOR = "trace/outputStreamMonitor"; //$NON-NLS-1$
-
-       /**
-        * If activated, tracing information about the launch terminal command handler is printed out.
-        */
-       public static final String TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER = "trace/launchTerminalCommandHandler"; //$NON-NLS-1$
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/ExternalExecutablesState.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/ExternalExecutablesState.java
deleted file mode 100644 (file)
index 83e009c..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 Dirk Fauth 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:
- * Dirk Fauth <dirk.fauth@googlemail.com> - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.internal;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.tm.terminal.view.ui.local.showin.ExternalExecutablesManager;
-import org.eclipse.ui.AbstractSourceProvider;
-import org.eclipse.ui.ISources;
-
-/**
- * SourceProvider that provides a state to determine whether external executables are configured or not.
- */
-public class ExternalExecutablesState extends AbstractSourceProvider {
-       public final static String CONFIGURED_STATE = "org.eclipse.tm.terminal.external.executable.configured"; //$NON-NLS-1$
-       private boolean enabled;
-
-       public ExternalExecutablesState() {
-               List<Map<String, String>> externals = ExternalExecutablesManager.load();
-               this.enabled = (externals != null && !externals.isEmpty());
-       }
-
-       @Override
-       public String[] getProvidedSourceNames() {
-               return new String[] { CONFIGURED_STATE };
-       }
-
-       @Override
-       public Map getCurrentState() {
-               Map<String, String> map = new HashMap<String, String>(1);
-               map.put(CONFIGURED_STATE, Boolean.valueOf(enabled).toString().toUpperCase());
-               return map;
-       }
-
-       public void enable() {
-               fireSourceChanged(ISources.WORKBENCH, CONFIGURED_STATE, "TRUE");                 //$NON-NLS-1$
-       }
-
-       public void disable() {
-               fireSourceChanged(ISources.WORKBENCH, CONFIGURED_STATE, "FALSE");                //$NON-NLS-1$
-       }
-
-       @Override
-       public void dispose() {
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/PropertyTester.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/PropertyTester.java
deleted file mode 100644 (file)
index ea40411..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.internal;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView;
-import org.eclipse.tm.terminal.view.ui.launcher.LauncherDelegateManager;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
-
-
-/**
- * Terminal property tester implementation.
- */
-public class PropertyTester extends org.eclipse.core.expressions.PropertyTester {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
-        */
-       @SuppressWarnings("cast")
-       @Override
-       public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
-
-               if ("hasApplicableLauncherDelegates".equals(property)) { //$NON-NLS-1$
-                       ISelection selection = receiver instanceof ISelection ? (ISelection)receiver : new StructuredSelection(receiver);
-                       return expectedValue.equals(Boolean.valueOf(LauncherDelegateManager.getInstance().getApplicableLauncherDelegates(selection).length > 0));
-               }
-
-               if ("canDisconnect".equals(property) && receiver instanceof ITerminalsView) { //$NON-NLS-1$
-                       CTabItem tabItem = null;
-
-                       TabFolderManager manager = (TabFolderManager) ((ITerminalsView)receiver).getAdapter(TabFolderManager.class);
-                       if (manager != null) {
-                               tabItem = manager.getActiveTabItem();
-                       }
-
-                       if (tabItem != null && !tabItem.isDisposed() && tabItem.getData() instanceof ITerminalViewControl) {
-                   ITerminalViewControl terminal = (ITerminalViewControl)tabItem.getData();
-                   TerminalState state = terminal.getState();
-                   return expectedValue.equals(Boolean.valueOf(state != TerminalState.CLOSED));
-                       }
-                       return false;
-               }
-
-               return false;
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/SettingsStore.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/SettingsStore.java
deleted file mode 100644 (file)
index 3d92a2a..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-
-/**
- * Simple default Terminal settings store implementation keeping the settings
- * within memory.
- */
-public class SettingsStore implements ISettingsStore {
-       private final Map<String, Object> settings = new HashMap<String, Object>();
-
-       /**
-        * Constructor.
-        */
-       public SettingsStore() {
-       }
-
-       /**
-        * Returns the map containing the settings.
-        *
-        * @return The map containing the settings.
-        */
-       public final Map<String, Object> getSettings() {
-               return settings;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore#get(java.lang.String, java.lang.String)
-        */
-       @Override
-       public final String get(String key, String defaultValue) {
-               Assert.isNotNull(key);
-               String value = settings.get(key) instanceof String ? (String) settings.get(key) : null;
-               return value != null ? value : defaultValue;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore#get(java.lang.String)
-        */
-       @Override
-       public final String get(String key) {
-               Assert.isNotNull(key);
-               return settings.get(key) instanceof String ? (String) settings.get(key) : null;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore#put(java.lang.String, java.lang.String)
-        */
-       @Override
-       public final void put(String key, String value) {
-               Assert.isNotNull(key);
-               if (value == null) settings.remove(key);
-               else settings.put(key, value);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/EncodingSelectionDialog.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/EncodingSelectionDialog.java
deleted file mode 100644 (file)
index b129b5a..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.view.ui.internal.dialogs;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tm.terminal.view.ui.help.IContextHelpIds;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Encoding selection dialog implementation.
- */
-public class EncodingSelectionDialog extends TrayDialog {
-       private String contextHelpId = null;
-
-       // The selected encoding or null
-       /* default */ String encoding = null;
-
-       // Reference to the encodings panel
-       private EncodingPanel encodingPanel = null;
-
-       /**
-        * Encodings panel implementation
-        */
-       protected class EncodingPanel extends AbstractExtendedConfigurationPanel {
-
-               /**
-                * Constructor
-                *
-                * @param container The configuration panel container or <code>null</code>.
-                */
-        public EncodingPanel(IConfigurationPanelContainer container) {
-               super(container);
-        }
-
-        /* (non-Javadoc)
-         * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#setupPanel(org.eclipse.swt.widgets.Composite)
-         */
-        @Override
-        public void setupPanel(Composite parent) {
-               Composite panel = new Composite(parent, SWT.NONE);
-               panel.setLayout(new GridLayout());
-               GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
-               panel.setLayoutData(data);
-
-               // Create the encoding selection combo
-               createEncodingUI(panel, false);
-               if (EncodingSelectionDialog.this.encoding != null) {
-                       setEncoding(EncodingSelectionDialog.this.encoding);
-               }
-
-               setControl(panel);
-        }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#saveSettingsForHost(boolean)
-                */
-        @Override
-        protected void saveSettingsForHost(boolean add) {
-        }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#fillSettingsForHost(java.lang.String)
-                */
-        @Override
-        protected void fillSettingsForHost(String host) {
-        }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#getHostFromSettings()
-                */
-        @Override
-        protected String getHostFromSettings() {
-               return null;
-        }
-
-        /* (non-Javadoc)
-         * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#getEncoding()
-         */
-        @Override
-        public String getEncoding() {
-            return super.getEncoding();
-        }
-
-        /* (non-Javadoc)
-         * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#setEncoding(java.lang.String)
-         */
-        @Override
-        public void setEncoding(String encoding) {
-            super.setEncoding(encoding);
-        }
-       }
-
-       /**
-     * Constructor.
-     *
-        * @param shell The parent shell or <code>null</code>.
-     */
-    public EncodingSelectionDialog(Shell shell) {
-           super(shell);
-
-               this.contextHelpId = IContextHelpIds.ENCODING_SELECTION_DIALOG;
-               setHelpAvailable(true);
-    }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-        */
-       @Override
-       protected final Control createDialogArea(Composite parent) {
-               if (contextHelpId != null) {
-                       PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, contextHelpId);
-               }
-
-               // Let the super implementation create the dialog area control
-               Control control = super.createDialogArea(parent);
-               // Setup the inner panel as scrollable composite
-               if (control instanceof Composite) {
-                       ScrolledComposite sc = new ScrolledComposite((Composite)control, SWT.V_SCROLL);
-
-                       GridLayout layout = new GridLayout(1, true);
-                       layout.marginHeight = 0; layout.marginWidth = 0;
-                       layout.verticalSpacing = 0; layout.horizontalSpacing = 0;
-
-                       sc.setLayout(layout);
-                       sc.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
-
-                       sc.setExpandHorizontal(true);
-                       sc.setExpandVertical(true);
-
-                       Composite composite = new Composite(sc, SWT.NONE);
-                       composite.setLayout(new GridLayout());
-
-                       // Setup the dialog area content
-                       createDialogAreaContent(composite);
-
-                       sc.setContent(composite);
-                       sc.setMinSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
-                       // Return the scrolled composite as new dialog area control
-                       control = sc;
-               }
-
-               return control;
-       }
-
-       /**
-        * Creates the dialog area content.
-        *
-        * @param parent The parent composite. Must not be <code>null</code>.
-        */
-    protected void createDialogAreaContent(Composite parent) {
-       Assert.isNotNull(parent);
-
-       setDialogTitle(Messages.EncodingSelectionDialog_title);
-
-        Composite panel = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout(2, false);
-        layout.marginHeight = 0; layout.marginWidth = 0;
-        panel.setLayout(layout);
-        panel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
-
-        encodingPanel = new EncodingPanel(null);
-        encodingPanel.setupPanel(panel);
-
-        applyDialogFont(panel);
-    }
-
-       /**
-        * Sets the title for this dialog.
-        *
-        * @param title The title.
-        */
-       public void setDialogTitle(String title) {
-               if (getShell() != null && !getShell().isDisposed()) {
-                       getShell().setText(title);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-        */
-    @Override
-    protected void okPressed() {
-       // Save the selected encoding
-       if (encodingPanel != null) encoding = encodingPanel.getEncoding();
-        super.okPressed();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#cancelPressed()
-     */
-    @Override
-    protected void cancelPressed() {
-       // Reset the encoding
-       encoding = null;
-        super.cancelPressed();
-    }
-
-    /**
-     * Set the encoding to default to on creating the dialog.
-     */
-    public final void setEncoding(String encoding) {
-       this.encoding = encoding;
-    }
-
-    /**
-     * Returns the selected encoding or <code>null</code>.
-     */
-    public final String getEncoding() {
-       return encoding;
-    }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/LaunchTerminalSettingsDialog.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/LaunchTerminalSettingsDialog.java
deleted file mode 100644 (file)
index af52d93..0000000
+++ /dev/null
@@ -1,647 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2016 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
- * Max Weninger (Wind River) - [361352] [TERMINALS][SSH] Add SSH terminal support
- * Dirk Fauth <dirk.fauth@googlemail.com> - Bug 460496
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.internal.dialogs;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-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.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.controls.ConfigurationPanelControl;
-import org.eclipse.tm.terminal.view.ui.help.IContextHelpIds;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel;
-import org.eclipse.tm.terminal.view.ui.interfaces.IExternalExecutablesProperties;
-import org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate;
-import org.eclipse.tm.terminal.view.ui.interfaces.tracing.ITraceIds;
-import org.eclipse.tm.terminal.view.ui.launcher.LauncherDelegateManager;
-import org.eclipse.tm.terminal.view.ui.local.showin.ExternalExecutablesManager;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Launch terminal settings dialog implementation.
- */
-public class LaunchTerminalSettingsDialog extends TrayDialog {
-       private String contextHelpId = null;
-
-       // The parent selection
-       private ISelection selection = null;
-
-       // The sub controls
-       /* default */ Combo terminals;
-       /* default */ SettingsPanelControl settings;
-
-       // Map the label added to the combo box to the corresponding launcher delegate.
-       /* default */ final Map<String, ILauncherDelegate> label2delegate = new HashMap<String, ILauncherDelegate>();
-
-       // Map the label added to the combo box to the corresponding launcher properties for external executables.
-       /* default */ final Map<String, Map<String, Object>> label2properties = new HashMap<String, Map<String, Object>>();
-
-       // The data object containing the currently selected settings
-       private Map<String, Object> data = null;
-
-       // The dialog settings storage
-       private IDialogSettings dialogSettings;
-
-       // In case of a single available terminal launcher delegate, the label of that delegate
-       private String singleDelegateLabel = null;
-
-       /**
-        * The control managing the terminal setting panels.
-        */
-       protected class SettingsPanelControl extends ConfigurationPanelControl {
-
-               /**
-                * Constructor.
-                */
-        public SettingsPanelControl() {
-               setPanelIsGroup(true);
-        }
-
-        /* (non-Javadoc)
-         * @see org.eclipse.tm.terminal.view.ui.controls.ConfigurationPanelControl#getGroupLabel()
-         */
-        @Override
-        public String getGroupLabel() {
-            return Messages.LaunchTerminalSettingsDialog_group_label;
-        }
-
-        /* (non-Javadoc)
-         * @see org.eclipse.tm.terminal.view.ui.controls.ConfigurationPanelControl#showConfigurationPanel(java.lang.String)
-         */
-        @Override
-        public void showConfigurationPanel(String key) {
-               // Check if we have to create the panel first
-               IConfigurationPanel configPanel = getConfigurationPanel(key);
-               if (isEmptyConfigurationPanel(configPanel)) {
-                       // Get the corresponding delegate
-                       ILauncherDelegate delegate = label2delegate.get(key);
-                       Assert.isNotNull(delegate);
-                       // Create the wizard configuration panel instance
-                       configPanel = delegate.getPanel(this);
-                       if (configPanel != null) {
-                               // Add it to the settings panel control
-                               settings.addConfigurationPanel(key, configPanel);
-                       // Push the selection to the configuration panel
-                       configPanel.setSelection(getSelection());
-                       // Create the panel controls
-                       configPanel.setupPanel(getPanel());
-                       // Restore widget values
-                       IDialogSettings dialogSettings = LaunchTerminalSettingsDialog.this.settings.getDialogSettings(LaunchTerminalSettingsDialog.this.getDialogSettings());
-                       IDialogSettings configPanelSettings = dialogSettings != null ? dialogSettings.getSection(key) : null;
-                       if (configPanelSettings != null) configPanel.doRestoreWidgetValues(configPanelSettings, null);
-                       }
-               }
-
-            super.showConfigurationPanel(key);
-        }
-
-        /* (non-Javadoc)
-         * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer#validate()
-         */
-        @Override
-        public void validate() {
-               LaunchTerminalSettingsDialog.this.validate();
-        }
-       }
-
-       /**
-     * Constructor.
-     *
-        * @param shell The parent shell or <code>null</code>.
-     */
-    public LaunchTerminalSettingsDialog(Shell shell) {
-           this(shell, 0);
-    }
-
-    private long start = 0;
-
-       /**
-     * Constructor.
-     *
-        * @param shell The parent shell or <code>null</code>.
-     */
-    public LaunchTerminalSettingsDialog(Shell shell, long start) {
-           super(shell);
-           this.start = start;
-
-           initializeDialogSettings();
-
-               this.contextHelpId = IContextHelpIds.LAUNCH_TERMINAL_SETTINGS_DIALOG;
-               setHelpAvailable(true);
-    }
-
-    /**
-     * Sets the parent selection.
-     *
-     * @param selection The parent selection or <code>null</code>.
-     */
-    public void setSelection(ISelection selection) {
-       this.selection = selection;
-    }
-
-    /**
-     * Returns the parent selection.
-     *
-     * @return The parent selection or <code>null</code>.
-     */
-    public ISelection getSelection() {
-       return selection;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#close()
-     */
-       @Override
-       public boolean close() {
-               dispose();
-               return super.close();
-       }
-
-    /**
-     * Dispose the dialog resources.
-     */
-    protected void dispose() {
-       if (settings != null) { settings.dispose(); settings = null; }
-       dialogSettings = null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#isResizable()
-     */
-    @Override
-    protected boolean isResizable() {
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#createContents(org.eclipse.swt.widgets.Composite)
-     */
-    @Override
-    protected Control createContents(Composite parent) {
-        Control composite = super.createContents(parent);
-
-        // Validate the dialog after having created all the content
-        validate();
-
-        return composite;
-    }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-        */
-       @Override
-       protected final Control createDialogArea(Composite parent) {
-               if (contextHelpId != null) {
-                       PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, contextHelpId);
-               }
-
-               // Let the super implementation create the dialog area control
-               Control control = super.createDialogArea(parent);
-               // Setup the inner panel as scrollable composite
-               if (control instanceof Composite) {
-                       ScrolledComposite sc = new ScrolledComposite((Composite)control, SWT.V_SCROLL);
-
-                       GridLayout layout = new GridLayout(1, true);
-                       layout.marginHeight = 0; layout.marginWidth = 0;
-                       layout.verticalSpacing = 0; layout.horizontalSpacing = 0;
-
-                       sc.setLayout(layout);
-                       sc.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
-
-                       sc.setExpandHorizontal(true);
-                       sc.setExpandVertical(true);
-
-                       Composite composite = new Composite(sc, SWT.NONE);
-                       composite.setLayout(new GridLayout());
-
-                       // Setup the dialog area content
-                       createDialogAreaContent(composite);
-
-                       sc.setContent(composite);
-                       sc.setMinSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
-                       // Return the scrolled composite as new dialog area control
-                       control = sc;
-               }
-
-               return control;
-       }
-
-       /**
-        * Sets the title for this dialog.
-        *
-        * @param title The title.
-        */
-       public void setDialogTitle(String title) {
-               if (getShell() != null && !getShell().isDisposed()) {
-                       getShell().setText(title);
-               }
-       }
-
-       /**
-        * Creates the dialog area content.
-        *
-        * @param parent The parent composite. Must not be <code>null</code>.
-        */
-    protected void createDialogAreaContent(Composite parent) {
-       Assert.isNotNull(parent);
-
-        if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
-                       UIPlugin.getTraceHandler().trace("Creating dialog area after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
-                                                                                               ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
-               }
-
-       setDialogTitle(Messages.LaunchTerminalSettingsDialog_title);
-
-       final List<String> items = getTerminals();
-
-        Composite panel = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout(2, false);
-        layout.marginHeight = 0; layout.marginWidth = 0;
-        panel.setLayout(layout);
-        panel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
-
-        if (items.size() != 1) {
-               Label label = new Label(panel, SWT.HORIZONTAL);
-               label.setText(Messages.LaunchTerminalSettingsDialog_combo_label);
-
-               terminals = new Combo(panel, SWT.READ_ONLY);
-               terminals.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-               terminals.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               // Get the old panel
-                               IConfigurationPanel oldPanel = settings.getActiveConfigurationPanel();
-                               // Extract the current settings in an special properties container
-                               Map<String, Object> data = new HashMap<String, Object>();
-                               if (oldPanel != null) oldPanel.extractData(data);
-                               // Clean out settings which are never passed between the panels
-                               data.remove(ITerminalsConnectorConstants.PROP_IP_PORT);
-                               data.remove(ITerminalsConnectorConstants.PROP_TIMEOUT);
-                               data.remove(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID);
-                               data.remove(ITerminalsConnectorConstants.PROP_ENCODING);
-                               // Switch to the new panel
-                               settings.showConfigurationPanel(terminals.getText());
-                               // Get the new panel
-                               IConfigurationPanel newPanel = settings.getActiveConfigurationPanel();
-                               // Re-setup the relevant data
-                               if (newPanel != null) newPanel.setupData(data);
-
-                               // resize the dialog if needed to show the complete panel
-                               getShell().pack();
-                               // validate the settings dialog
-                               validate();
-                       }
-               });
-
-            // fill the combo with content
-            fillCombo(terminals, items);
-        } else {
-               Assert.isTrue(items.size() == 1);
-               singleDelegateLabel = items.get(0);
-        }
-
-        // Create the settings panel control
-        settings = new SettingsPanelControl();
-
-               // Create, initialize and add the first visible panel. All
-        // other panels are created on demand only.
-        String terminalLabel = terminals != null ? terminals.getItem(0) : singleDelegateLabel;
-        if (terminalLabel != null) {
-                       // Get the corresponding delegate
-                       ILauncherDelegate delegate = label2delegate.get(terminalLabel);
-                       Assert.isNotNull(delegate);
-                       // Create the wizard configuration panel instance
-                       IConfigurationPanel configPanel = delegate.getPanel(settings);
-                       if (configPanel != null) {
-                               // Add it to the settings panel control
-                       settings.addConfigurationPanel(terminalLabel, configPanel);
-               // Push the selection to the configuration panel
-               configPanel.setSelection(getSelection());
-                       }
-        }
-
-               // Setup the panel control
-               settings.setupPanel(panel, terminals != null ? terminals.getItems() : new String[] { singleDelegateLabel });
-               GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
-               layoutData.horizontalSpan = 2;
-               settings.getPanel().setLayoutData(layoutData);
-
-               // Preselect the first terminal launcher
-               if (terminals != null) {
-                       terminals.select(0);
-                       settings.showConfigurationPanel(terminals.getText());
-
-                       terminals.setEnabled(terminals.getItemCount() > 1);
-               } else {
-                       settings.showConfigurationPanel(singleDelegateLabel);
-               }
-
-               restoreWidgetValues();
-
-        applyDialogFont(panel);
-
-               if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
-                       UIPlugin.getTraceHandler().trace("Created dialog area after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
-                                                                                               ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
-               }
-    }
-
-    /**
-     * Fill the given combo with the given list of terminal launcher delegate labels.
-     *
-     * @param combo The combo. Must not be <code>null</code>.
-     * @param items The list of terminal launcher delegates. Must not be <code>null</code>.
-     */
-    protected void fillCombo(Combo combo, List<String> items) {
-       Assert.isNotNull(combo);
-       Assert.isNotNull(items);
-
-               if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
-                       UIPlugin.getTraceHandler().trace("Filling combo after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
-                                                                                               ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
-               }
-
-       Collections.sort(items);
-       combo.setItems(items.toArray(new String[items.size()]));
-    }
-
-    /**
-     * Returns the list of terminal launcher delegate labels. The method queries the
-     * terminal launcher delegates and initialize the <code>label2delegate</code> map.
-     *
-     * @return The list of terminal launcher delegate labels or an empty list.
-     */
-    protected List<String> getTerminals() {
-       List<String> items = new ArrayList<String>();
-
-       ILauncherDelegate localLauncher = null;
-
-       if(selection==null || selection.isEmpty()){
-               if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
-                       UIPlugin.getTraceHandler().trace("Getting launcher delegates after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
-                                                                                               ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
-               }
-
-                       ILauncherDelegate[] delegates = LauncherDelegateManager.getInstance().getLauncherDelegates(false);
-
-               if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
-                       UIPlugin.getTraceHandler().trace("Got launcher delegates after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
-                                                                                               ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
-               }
-
-               for (ILauncherDelegate delegate : delegates) {
-                       if (delegate.isHidden() || isFiltered(selection, delegate)) continue;
-                       String label = delegate.getLabel();
-                       if (label == null || "".equals(label.trim())) label = delegate.getId(); //$NON-NLS-1$
-                       label2delegate.put(label, delegate);
-                       items.add(label);
-
-                       if ("org.eclipse.tm.terminal.connector.local.launcher.local".equals(delegate.getId())) { //$NON-NLS-1$
-                               localLauncher = delegate;
-                       }
-               }
-       } else {
-               if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
-                       UIPlugin.getTraceHandler().trace("Getting applicable launcher delegates after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
-                                                                                               ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
-               }
-
-               ILauncherDelegate[] delegates = LauncherDelegateManager.getInstance().getApplicableLauncherDelegates(selection);
-
-               if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
-                       UIPlugin.getTraceHandler().trace("Got applicable launcher delegates after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
-                                                                                               ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
-               }
-
-               for (ILauncherDelegate delegate : delegates) {
-                       if (delegate.isHidden() || isFiltered(selection, delegate)) continue;
-                       String label = delegate.getLabel();
-                       if (label == null || "".equals(label.trim())) label = delegate.getId(); //$NON-NLS-1$
-                       label2delegate.put(label, delegate);
-                       items.add(label);
-
-                       if ("org.eclipse.tm.terminal.connector.local.launcher.local".equals(delegate.getId())) { //$NON-NLS-1$
-                               localLauncher = delegate;
-                       }
-               }
-       }
-
-       // if the local launcher was found, check for configured external executables
-       if (localLauncher != null) {
-                       List<Map<String, String>> l = ExternalExecutablesManager.load();
-                       if (l != null && !l.isEmpty()) {
-                               for (Map<String, String> executableData : l) {
-                                       String name = executableData.get(IExternalExecutablesProperties.PROP_NAME);
-                                       String path = executableData.get(IExternalExecutablesProperties.PROP_PATH);
-                                       String args = executableData.get(IExternalExecutablesProperties.PROP_ARGS);
-
-                                       String strTranslate = executableData.get(IExternalExecutablesProperties.PROP_TRANSLATE);
-                                       boolean translate = strTranslate != null ? Boolean.parseBoolean(strTranslate) : false;
-
-                                       if (name != null && !"".equals(name) && path != null && !"".equals(path)) { //$NON-NLS-1$ //$NON-NLS-2$
-                                               ISelectionService service = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService();
-                                               ISelection selection = service != null ? service.getSelection() : null;
-                                               if (selection != null && selection.isEmpty()) selection = null;
-
-                                               Map<String, Object> properties = new HashMap<String, Object>();
-                                       properties.put(ITerminalsConnectorConstants.PROP_PROCESS_PATH, path);
-                                       properties.put(ITerminalsConnectorConstants.PROP_PROCESS_ARGS, args);
-                                       properties.put(ITerminalsConnectorConstants.PROP_TRANSLATE_BACKSLASHES_ON_PASTE, Boolean.valueOf(translate));
-
-                                       // store external executable and properties
-                                       label2delegate.put(name, localLauncher);
-                                       label2properties.put(name, properties);
-                                       items.add(name);
-                                       }
-                               }
-                       }
-
-       }
-
-       return items;
-    }
-
-    /**
-     * Hook to allow additional filtering of the applicable launcher delegates.
-     * <p>
-     * <b>Note:</b> The default implementation always returns <code>false</code>.
-     *
-     * @param selection The selection or <code>null</code>.
-     * @param delegate The launcher delegate. Must not be <code>null</code>.
-     *
-     * @return <code>True</code> if the launcher delegate is filtered based on the given selection, <code>false</code> otherwise.
-     */
-    protected boolean isFiltered(ISelection selection, ILauncherDelegate delegate) {
-       return false;
-    }
-
-    /**
-     * Validate the dialog.
-     */
-    public void validate() {
-       IConfigurationPanel panel = this.settings.getActiveConfigurationPanel();
-       Button okButton = getButton(IDialogConstants.OK_ID);
-       if (okButton != null) okButton.setEnabled(panel.isValid());
-    }
-
-    /**
-     * Set the given message and message type.
-     *
-     * @param message The message or <code>null</code>.
-     * @param messageType The message type or <code>IMessageProvider.NONE</code>.
-     */
-    public void setMessage(String message, int messageType) {
-       if (settings != null) {
-               settings.setMessage(message, messageType);
-       }
-    }
-
-    /**
-     * Save the dialog's widget values.
-     */
-    protected void saveWidgetValues() {
-       IDialogSettings settings = getDialogSettings();
-       if (settings != null && terminals != null) {
-               settings.put("terminalLabel", terminals.getText()); //$NON-NLS-1$
-               this.settings.saveWidgetValues(settings, null);
-       }
-    }
-
-    /**
-     * Restore the dialog's widget values.
-     */
-    protected void restoreWidgetValues() {
-       IDialogSettings settings = getDialogSettings();
-       if (settings != null) {
-               String terminalLabel = settings.get("terminalLabel"); //$NON-NLS-1$
-               int index = terminalLabel != null && terminals != null ? Arrays.asList(terminals.getItems()).indexOf(terminalLabel) : -1;
-               if (index != -1) {
-                       terminals.select(index);
-                       this.settings.showConfigurationPanel(terminals.getText());
-               }
-
-               this.settings.restoreWidgetValues(settings, null);
-       }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-     */
-    @Override
-    protected void okPressed() {
-       IConfigurationPanel panel = this.settings.getActiveConfigurationPanel();
-       Assert.isNotNull(panel);
-
-       if (!panel.isValid()) {
-                       MessageBox mb = new MessageBox(getShell(), SWT.ICON_ERROR | SWT.OK);
-                       mb.setText(Messages.LaunchTerminalSettingsDialog_error_title);
-                       mb.setMessage(NLS.bind(Messages.LaunchTerminalSettingsDialog_error_invalidSettings, panel.getMessage() != null ? panel.getMessage() : Messages.LaunchTerminalSettingsDialog_error_unknownReason));
-                       mb.open();
-                       return;
-       }
-       data = new HashMap<String, Object>();
-
-       // Store the id of the selected delegate
-       String terminalLabel = terminals != null ? terminals.getText() : singleDelegateLabel;
-       String delegateId = terminalLabel != null ? label2delegate.get(terminalLabel).getId() : null;
-       if (delegateId != null) data.put(ITerminalsConnectorConstants.PROP_DELEGATE_ID, delegateId);
-       // Store the selection
-       data.put(ITerminalsConnectorConstants.PROP_SELECTION, selection);
-
-       // Add the properties for external executables if there are any
-       if (label2properties.containsKey(terminalLabel)) {
-               data.putAll(label2properties.get(terminalLabel));
-       }
-
-       // Store the delegate specific settings
-               panel.extractData(data);
-
-               // Save the current widget values
-               saveWidgetValues();
-
-               super.okPressed();
-    }
-
-    /**
-     * Returns the configured terminal launcher settings.
-     * <p>
-     * The settings are extracted from the UI widgets once
-     * OK got pressed.
-     *
-     * @return The configured terminal launcher settings or <code>null</code>.
-     */
-    public Map<String, Object> getSettings() {
-       return data;
-    }
-
-       /**
-        * Initialize the dialog settings storage.
-        */
-       protected void initializeDialogSettings() {
-               IDialogSettings settings = UIPlugin.getDefault().getDialogSettings();
-               Assert.isNotNull(settings);
-               IDialogSettings section = settings.getSection(getClass().getSimpleName());
-               if (section == null) {
-                       section = settings.addNewSection(getClass().getSimpleName());
-               }
-               setDialogSettings(section);
-       }
-
-       /**
-        * Returns the associated dialog settings storage.
-        *
-        * @return The dialog settings storage.
-        */
-       public IDialogSettings getDialogSettings() {
-               // The dialog settings may not been initialized here. Initialize first in this case
-               // to be sure that we do have always the correct dialog settings.
-               if (dialogSettings == null) {
-                       initializeDialogSettings();
-               }
-               return dialogSettings;
-       }
-
-       /**
-        * Sets the associated dialog settings storage.
-        *
-        * @return The dialog settings storage.
-        */
-       public void setDialogSettings(IDialogSettings dialogSettings) {
-               this.dialogSettings = dialogSettings;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/AbstractTriggerCommandHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/AbstractTriggerCommandHandler.java
deleted file mode 100644 (file)
index 07e36f0..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.ui.internal.handler;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-
-/**
- * Abstract command handler triggering a command to be executed.
- */
-public abstract class AbstractTriggerCommandHandler extends AbstractHandler {
-
-       /**
-        * Trigger a command to be executed.
-        *
-        * @param commandId The command id. Must not be <code>null</code>.
-        * @param selection The selection to pass on to the command or <code>null</code>.
-        */
-       @SuppressWarnings("cast")
-       protected void triggerCommand(String commandId, ISelection selection) {
-               Assert.isNotNull(commandId);
-
-               ICommandService service = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class);
-               Command command = service != null ? service.getCommand(commandId) : null;
-               if (command != null && command.isDefined() && command.isEnabled()) {
-                       try {
-                               ParameterizedCommand pCmd = ParameterizedCommand.generateCommand(command, null);
-                               Assert.isNotNull(pCmd);
-                               IHandlerService handlerSvc = (IHandlerService)PlatformUI.getWorkbench().getService(IHandlerService.class);
-                               Assert.isNotNull(handlerSvc);
-                               IEvaluationContext ctx = handlerSvc.getCurrentState();
-                               if (selection != null) {
-                                       ctx = new EvaluationContext(ctx, selection);
-                                       ctx.addVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME, selection);
-                               }
-                               handlerSvc.executeCommandInContext(pCmd, null, ctx);
-                       } catch (Exception e) {
-                               // If the platform is in debug mode, we print the exception to the log view
-                               if (Platform.inDebugMode()) {
-                                       IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(),
-                                                                                               Messages.AbstractTriggerCommandHandler_error_executionFailed, e);
-                                       UIPlugin.getDefault().getLog().log(status);
-                               }
-                       }
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/DisconnectTerminalCommandHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/DisconnectTerminalCommandHandler.java
deleted file mode 100644 (file)
index 142973b..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2015 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.terminal.view.ui.internal.handler;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Disconnect terminal connection command handler implementation.
- */
-public class DisconnectTerminalCommandHandler extends AbstractHandler {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
-       @SuppressWarnings("cast")
-    @Override
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               CTabItem item = null;
-
-               ISelection selection = HandlerUtil.getCurrentSelection(event);
-               if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
-                       Object element = ((IStructuredSelection)selection).getFirstElement();
-                       if (element instanceof CTabItem && ((CTabItem)element).getData() instanceof ITerminalViewControl) {
-                               item = (CTabItem)element;
-                       }
-               }
-
-               if (item == null && HandlerUtil.getActivePart(event) instanceof ITerminalsView) {
-                       ITerminalsView view = (ITerminalsView)HandlerUtil.getActivePart(event);
-                       TabFolderManager mgr = (TabFolderManager)view.getAdapter(TabFolderManager.class);
-                       if (mgr != null && mgr.getActiveTabItem() != null) {
-                               item = mgr.getActiveTabItem();
-                       }
-               }
-
-               if (item != null && item.getData() instanceof ITerminalViewControl) {
-                       ITerminalViewControl terminal = (ITerminalViewControl)item.getData();
-                       if (terminal != null && !terminal.isDisposed()) {
-                               terminal.disconnectTerminal();
-                       }
-               }
-
-               return null;
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/LaunchTerminalCommandHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/LaunchTerminalCommandHandler.java
deleted file mode 100644 (file)
index 46c34b6..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.internal.handler;
-
-import java.text.DateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tm.terminal.view.core.TerminalContextPropertiesProviderFactory;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalContextPropertiesProvider;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.IContextPropertiesConstants;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate;
-import org.eclipse.tm.terminal.view.ui.interfaces.tracing.ITraceIds;
-import org.eclipse.tm.terminal.view.ui.internal.dialogs.LaunchTerminalSettingsDialog;
-import org.eclipse.tm.terminal.view.ui.launcher.LauncherDelegateManager;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Launch terminal command handler implementation.
- */
-public class LaunchTerminalCommandHandler extends AbstractHandler {
-
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
-       @Override
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               String commandId = event.getCommand().getId();
-               // "org.eclipse.tm.terminal.view.ui.command.launchToolbar"
-               // "org.eclipse.tm.terminal.view.ui.command.launch"
-
-               long start = System.currentTimeMillis();
-
-               if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
-                       DateFormat format = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
-                       String date = format.format(new Date(start));
-
-                       UIPlugin.getTraceHandler().trace("Started at " + date + " (" + start + ")", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                                                                                               ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalCommandHandler.this);
-               }
-
-               // Get the active shell
-               Shell shell = HandlerUtil.getActiveShell(event);
-               // Get the current selection
-               ISelection selection = HandlerUtil.getCurrentSelection(event);
-
-               if (commandId.equals("org.eclipse.tm.terminal.view.ui.command.launchToolbar")) { //$NON-NLS-1$
-                       if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
-                               UIPlugin.getTraceHandler().trace("(a) Attempt to open launch terminal settings dialog after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
-                                                                                                       ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalCommandHandler.this);
-                       }
-
-                       LaunchTerminalSettingsDialog dialog = new LaunchTerminalSettingsDialog(shell, start);
-
-                       if(isValidSelection(selection)){
-                               dialog.setSelection(selection);
-                       }
-                       if (dialog.open() == Window.OK) {
-                               // Get the terminal settings from the dialog
-                               Map<String, Object> properties = dialog.getSettings();
-                               if (properties != null) {
-                                       String delegateId = (String)properties.get(ITerminalsConnectorConstants.PROP_DELEGATE_ID);
-                                       Assert.isNotNull(delegateId);
-                                       ILauncherDelegate delegate = LauncherDelegateManager.getInstance().getLauncherDelegate(delegateId, false);
-                                       Assert.isNotNull(delegateId);
-                                       delegate.execute(properties, null);
-                               }
-                       }
-               }
-               else {
-                       if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
-                               UIPlugin.getTraceHandler().trace("Getting applicable launcher delegates after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
-                                                                                                       ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalCommandHandler.this);
-                       }
-
-                       // Check if the dialog needs to be shown at all
-                       ILauncherDelegate[] delegates = LauncherDelegateManager.getInstance().getApplicableLauncherDelegates(selection);
-
-                       if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
-                               UIPlugin.getTraceHandler().trace("Got applicable launcher delegates after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
-                                                                                                       ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalCommandHandler.this);
-                       }
-
-                       if (delegates.length > 1 || (delegates.length == 1 && delegates[0].needsUserConfiguration())) {
-                               if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
-                                       UIPlugin.getTraceHandler().trace("(b) Attempt to open launch terminal settings dialog after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
-                                                                                                               ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalCommandHandler.this);
-                               }
-
-                               // Create the launch terminal settings dialog
-                               LaunchTerminalSettingsDialog dialog = new LaunchTerminalSettingsDialog(shell, start);
-                               if(isValidSelection(selection)){
-                                       dialog.setSelection(selection);
-                               }
-                               if (dialog.open() == Window.OK) {
-                                       // Get the terminal settings from the dialog
-                                       Map<String, Object> properties = dialog.getSettings();
-                                       if (properties != null) {
-                                               String delegateId = (String)properties.get(ITerminalsConnectorConstants.PROP_DELEGATE_ID);
-                                               Assert.isNotNull(delegateId);
-                                               ILauncherDelegate delegate = LauncherDelegateManager.getInstance().getLauncherDelegate(delegateId, false);
-                                               Assert.isNotNull(delegateId);
-                                               delegate.execute(properties, null);
-                                       }
-                               }
-                       }
-                       else if (delegates.length == 1) {
-                               ILauncherDelegate delegate = delegates[0];
-                               Map<String, Object> properties = new HashMap<String, Object>();
-
-                               // Store the id of the selected delegate
-                               properties.put(ITerminalsConnectorConstants.PROP_DELEGATE_ID, delegate.getId());
-                               // Store the selection
-                               properties.put(ITerminalsConnectorConstants.PROP_SELECTION, selection);
-
-                               // Execute
-                               delegate.execute(properties, null);
-                       }
-               }
-
-               return null;
-       }
-
-       private boolean isValidSelection(ISelection selection) {
-               if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
-                       Object element = ((IStructuredSelection) selection).getFirstElement();
-                       ITerminalContextPropertiesProvider provider = TerminalContextPropertiesProviderFactory.getProvider(element);
-                       if (provider != null) {
-                               Map<String, String> props = provider.getTargetAddress(element);
-                               if (props != null && props.containsKey(IContextPropertiesConstants.PROP_ADDRESS)) {
-                                       return true;
-                               }
-                       }
-               }
-
-               return false;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/MaximizeViewHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/MaximizeViewHandler.java
deleted file mode 100644 (file)
index 5803e00..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2015 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.terminal.view.ui.internal.handler;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-
-/**
- * Maximize view handler implementation.
- */
-public class MaximizeViewHandler extends AbstractTriggerCommandHandler {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
-       @Override
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               triggerCommand("org.eclipse.ui.window.maximizePart", null); //$NON-NLS-1$
-               return null;
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/NewTerminalViewHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/NewTerminalViewHandler.java
deleted file mode 100644 (file)
index 7cf9098..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.ui.internal.handler;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.tm.terminal.view.ui.interfaces.IUIConstants;
-import org.eclipse.tm.terminal.view.ui.manager.ConsoleManager;
-
-/**
- * New Terminal View handler implementation
- */
-public class NewTerminalViewHandler extends AbstractTriggerCommandHandler {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
-       @Override
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               String secondaryId = ConsoleManager.getInstance().getNextTerminalSecondaryId(IUIConstants.ID);
-               ConsoleManager.getInstance().showConsoleView(IUIConstants.ID, secondaryId);
-
-               triggerCommand("org.eclipse.tm.terminal.view.ui.command.launchToolbar", null); //$NON-NLS-1$
-
-               return null;
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/QuickAccessHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/handler/QuickAccessHandler.java
deleted file mode 100644 (file)
index ac63da8..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2015 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.terminal.view.ui.internal.handler;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-
-/**
- * Quick access handler implementation.
- */
-public class QuickAccessHandler extends AbstractTriggerCommandHandler {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
-       @Override
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               triggerCommand("org.eclipse.ui.window.quickAccess", null); //$NON-NLS-1$
-               return null;
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/launcher/AbstractLauncherDelegate.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/launcher/AbstractLauncherDelegate.java
deleted file mode 100644 (file)
index 81ed553..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.launcher;
-
-import java.util.Map;
-
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-
-/**
- * Abstract launcher delegate implementation.
- */
-public abstract class AbstractLauncherDelegate extends PlatformObject implements ILauncherDelegate {
-       // The mandatory id of the extension
-       private String id = null;
-       // The label of the extension
-       private String label = null;
-       // The converted expression
-       private Expression expression;
-       // The hidden attribute
-       private boolean hidden;
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object)
-        */
-       @Override
-       public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
-           if (config == null) return;
-
-               // Initialize the id field by reading the <id> extension attribute.
-               // Throws an exception if the id is empty or null.
-               id = config.getAttribute("id"); //$NON-NLS-1$
-               if (id == null || "".equals(id.trim())) { //$NON-NLS-1$
-                       throw createMissingMandatoryAttributeException("id", config.getContributor().getName()); //$NON-NLS-1$
-               }
-
-               // Try the "label" attribute first
-               label = config.getAttribute("label"); //$NON-NLS-1$
-               // If "label" is not found or empty, try the "name" attribute as fallback
-               if (label == null || "".equals(label.trim())) { //$NON-NLS-1$
-                       label = config.getAttribute("name"); //$NON-NLS-1$
-               }
-
-               // Read the sub elements of the extension
-               IConfigurationElement[] children = config.getChildren();
-               // The "enablement" element is the only expected one
-               if (children != null && children.length > 0) {
-                       expression = ExpressionConverter.getDefault().perform(children[0]);
-               }
-
-               // Read "hidden" attribute
-               String value = config.getAttribute("hidden"); //$NON-NLS-1$
-               if (value != null && !"".equals(value.trim())) { //$NON-NLS-1$
-                       hidden = Boolean.parseBoolean(value);
-               }
-       }
-
-       /**
-        * Creates a new {@link CoreException} to be thrown if a mandatory extension attribute
-        * is missing.
-        *
-        * @param attributeName The attribute name. Must not be <code>null</code>.
-        * @param extensionId The extension id. Must not be <code>null</code>.
-        *
-        * @return The {@link CoreException} instance.
-        */
-       protected CoreException createMissingMandatoryAttributeException(String attributeName, String extensionId) {
-               Assert.isNotNull(attributeName);
-               Assert.isNotNull(extensionId);
-
-               return new CoreException(new Status(IStatus.ERROR,
-                               UIPlugin.getUniqueIdentifier(),
-                               0,
-                               NLS.bind(Messages.Extension_error_missingRequiredAttribute, attributeName, extensionId),
-                               null));
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#getId()
-        */
-       @Override
-       public String getId() {
-               return id;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#getLabel()
-        */
-       @Override
-       public String getLabel() {
-               return label != null ? label.trim() : ""; //$NON-NLS-1$
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#getEnablement()
-        */
-       @Override
-    public Expression getEnablement() {
-               return expression;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#isHidden()
-        */
-       @Override
-       public boolean isHidden() {
-           return hidden;
-       }
-
-       /* (non-Javadoc)
-        * @see java.lang.Object#equals(java.lang.Object)
-        */
-       @Override
-       public boolean equals(Object obj) {
-               if (obj instanceof AbstractLauncherDelegate) {
-                       return id.equals(((AbstractLauncherDelegate)obj).id);
-               }
-           return super.equals(obj);
-       }
-
-       /* (non-Javadoc)
-        * @see java.lang.Object#hashCode()
-        */
-       @Override
-       public int hashCode() {
-           return id.hashCode();
-       }
-
-       /**
-        * Get the title from the settings, and use it as the default title.
-        *
-        * @param properties the setting properties map.
-        * @return the value retrieved via the @see {@link ITerminalsConnectorConstants#PROP_TITLE}, or null if the key hasn't been set.
-        *
-        * @since 4.1
-        */
-       protected String getDefaultTerminalTitle(Map<String, Object> properties) {
-               String title = (String)properties.get(ITerminalsConnectorConstants.PROP_TITLE);
-               return title != null ? title : null;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/launcher/LauncherDelegateManager.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/launcher/LauncherDelegateManager.java
deleted file mode 100644 (file)
index 2428eef..0000000
+++ /dev/null
@@ -1,422 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 - 2015 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.terminal.view.ui.launcher;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.handlers.IHandlerService;
-
-/**
- * Terminal launcher delegate manager implementation.
- */
-public class LauncherDelegateManager {
-       // Flag to mark the extension point manager initialized (extensions loaded).
-       private boolean initialized = false;
-
-       // The map containing all loaded contributions
-       private final Map<String, Proxy> extensionsMap = new HashMap<String, Proxy>();
-
-       // The extension point comparator
-       private ExtensionPointComparator comparator = null;
-
-       /**
-        * Executable extension proxy implementation.
-        */
-       /* default */ static class Proxy {
-               // The extension instance. Created on first access
-               private ILauncherDelegate instance;
-               // The configuration element
-               private final IConfigurationElement element;
-               // The unique id of the extension.
-               private String id;
-
-               /**
-                * Constructor.
-                *
-                * @param element The configuration element. Must not be <code>null</code>.
-                * @throws CoreException In case the configuration element attribute <i>id</i> is <code>null</code> or empty.
-                */
-               public Proxy(IConfigurationElement element) throws CoreException {
-                       Assert.isNotNull(element);
-                       this.element = element;
-
-                       // Extract the extension attributes
-                       id = element.getAttribute("id"); //$NON-NLS-1$
-                       if (id == null || id.trim().length() == 0) {
-                               throw new CoreException(new Status(IStatus.ERROR,
-                                               UIPlugin.getUniqueIdentifier(),
-                                               0,
-                                               NLS.bind(Messages.Extension_error_missingRequiredAttribute, "id", element.getContributor().getName()), //$NON-NLS-1$
-                                               null));
-                       }
-
-                       instance = null;
-               }
-
-               /**
-                * Returns the extensions unique id.
-                *
-                * @return The unique id.
-                */
-               public String getId() {
-                       return id;
-               }
-
-               /**
-                * Returns the configuration element for this extension.
-                *
-                * @return The configuration element.
-                */
-               public IConfigurationElement getConfigurationElement() {
-                       return element;
-               }
-
-               /**
-                * Returns the extension class instance. The contributing
-                * plug-in will be activated if not yet activated anyway.
-                *
-                * @return The extension class instance or <code>null</code> if the instantiation fails.
-                */
-               public ILauncherDelegate getInstance() {
-                       if (instance == null) instance = newInstance();
-                       return instance;
-               }
-
-               /**
-                * Returns always a new extension class instance which is different
-                * to what {@link #getInstance()} would return.
-                *
-                * @return A new extension class instance or <code>null</code> if the instantiation fails.
-                */
-           public ILauncherDelegate newInstance() {
-                       IConfigurationElement element = getConfigurationElement();
-                       Assert.isNotNull(element);
-
-                       // The "class" to load can be specified either as attribute or as child element
-                       if (element.getAttribute("class") != null || element.getChildren("class").length > 0) { //$NON-NLS-1$ //$NON-NLS-2$
-                               try {
-                                       return (ILauncherDelegate)element.createExecutableExtension("class"); //$NON-NLS-1$
-                               } catch (Exception e) {
-                                       // Possible exceptions: CoreException, ClassCastException.
-                                       Platform.getLog(UIPlugin.getDefault().getBundle()).log(new Status(IStatus.ERROR,
-                                                                       UIPlugin.getUniqueIdentifier(),
-                                                                       NLS.bind(Messages.Extension_error_invalidExtensionPoint, element.getDeclaringExtension().getUniqueIdentifier()), e));
-                               }
-                       }
-                       return null;
-               }
-
-               /* (non-Javadoc)
-                * @see java.lang.Object#equals(java.lang.Object)
-                */
-               @Override
-               public boolean equals(Object obj) {
-                       // Proxies are equal if they have encapsulate an element
-                       // with the same unique id
-                       if (obj instanceof Proxy) {
-                               return getId().equals(((Proxy)obj).getId());
-                       }
-                       return super.equals(obj);
-               }
-
-               /* (non-Javadoc)
-                * @see java.lang.Object#hashCode()
-                */
-               @Override
-               public int hashCode() {
-                       // The hash code of a proxy is the one from the id
-                       return getId().hashCode();
-               }
-       }
-
-       /**
-        * Extension point comparator implementation.
-        * <p>
-        * The comparator assure that extension are read in a predictable order.
-        * <p>
-        * The order of the extensions is defined as following:<br>
-        * <ul><li>Extensions contributed by our own plug-ins (<code>org.eclipse.tm.terminal.*</code>)
-        *         in ascending alphabetic order and</li>
-        *     <li>Extensions contributed by any other plug-in in ascending alphabetic order.</li>
-        *     <li>Extensions contributed by the same plug-in in ascending alphabetic order by the
-        *         extensions unique id</li>
-        */
-       /* default */ static class ExtensionPointComparator implements Comparator<IExtension> {
-               private final static String OWN_PLUGINS_PATTERN = "org.eclipse.tm.terminal."; //$NON-NLS-1$
-
-               /* (non-Javadoc)
-                * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-                */
-               @Override
-           public int compare(IExtension o1, IExtension o2) {
-                       // We ignore any comparisation with null and
-                       if (o1 == null || o2 == null) return 0;
-                       // Check if it is the exact same element
-                       if (o1 == o2) return 0;
-
-                       // The extensions are compared by the unique id of the contributing plug-in first
-                       String contributor1 = o1.getContributor().getName();
-                       String contributor2 = o2.getContributor().getName();
-
-                       // Contributions from our own plug-ins comes before 3rdParty plug-ins
-                       if (contributor1.startsWith(OWN_PLUGINS_PATTERN) && !contributor2.startsWith(OWN_PLUGINS_PATTERN))
-                               return -1;
-                       if (!contributor1.startsWith(OWN_PLUGINS_PATTERN) && contributor2.startsWith(OWN_PLUGINS_PATTERN))
-                               return 1;
-                       if (contributor1.startsWith(OWN_PLUGINS_PATTERN) && contributor2.startsWith(OWN_PLUGINS_PATTERN)) {
-                               int value = contributor1.compareTo(contributor2);
-                               // Within the same plug-in, the extension are sorted by their unique id (if available)
-                               if (value == 0 && o1.getUniqueIdentifier() != null && o2.getUniqueIdentifier() != null)
-                                       return o1.getUniqueIdentifier().compareTo(o2.getUniqueIdentifier());
-                               // Otherwise, just return the comparisation result from the contributors
-                               return value;
-                       }
-
-                       // Contributions from all other plug-ins are sorted alphabetical
-                       int value = contributor1.compareTo(contributor2);
-                       // Within the same plug-in, the extension are sorted by their unique id (if available)
-                       if (value == 0 && o1.getUniqueIdentifier() != null && o2.getUniqueIdentifier() != null)
-                               return o1.getUniqueIdentifier().compareTo(o2.getUniqueIdentifier());
-                       // Otherwise, just return the comparisation result from the contributors
-                       return value;
-               }
-
-       }
-
-       /*
-        * Thread save singleton instance creation.
-        */
-       private static class LazyInstanceHolder {
-               public static LauncherDelegateManager instance = new LauncherDelegateManager();
-       }
-
-       /**
-        * Returns the singleton instance.
-        */
-       public static LauncherDelegateManager getInstance() {
-               return LazyInstanceHolder.instance;
-       }
-
-       /**
-        * Constructor.
-        */
-       LauncherDelegateManager() {
-               super();
-       }
-
-       /**
-        * Returns the list of all contributed terminal launcher delegates.
-        *
-        * @param unique If <code>true</code>, the method returns new instances for each
-        *               contributed terminal launcher delegate.
-        *
-        * @return The list of contributed terminal launcher delegates, or an empty array.
-        */
-       public ILauncherDelegate[] getLauncherDelegates(boolean unique) {
-               List<ILauncherDelegate> contributions = new ArrayList<ILauncherDelegate>();
-               for (Proxy launcherDelegate : getExtensions().values()) {
-                       ILauncherDelegate instance = unique ? launcherDelegate.newInstance() : launcherDelegate.getInstance();
-                       if (instance != null && !contributions.contains(instance)) {
-                               contributions.add(instance);
-                       }
-               }
-
-               return contributions.toArray(new ILauncherDelegate[contributions.size()]);
-       }
-
-       /**
-        * Returns the terminal launcher delegate identified by its unique id. If no terminal
-        * launcher delegate with the specified id is registered, <code>null</code> is returned.
-        *
-        * @param id The unique id of the terminal launcher delegate or <code>null</code>
-        * @param unique If <code>true</code>, the method returns new instances of the terminal launcher delegate contribution.
-        *
-        * @return The terminal launcher delegate instance or <code>null</code>.
-        */
-       public ILauncherDelegate getLauncherDelegate(String id, boolean unique) {
-               ILauncherDelegate contribution = null;
-               Map<String, Proxy> extensions = getExtensions();
-               if (extensions.containsKey(id)) {
-                       Proxy proxy = extensions.get(id);
-                       // Get the extension instance
-                       contribution = unique ? proxy.newInstance() : proxy.getInstance();
-               }
-
-               return contribution;
-       }
-
-       /**
-        * Returns the applicable terminal launcher delegates for the given selection.
-        *
-        * @param selection The selection or <code>null</code>.
-        * @return The list of applicable terminal launcher delegates or an empty array.
-        */
-       @SuppressWarnings("cast")
-       public ILauncherDelegate[] getApplicableLauncherDelegates(ISelection selection) {
-               List<ILauncherDelegate> applicable = new ArrayList<ILauncherDelegate>();
-
-               for (ILauncherDelegate delegate : getLauncherDelegates(false)) {
-                       Expression enablement = delegate.getEnablement();
-
-                       // The launcher delegate is applicable by default if
-                       // no expression is specified.
-                       boolean isApplicable = enablement == null;
-
-                       if (enablement != null) {
-                               if (selection != null) {
-                                       // Set the default variable to selection.
-                                       IEvaluationContext currentState = ((IHandlerService)PlatformUI.getWorkbench().getService(IHandlerService.class)).getCurrentState();
-                                       EvaluationContext context = new EvaluationContext(currentState, selection);
-                                       // Set the "selection" variable to the selection.
-                                       context.addVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME, selection);
-                                       // Allow plug-in activation
-                                       context.setAllowPluginActivation(true);
-                                       // Evaluate the expression
-                                       try {
-                                               isApplicable = enablement.evaluate(context).equals(EvaluationResult.TRUE);
-                                       } catch (CoreException e) {
-                                               IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(), e.getLocalizedMessage(), e);
-                                               UIPlugin.getDefault().getLog().log(status);
-                                       }
-                               } else {
-                                       // The enablement is false by definition if
-                                       // there is no selection.
-                                       isApplicable = false;
-                               }
-                       }
-
-                       // Add the page if applicable
-                       if (isApplicable) applicable.add(delegate);
-               }
-
-               return applicable.toArray(new ILauncherDelegate[applicable.size()]);
-       }
-
-       /**
-        * Returns the map of managed extensions. If not loaded before,
-        * this methods trigger the loading of the extensions to the managed
-        * extension point.
-        *
-        * @return The map of extensions.
-        */
-       protected Map<String, Proxy> getExtensions() {
-               // Load and store the extensions thread-safe!
-               synchronized (extensionsMap) {
-                       if (!initialized) { loadExtensions(); initialized = true; }
-               }
-               return extensionsMap;
-       }
-
-       /**
-        * Returns the extension point comparator instance. If not available,
-        * {@link #doCreateExtensionPointComparator()} is called to create a new instance.
-        *
-        * @return The extension point comparator or <code>null</code> if the instance creation fails.
-        */
-       protected final ExtensionPointComparator getExtensionPointComparator() {
-               if (comparator == null) {
-                       comparator = new ExtensionPointComparator();
-               }
-               return comparator;
-       }
-
-       /**
-        * Returns the extensions of the specified extension point sorted.
-        * <p>
-        * For the order of the extensions, see {@link ExtensionPointComparator}.
-        *
-        * @param point The extension point. Must not be <code>null</code>.
-        * @return The extensions in sorted order or an empty array if the extension point has no extensions.
-        */
-       protected IExtension[] getExtensionsSorted(IExtensionPoint point) {
-               Assert.isNotNull(point);
-
-               List<IExtension> extensions = new ArrayList<IExtension>(Arrays.asList(point.getExtensions()));
-               if (extensions.size() > 0) {
-                       Collections.sort(extensions, getExtensionPointComparator());
-               }
-
-               return extensions.toArray(new IExtension[extensions.size()]);
-       }
-
-       /**
-        * Loads the extensions for the managed extension point.
-        */
-       protected void loadExtensions() {
-               // If already initialized, this method will do nothing.
-               if (initialized)  return;
-
-               IExtensionRegistry registry = Platform.getExtensionRegistry();
-               IExtensionPoint point = registry.getExtensionPoint("org.eclipse.tm.terminal.view.ui.launcherDelegates"); //$NON-NLS-1$
-               if (point != null) {
-                       IExtension[] extensions = getExtensionsSorted(point);
-                       for (IExtension extension : extensions) {
-                               IConfigurationElement[] elements = extension.getConfigurationElements();
-                               for (IConfigurationElement element : elements) {
-                                       if ("delegate".equals(element.getName())) { //$NON-NLS-1$
-                                               try {
-                                                       Proxy candidate = new Proxy(element);
-                                                       if (candidate.getId() != null) {
-                                                               // If no extension with this id had been registered before, register now.
-                                                               if (!extensionsMap.containsKey(candidate.getId())) {
-                                                                       extensionsMap.put(candidate.getId(), candidate);
-                                                               }
-                                                               else {
-                                                                       throw new CoreException(new Status(IStatus.ERROR,
-                                                                                       UIPlugin.getUniqueIdentifier(),
-                                                                                       0,
-                                                                                       NLS.bind(Messages.Extension_error_duplicateExtension, candidate.getId(), element.getContributor().getName()),
-                                                                                       null));
-                                                               }
-                                                       } else {
-                                                               throw new CoreException(new Status(IStatus.ERROR,
-                                                                               UIPlugin.getUniqueIdentifier(),
-                                                                               0,
-                                                                               NLS.bind(Messages.Extension_error_missingRequiredAttribute, "id", element.getAttribute("label")), //$NON-NLS-1$ //$NON-NLS-2$
-                                                                               null));
-                                                       }
-                                               } catch (CoreException e) {
-                                                       Platform.getLog(UIPlugin.getDefault().getBundle()).log(new Status(IStatus.ERROR,
-                                                                                       UIPlugin.getUniqueIdentifier(),
-                                                                                       NLS.bind(Messages.Extension_error_invalidExtensionPoint, element.getDeclaringExtension().getUniqueIdentifier()), e));
-                                               }
-                                       }
-                               }
-                       }
-               }
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/listeners/AbstractWindowListener.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/listeners/AbstractWindowListener.java
deleted file mode 100644 (file)
index 04f1047..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013, 2015 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.terminal.view.ui.listeners;
-
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IPartService;
-import org.eclipse.ui.IPerspectiveListener;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.IWorkbenchWindow;
-
-/**
- * Abstract window listener implementation.
- */
-public abstract class AbstractWindowListener implements IWindowListener {
-       // The part listener instance
-       protected final IPartListener2 partListener;
-       // The perspective listener instance
-       protected final IPerspectiveListener perspectiveListener;
-
-       // Flag to remember if the initialization is done or not
-       private boolean initialized = false;
-
-       /**
-     * Constructor
-     */
-    public AbstractWindowListener() {
-       // Create the part listener instance
-       partListener = createPartListener();
-       // Create the perspective listener instance
-       perspectiveListener = createPerspectiveListener();
-    }
-
-    /**
-     * Creates a new part listener instance.
-     * <p>
-     * <b>Note:</b> The default implementation returns <code>null</code>.
-     *
-     * @return The part listener instance or <code>null</code>.
-     */
-    protected IPartListener2 createPartListener() {
-       return null;
-    }
-
-    /**
-     * Creates a new perspective listener instance.
-     * <p>
-     * <b>Note:</b> The default implementation returns <code>null</code>.
-     *
-     * @return The perspective listener instance or <code>null</code>.
-     */
-    protected IPerspectiveListener createPerspectiveListener() {
-       return null;
-    }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IWindowListener#windowActivated(org.eclipse.ui.IWorkbenchWindow)
-        */
-       @Override
-       public void windowActivated(IWorkbenchWindow window) {
-               if (!initialized && window != null) {
-                       windowOpened(window);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IWindowListener#windowDeactivated(org.eclipse.ui.IWorkbenchWindow)
-        */
-       @Override
-       public void windowDeactivated(IWorkbenchWindow window) {
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IWindowListener#windowClosed(org.eclipse.ui.IWorkbenchWindow)
-        */
-       @Override
-       public void windowClosed(IWorkbenchWindow window) {
-               // On close, remove the listeners from the window
-               if (window != null) {
-                       if (window.getPartService() != null && partListener != null) {
-                               window.getPartService().removePartListener(partListener);
-                       }
-
-                       if (perspectiveListener != null) window.removePerspectiveListener(perspectiveListener);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IWindowListener#windowOpened(org.eclipse.ui.IWorkbenchWindow)
-        */
-       @Override
-       public void windowOpened(IWorkbenchWindow window) {
-               if (window != null) {
-                       // On open, register the part listener to the window
-                       if (window.getPartService() != null && partListener != null) {
-                               // Get the part service
-                               IPartService service = window.getPartService();
-                               // Unregister the part listener, just in case
-                               service.removePartListener(partListener);
-                               // Register the part listener
-                               service.addPartListener(partListener);
-                               // Signal the active part to the part listener after registration
-                               IWorkbenchPage page = window.getActivePage();
-                               if (page != null) {
-                                       IWorkbenchPartReference partRef = page.getActivePartReference();
-                                       if (partRef != null) partListener.partActivated(partRef);
-                               }
-                       }
-
-                       // Register the perspective listener
-                       if (perspectiveListener != null) {
-                               window.addPerspectiveListener(perspectiveListener);
-                               // Signal the active perspective to the perspective listener after registration
-                               if (window.getActivePage() != null) {
-                                       perspectiveListener.perspectiveActivated(window.getActivePage(), window.getActivePage().getPerspective());
-                               }
-                       }
-
-                       initialized = true;
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/listeners/WorkbenchPartListener.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/listeners/WorkbenchPartListener.java
deleted file mode 100644 (file)
index c93dc3d..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.listeners;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.eclipse.ui.contexts.IContextService;
-
-/**
- * The part listener implementation. Takes care of
- * activation and deactivation of key binding contexts.
- */
-public class WorkbenchPartListener implements IPartListener2 {
-
-       // The context activations per workbench part reference
-       private final Map<IWorkbenchPartReference, IContextActivation> activations = new HashMap<IWorkbenchPartReference, IContextActivation>();
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPartListener2#partBroughtToTop(org.eclipse.ui.IWorkbenchPartReference)
-        */
-       @Override
-       public void partBroughtToTop(IWorkbenchPartReference partRef) {
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPartListener2#partOpened(org.eclipse.ui.IWorkbenchPartReference)
-        */
-       @Override
-       public void partOpened(IWorkbenchPartReference partRef) {
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPartListener2#partClosed(org.eclipse.ui.IWorkbenchPartReference)
-        */
-       @Override
-       public void partClosed(IWorkbenchPartReference partRef) {
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPartListener2#partVisible(org.eclipse.ui.IWorkbenchPartReference)
-        */
-       @Override
-       public void partVisible(IWorkbenchPartReference partRef) {
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPartListener2#partHidden(org.eclipse.ui.IWorkbenchPartReference)
-        */
-       @Override
-       public void partHidden(IWorkbenchPartReference partRef) {
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPartListener2#partActivated(org.eclipse.ui.IWorkbenchPartReference)
-        */
-       @SuppressWarnings("cast")
-       @Override
-       public void partActivated(IWorkbenchPartReference partRef) {
-               if ("org.eclipse.tm.terminal.view.ui.TerminalsView".equals(partRef.getId())) { //$NON-NLS-1$
-                       IWorkbenchPart part = partRef.getPart(false);
-                       if (part != null && part.getSite() != null) {
-                               IContextService service = (IContextService)part.getSite().getService(IContextService.class);
-                               if (service != null) {
-                                       IContextActivation activation = service.activateContext(partRef.getId());
-                                       if (activation != null) {
-                                               activations.put(partRef, activation);
-                                       } else {
-                                               activations.remove(partRef);
-                                       }
-                               }
-                       }
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPartListener2#partDeactivated(org.eclipse.ui.IWorkbenchPartReference)
-        */
-       @SuppressWarnings("cast")
-       @Override
-       public void partDeactivated(IWorkbenchPartReference partRef) {
-               if ("org.eclipse.tm.terminal.view.ui.TerminalsView".equals(partRef.getId())) { //$NON-NLS-1$
-                       IWorkbenchPart part = partRef.getPart(false);
-                       if (part != null && part.getSite() != null) {
-                               IContextService service = (IContextService)part.getSite().getService(IContextService.class);
-                               if (service != null) {
-                                       IContextActivation activation = activations.remove(partRef);
-                                       if (activation != null) {
-                                               service.deactivateContext(activation);
-                                       }
-                               }
-                       }
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPartListener2#partInputChanged(org.eclipse.ui.IWorkbenchPartReference)
-        */
-       @Override
-       public void partInputChanged(IWorkbenchPartReference partRef) {
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/listeners/WorkbenchWindowListener.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/listeners/WorkbenchWindowListener.java
deleted file mode 100644 (file)
index 31735ee..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2015 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.terminal.view.ui.listeners;
-
-import org.eclipse.ui.IPartListener2;
-
-/**
- * The window listener implementation. Takes care of the
- * management of the global listeners per workbench window.
- */
-public class WorkbenchWindowListener extends AbstractWindowListener {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.listeners.AbstractWindowListener#createPartListener()
-        */
-       @Override
-       protected IPartListener2 createPartListener() {
-       return new WorkbenchPartListener();
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/local/showin/DynamicContributionItems.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/local/showin/DynamicContributionItems.java
deleted file mode 100644 (file)
index 9e96f83..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2016 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.terminal.view.ui.local.showin;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IExternalExecutablesProperties;
-import org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate;
-import org.eclipse.tm.terminal.view.ui.launcher.LauncherDelegateManager;
-import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CompoundContributionItem;
-import org.eclipse.ui.menus.IWorkbenchContribution;
-import org.eclipse.ui.services.IServiceLocator;
-
-/**
- * Dynamic "Show In" contribution items implementation.
- */
-public class DynamicContributionItems extends CompoundContributionItem implements IWorkbenchContribution {
-       // Service locator to located the handler service.
-       protected IServiceLocator serviceLocator;
-       // Reference to the local terminal launcher delegate
-       /* default */ ILauncherDelegate delegate;
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.menus.IWorkbenchContribution#initialize(org.eclipse.ui.services.IServiceLocator)
-        */
-       @Override
-       public void initialize(IServiceLocator serviceLocator) {
-               this.serviceLocator = serviceLocator;
-
-               // Get the local terminal launcher delegate
-               delegate = LauncherDelegateManager.getInstance().getLauncherDelegate("org.eclipse.tm.terminal.connector.local.launcher.local", false); //$NON-NLS-1$
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
-        */
-       @Override
-       protected IContributionItem[] getContributionItems() {
-               List<IContributionItem> items = new ArrayList<IContributionItem>();
-
-               if (delegate != null) {
-                       List<Map<String, String>> l = ExternalExecutablesManager.load();
-                       if (l != null && !l.isEmpty()) {
-                               for (Map<String, String> executableData : l) {
-                                       String name = executableData.get(IExternalExecutablesProperties.PROP_NAME);
-                                       String path = executableData.get(IExternalExecutablesProperties.PROP_PATH);
-                                       String args = executableData.get(IExternalExecutablesProperties.PROP_ARGS);
-                                       String icon = executableData.get(IExternalExecutablesProperties.PROP_ICON);
-
-                                       String strTranslate = executableData.get(IExternalExecutablesProperties.PROP_TRANSLATE);
-                                       boolean translate = strTranslate != null ? Boolean.parseBoolean(strTranslate) : false;
-
-                                       if (name != null && !"".equals(name) && path != null && !"".equals(path)) { //$NON-NLS-1$ //$NON-NLS-2$
-                                               IAction action = createAction(name, path, args, translate);
-
-                                               ImageData id = icon != null ? ExternalExecutablesManager.loadImage(icon) : null;
-                                               if (id != null) {
-                                                       ImageDescriptor desc = ImageDescriptor.createFromImageData(id);
-                                                       if (desc != null) action.setImageDescriptor(desc);
-                                               }
-
-                                               IContributionItem item = new ActionContributionItem(action);
-                                               items.add(item);
-                                       }
-                               }
-                       }
-               }
-
-               return items.toArray(new IContributionItem[items.size()]);
-       }
-
-       /**
-        * Creates the action to execute.
-        *
-        * @param label The label. Must not be <code>null</code>.
-        * @param path The executable path. Must not be <code>null</code>.
-        * @param args The executable arguments or <code>null</code>.
-        * @param translate Translate backslashes.
-        *
-        * @return The action to execute.
-        */
-       protected IAction createAction(final String label, final String path, final String args, final boolean translate) {
-               Assert.isNotNull(label);
-               Assert.isNotNull(path);
-
-               IAction action = new Action(label) {
-                       @Override
-                       public void run() {
-                               Assert.isNotNull(delegate);
-
-                               ISelectionService service = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService();
-                               ISelection selection = service != null ? service.getSelection() : null;
-                               if (selection != null && selection.isEmpty()) selection = null;
-
-                               Map<String, Object> properties = new HashMap<String, Object>();
-                               properties.put(ITerminalsConnectorConstants.PROP_DELEGATE_ID, delegate.getId());
-                       if (selection != null) properties.put(ITerminalsConnectorConstants.PROP_SELECTION, selection);
-                       properties.put(ITerminalsConnectorConstants.PROP_PROCESS_PATH, path);
-                       if (args != null) properties.put(ITerminalsConnectorConstants.PROP_PROCESS_ARGS, args);
-                       properties.put(ITerminalsConnectorConstants.PROP_TRANSLATE_BACKSLASHES_ON_PASTE, Boolean.valueOf(translate));
-
-                       delegate.execute(properties, null);
-                       }
-               };
-
-               return action;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/local/showin/ExternalExecutablesDialog.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/local/showin/ExternalExecutablesDialog.java
deleted file mode 100644 (file)
index 41a629e..0000000
+++ /dev/null
@@ -1,460 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2016 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.terminal.view.ui.local.showin;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-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.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.tm.terminal.view.ui.help.IContextHelpIds;
-import org.eclipse.tm.terminal.view.ui.interfaces.IExternalExecutablesProperties;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.PlatformUI;
-import org.osgi.framework.Bundle;
-
-/**
- * External executables dialog implementation.
- */
-public class ExternalExecutablesDialog extends TrayDialog {
-       private String contextHelpId = null;
-       private final boolean edit;
-
-       private Text name;
-       /* default */ Text path;
-       private Text args;
-       /* default */ Text icon;
-       private Button translate;
-
-       /* default */ String last_filter_path = null;
-       /* default */ String last_filter_icon = null;
-
-       private Map<String, String> executableData;
-
-       /**
-     * Constructor.
-     *
-        * @param shell The parent shell or <code>null</code>.
-     */
-       public ExternalExecutablesDialog(Shell shell, boolean edit) {
-           super(shell);
-           this.edit = edit;
-
-               this.contextHelpId = IContextHelpIds.EXTERNAL_EXECUTABLES_DIALOG;
-               setHelpAvailable(true);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-        */
-       @Override
-       protected final Control createDialogArea(Composite parent) {
-               if (contextHelpId != null) {
-                       PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, contextHelpId);
-               }
-
-               // Let the super implementation create the dialog area control
-               Control control = super.createDialogArea(parent);
-               // Setup the inner panel as scrollable composite
-               if (control instanceof Composite) {
-                       ScrolledComposite sc = new ScrolledComposite((Composite)control, SWT.V_SCROLL);
-
-                       GridLayout layout = new GridLayout(1, true);
-                       layout.marginHeight = 0; layout.marginWidth = 0;
-                       layout.verticalSpacing = 0; layout.horizontalSpacing = 0;
-
-                       sc.setLayout(layout);
-                       sc.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
-
-                       sc.setExpandHorizontal(true);
-                       sc.setExpandVertical(true);
-
-                       Composite composite = new Composite(sc, SWT.NONE);
-                       composite.setLayout(new GridLayout());
-
-                       // Setup the dialog area content
-                       createDialogAreaContent(composite);
-
-                       sc.setContent(composite);
-                       sc.setMinSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
-                       // Return the scrolled composite as new dialog area control
-                       control = sc;
-               }
-
-               return control;
-       }
-
-       /**
-        * Creates the dialog area content.
-        *
-        * @param parent The parent composite. Must not be <code>null</code>.
-        */
-    protected void createDialogAreaContent(Composite parent) {
-       Assert.isNotNull(parent);
-
-           setDialogTitle(edit ? Messages.ExternalExecutablesDialog_title_edit : Messages.ExternalExecutablesDialog_title_add);
-
-        Composite panel = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout(2, false);
-        layout.marginHeight = 0; layout.marginWidth = 0;
-        panel.setLayout(layout);
-        GridData layoutData = new GridData(SWT.FILL, SWT.CENTER, true, true);
-        layoutData.widthHint = convertWidthInCharsToPixels(50);
-        panel.setLayoutData(layoutData);
-
-        Label label = new Label(panel, SWT.HORIZONTAL);
-        label.setText(Messages.ExternalExecutablesDialog_field_name);
-        layoutData = new GridData(SWT.BEGINNING, SWT.CENTER, false, false);
-        label.setLayoutData(layoutData);
-
-        name = new Text(panel, SWT.HORIZONTAL | SWT.SINGLE | SWT.BORDER);
-        layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-        layoutData.widthHint = convertWidthInCharsToPixels(30);
-        name.setLayoutData(layoutData);
-        name.addModifyListener(new ModifyListener() {
-               @Override
-               public void modifyText(ModifyEvent e) {
-                       validate();
-               }
-        });
-
-        label = new Label(panel, SWT.HORIZONTAL);
-        label.setText(Messages.ExternalExecutablesDialog_field_path);
-        layoutData = new GridData(SWT.BEGINNING, SWT.CENTER, false, false);
-        label.setLayoutData(layoutData);
-
-        Composite panel2 = new Composite(panel, SWT.NONE);
-        layout = new GridLayout(2, false);
-        layout.marginHeight = 0; layout.marginWidth = 0;
-        panel2.setLayout(layout);
-        layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-        panel2.setLayoutData(layoutData);
-
-        path = new Text(panel2, SWT.HORIZONTAL | SWT.SINGLE | SWT.BORDER);
-        layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-        layoutData.widthHint = convertWidthInCharsToPixels(30);
-        path.setLayoutData(layoutData);
-        path.addModifyListener(new ModifyListener() {
-               @Override
-               public void modifyText(ModifyEvent e) {
-                       validate();
-               }
-        });
-
-        Button button = new Button(panel2, SWT.PUSH);
-        button.setText(Messages.ExternalExecutablesDialog_button_browse);
-        layoutData = new GridData(SWT.BEGINNING, SWT.CENTER, false, false);
-        layoutData.widthHint = convertWidthInCharsToPixels(10);
-        button.setLayoutData(layoutData);
-        button.addSelectionListener(new SelectionAdapter() {
-               @Override
-               public void widgetSelected(SelectionEvent e) {
-                       FileDialog dialog = new FileDialog(getShell(), SWT.OPEN);
-
-                       String selectedFile = path.getText();
-                       if (selectedFile != null && selectedFile.trim().length() > 0) {
-                               IPath filePath = new Path(selectedFile);
-                               // If the selected file points to an directory, use the directory as is
-                               IPath filterPath = filePath.toFile().isDirectory() ? filePath : filePath.removeLastSegments(1);
-                               while (filterPath != null && filterPath.segmentCount() > 1 && !filterPath.toFile().exists()) {
-                                       filterPath = filterPath.removeLastSegments(1);
-                               }
-                               String filterFileName = filePath.toFile().isDirectory() || !filePath.toFile().exists() ? null : filePath.lastSegment();
-
-                               if (filterPath != null && !filterPath.isEmpty()) dialog.setFilterPath(filterPath.toString());
-                               if (filterFileName != null) dialog.setFileName(filterFileName);
-                       } else {
-                               String workspace = null;
-                               Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
-                               if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
-                                       workspace = org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString();
-                               }
-
-                               String filterPath = last_filter_path != null ? last_filter_path : workspace;
-                               dialog.setFilterPath(filterPath);
-                       }
-
-                       selectedFile = dialog.open();
-                       if (selectedFile != null) {
-                               last_filter_path = dialog.getFilterPath();
-                               path.setText(selectedFile);
-                       }
-               }
-               });
-
-        label = new Label(panel, SWT.HORIZONTAL);
-        label.setText(Messages.ExternalExecutablesDialog_field_args);
-        layoutData = new GridData(SWT.BEGINNING, SWT.CENTER, false, false);
-        label.setLayoutData(layoutData);
-
-        args = new Text(panel, SWT.HORIZONTAL | SWT.SINGLE | SWT.BORDER);
-        layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-        layoutData.widthHint = convertWidthInCharsToPixels(30);
-        args.setLayoutData(layoutData);
-        args.addModifyListener(new ModifyListener() {
-               @Override
-               public void modifyText(ModifyEvent e) {
-                       validate();
-               }
-        });
-
-        label = new Label(panel, SWT.HORIZONTAL);
-        label.setText(Messages.ExternalExecutablesDialog_field_icon);
-        layoutData = new GridData(SWT.BEGINNING, SWT.CENTER, false, false);
-        label.setLayoutData(layoutData);
-
-        panel2 = new Composite(panel, SWT.NONE);
-        layout = new GridLayout(2, false);
-        layout.marginHeight = 0; layout.marginWidth = 0;
-        panel2.setLayout(layout);
-        layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-        panel2.setLayoutData(layoutData);
-
-        icon = new Text(panel2, SWT.HORIZONTAL | SWT.SINGLE | SWT.BORDER);
-        layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-        layoutData.widthHint = convertWidthInCharsToPixels(30);
-        icon.setLayoutData(layoutData);
-        icon.addModifyListener(new ModifyListener() {
-               @Override
-               public void modifyText(ModifyEvent e) {
-                       validate();
-               }
-        });
-
-        button = new Button(panel2, SWT.PUSH);
-        button.setText(Messages.ExternalExecutablesDialog_button_browse);
-        layoutData = new GridData(SWT.BEGINNING, SWT.CENTER, false, false);
-        layoutData.widthHint = convertWidthInCharsToPixels(10);
-        button.setLayoutData(layoutData);
-        button.addSelectionListener(new SelectionAdapter() {
-               @Override
-               public void widgetSelected(SelectionEvent e) {
-                       FileDialog dialog = new FileDialog(getShell(), SWT.OPEN);
-
-                       String selectedFile = icon.getText();
-                       if (selectedFile != null && selectedFile.trim().length() > 0) {
-                               IPath filePath = new Path(selectedFile);
-                               // If the selected file points to an directory, use the directory as is
-                               IPath filterPath = filePath.toFile().isDirectory() ? filePath : filePath.removeLastSegments(1);
-                               while (filterPath != null && filterPath.segmentCount() > 1 && !filterPath.toFile().exists()) {
-                                       filterPath = filterPath.removeLastSegments(1);
-                               }
-                               String filterFileName = filePath.toFile().isDirectory() || !filePath.toFile().exists() ? null : filePath.lastSegment();
-
-                               if (filterPath != null && !filterPath.isEmpty()) dialog.setFilterPath(filterPath.toString());
-                               if (filterFileName != null) dialog.setFileName(filterFileName);
-                       } else {
-                               String workspace = null;
-                               Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
-                               if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
-                                       workspace = org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString();
-                               }
-
-                               String filterPath = last_filter_icon != null ? last_filter_icon : workspace;
-                               dialog.setFilterPath(filterPath);
-                       }
-
-                       selectedFile = dialog.open();
-                       if (selectedFile != null) {
-                               last_filter_icon = dialog.getFilterPath();
-                               icon.setText(selectedFile);
-                       }
-               }
-               });
-
-        translate = new Button(panel, SWT.CHECK);
-        translate.setText(Messages.ExternalExecutablesDialog_field_translate);
-        layoutData = new GridData(SWT.FILL, SWT.TOP, true, false);
-        layoutData.horizontalSpan = 2;
-        translate.setLayoutData(layoutData);
-        translate.addSelectionListener(new SelectionAdapter() {
-               @Override
-               public void widgetSelected(SelectionEvent e) {
-                       validate();
-               }
-               });
-
-        if (executableData != null) {
-               String value = executableData.get(IExternalExecutablesProperties.PROP_NAME);
-               name.setText(value != null && !"".equals(value.trim()) ? value : ""); //$NON-NLS-1$ //$NON-NLS-2$
-               value = executableData.get(IExternalExecutablesProperties.PROP_PATH);
-               path.setText(value != null && !"".equals(value.trim()) ? value : ""); //$NON-NLS-1$ //$NON-NLS-2$
-               value = executableData.get(IExternalExecutablesProperties.PROP_ARGS);
-               args.setText(value != null && !"".equals(value.trim()) ? value : ""); //$NON-NLS-1$ //$NON-NLS-2$
-               value = executableData.get(IExternalExecutablesProperties.PROP_ICON);
-               icon.setText(value != null && !"".equals(value.trim()) ? value : ""); //$NON-NLS-1$ //$NON-NLS-2$
-               value = executableData.get(IExternalExecutablesProperties.PROP_TRANSLATE);
-               translate.setSelection(value != null ? Boolean.parseBoolean(value) : false);
-        }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.TrayDialog#createButtonBar(org.eclipse.swt.widgets.Composite)
-        */
-       @Override
-       protected Control createButtonBar(Composite parent) {
-           Control control = super.createButtonBar(parent);
-           validate();
-           return control;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.Dialog#createButton(org.eclipse.swt.widgets.Composite, int, java.lang.String, boolean)
-        */
-       @Override
-       protected Button createButton(Composite parent, int id, String label, boolean defaultButton) {
-               if (IDialogConstants.OK_ID == id && !edit) {
-                       label = Messages.ExternalExecutablesDialog_button_add;
-               }
-           return super.createButton(parent, id, label, defaultButton);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-        */
-       @Override
-       protected void okPressed() {
-               if (name != null && path != null) {
-                       // Extract the executable properties
-                       if (executableData == null) executableData = new HashMap<String, String>();
-
-                       String value = name.getText();
-                       if (value != null && !"".equals(value.trim())) { //$NON-NLS-1$
-                               executableData.put(IExternalExecutablesProperties.PROP_NAME, value);
-                       } else {
-                               executableData.remove(IExternalExecutablesProperties.PROP_NAME);
-                       }
-
-                       value = path.getText();
-                       if (value != null && !"".equals(value.trim())) { //$NON-NLS-1$
-                               executableData.put(IExternalExecutablesProperties.PROP_PATH, value);
-                       } else {
-                               executableData.remove(IExternalExecutablesProperties.PROP_PATH);
-                       }
-
-                       value = args.getText();
-                       if (value != null && !"".equals(value.trim())) { //$NON-NLS-1$
-                               executableData.put(IExternalExecutablesProperties.PROP_ARGS, value);
-                       } else {
-                               executableData.remove(IExternalExecutablesProperties.PROP_ARGS);
-                       }
-
-                       value = icon.getText();
-                       if (value != null && !"".equals(value.trim())) { //$NON-NLS-1$
-                               executableData.put(IExternalExecutablesProperties.PROP_ICON, value);
-                       } else {
-                               executableData.remove(IExternalExecutablesProperties.PROP_ICON);
-                       }
-
-                       if (translate.getSelection()) {
-                               executableData.put(IExternalExecutablesProperties.PROP_TRANSLATE, Boolean.TRUE.toString());
-                       } else {
-                               executableData.remove(IExternalExecutablesProperties.PROP_TRANSLATE);
-                       }
-               } else {
-                       executableData = null;
-               }
-           super.okPressed();
-       }
-
-       @Override
-       protected void cancelPressed() {
-               // If the user pressed cancel, the dialog needs to return null
-               executableData = null;
-           super.cancelPressed();
-       }
-
-       /**
-        * Returns the executable properties the user entered.
-        *
-        * @return The executable properties or <code>null</code>.
-        */
-       public Map<String, String> getExecutableData() {
-               return executableData;
-       }
-
-       /**
-        * Set or reset the executable properties. This method has effect
-        * only if called before opening the dialog.
-        *
-        * @param data The executable properties or <code>null</code>.
-        */
-       public void setExecutableData(Map<String, String> data) {
-               if (data == null) {
-                       executableData = null;
-               } else {
-                       executableData = new HashMap<String, String>(data);
-               }
-       }
-
-       /**
-        * Validate the dialog.
-        */
-       public void validate() {
-               boolean valid = true;
-
-               if (name != null && !name.isDisposed()) {
-                       valid = !"".equals(name.getText()); //$NON-NLS-1$
-               }
-
-               if (path != null && !path.isDisposed()) {
-                       String value = path.getText();
-                       if (!"".equals(value)) { //$NON-NLS-1$
-                               File f = new File(value);
-                               valid |= f.isAbsolute() && f.canRead();
-                       } else {
-                               valid = false;
-                       }
-               }
-
-               if (icon != null && !icon.isDisposed()) {
-                       String value = icon.getText();
-                       if (!"".equals(value)) { //$NON-NLS-1$
-                               File f = new File(value);
-                               valid |= f.isAbsolute() && f.canRead();
-                       }
-               }
-
-               Button okButton = getButton(IDialogConstants.OK_ID);
-               if (okButton != null) okButton.setEnabled(valid);
-       }
-
-       /**
-        * Sets the title for this dialog.
-        *
-        * @param title The title.
-        */
-       public void setDialogTitle(String title) {
-               if (getShell() != null && !getShell().isDisposed()) {
-                       getShell().setText(title);
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/local/showin/ExternalExecutablesManager.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/local/showin/ExternalExecutablesManager.java
deleted file mode 100644 (file)
index b8debd3..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2016 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
- * Dirk Fauth <dirk.fauth@googlemail.com> - Bug 460496
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.local.showin;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.ImageLoader;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.IExternalExecutablesProperties;
-import org.eclipse.tm.terminal.view.ui.internal.ExternalExecutablesState;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.services.ISourceProviderService;
-
-/**
- * External executables manager implementation.
- */
-public class ExternalExecutablesManager {
-       // Flag to indicate if we have searched for git bash already
-       private static boolean gitBashSearchDone = false;
-
-       /**
-        * Loads the list of all saved external executables.
-        *
-        * @return The list of all saved external executables or <code>null</code>.
-        */
-       public static List<Map<String, String>> load() {
-               List<Map<String, String>> l = new ArrayList<Map<String, String>>();
-
-               IPath stateLocation = UIPlugin.getDefault().getStateLocation();
-               if (stateLocation != null) {
-                       File f = stateLocation.append(".executables/data.properties").toFile(); //$NON-NLS-1$
-                       if (f.canRead()) {
-                               FileReader r = null;
-
-                               try {
-                                       Properties data = new Properties();
-                                       r= new FileReader(f);
-                                       data.load(r);
-
-                                       Map<Integer, Map<String, String>> c = new HashMap<Integer, Map<String, String>>();
-                                       for (String name : data.stringPropertyNames()) {
-                                               if (name == null || name.indexOf('.') == -1) continue;
-                                               int ix = name.indexOf('.');
-                                               String n = name.substring(0, ix);
-                                               String k = (ix + 1) < name.length() ? name.substring(ix + 1) : null;
-                                               if (n == null || k == null) continue;
-
-                                               Integer i = null;
-                                               try { i = Integer.decode(n); } catch (NumberFormatException e) { /* ignored on purpose */ }
-                                               if (i == null) continue;
-
-                                               Map<String, String> m = c.get(i);
-                                               if (m == null) {
-                                                       m = new HashMap<String, String>();
-                                                       c.put(i, m);
-                                               }
-                                               Assert.isNotNull(m);
-
-                                               m.put(k, data.getProperty(name));
-                                       }
-
-                                       List<Integer> k = new ArrayList<Integer>(c.keySet());
-                                       Collections.sort(k);
-                                       for (Integer i : k) {
-                                               Map<String, String> m = c.get(i);
-                                               if (m != null && !m.isEmpty()) l.add(m);
-                                       }
-                               } catch (Exception e) {
-                                       if (Platform.inDebugMode()) {
-                                               e.printStackTrace();
-                                       }
-                               } finally {
-                                       if (r != null) try { r.close(); } catch (IOException e) { /* ignored on purpose */ }
-                               }
-                       }
-               }
-
-               // Lookup git bash (Windows Hosts only)
-               if (!gitBashSearchDone && Platform.OS_WIN32.equals(Platform.getOS())) {
-                       // Check the existing entries first
-                       // Find a entry labeled "Git Bash"
-                       Map<String, String> m = null;
-                       for (Map<String, String> candidate : l) {
-                               String name = candidate.get(IExternalExecutablesProperties.PROP_NAME);
-                               if ("Git Bash".equals(name)) { //$NON-NLS-1$
-                                       m = candidate;
-                                       break;
-                               }
-                       }
-
-                       // If not found in the existing entries, check the path
-                       if (m == null) {
-                               String gitPath = null;
-                               String iconPath = null;
-
-                               String path = System.getenv("PATH"); //$NON-NLS-1$
-                               if (path != null) {
-                                       StringTokenizer tokenizer = new StringTokenizer(path, ";"); //$NON-NLS-1$
-                                       while (tokenizer.hasMoreTokens()) {
-                                               String token = tokenizer.nextToken();
-                                               File f = new File(token, "git.exe"); //$NON-NLS-1$
-                                               if (f.canRead()) {
-                                                       File f2 = new File(f.getParentFile().getParentFile(), "bin/sh.exe"); //$NON-NLS-1$
-                                                       if (f2.canExecute()) {
-                                                               gitPath = f2.getAbsolutePath();
-                                                       }
-
-                                                       iconPath = getGitIconPath(f.getParentFile().getParentFile());
-
-                                                       break;
-                                               }
-                                       }
-                               }
-
-                               // if it is not found in the PATH, check the default install locations
-                               if (gitPath == null) {
-                                       File f = new File("C:/Program Files (x86)/Git/bin/sh.exe"); //$NON-NLS-1$
-                                       if (!f.exists()) {
-                                               f = new File("C:/Program Files/Git/bin/sh.exe"); //$NON-NLS-1$
-                                       }
-
-                                       if (f.exists() && f.canExecute()) {
-                                               gitPath = f.getAbsolutePath();
-                                               iconPath = getGitIconPath(f.getParentFile().getParentFile());
-                                       }
-                               }
-
-                               if (gitPath != null) {
-                                       m = new HashMap<String, String>();
-                                       m.put(IExternalExecutablesProperties.PROP_NAME, "Git Bash"); //$NON-NLS-1$
-                                       m.put(IExternalExecutablesProperties.PROP_PATH, gitPath);
-                                       m.put(IExternalExecutablesProperties.PROP_ARGS, "--login -i"); //$NON-NLS-1$
-                                       if (iconPath != null) m.put(IExternalExecutablesProperties.PROP_ICON, iconPath);
-                                       m.put(IExternalExecutablesProperties.PROP_TRANSLATE, Boolean.TRUE.toString());
-
-                                       l.add(m);
-                                       save(l);
-                               }
-                       }
-
-                       // Do not search again for git bash while the session is running
-                       gitBashSearchDone = true;
-               }
-
-               return l;
-       }
-
-       private static String getGitIconPath(File parent) {
-               File f = new File(parent, "etc/git.ico"); //$NON-NLS-1$
-               if (f.canRead()) {
-                       return f.getAbsolutePath();
-               }
-
-               // check for icon in newer versions of Git for Windows 32 bit
-               f = new File(parent, "mingw32/share/git/git-for-windows.ico"); //$NON-NLS-1$
-               if (f.canRead()) {
-                       return f.getAbsolutePath();
-               }
-
-               // check for icon in newer versions of Git for Windows 64 bit
-               f = new File(parent, "mingw64/share/git/git-for-windows.ico"); //$NON-NLS-1$
-               if (f.canRead()) {
-                       return f.getAbsolutePath();
-               }
-
-               return null;
-       }
-
-       /**
-        * Saves the list of external executables.
-        *
-        * @param l The list of external executables or <code>null</code>.
-        */
-       @SuppressWarnings("cast")
-    public static void save(List<Map<String, String>> l) {
-               ISourceProviderService sourceProviderService = (ISourceProviderService) PlatformUI.getWorkbench().getService(ISourceProviderService.class);
-               ExternalExecutablesState stateService = (ExternalExecutablesState) sourceProviderService.getSourceProvider(ExternalExecutablesState.CONFIGURED_STATE);
-
-               IPath stateLocation = UIPlugin.getDefault().getStateLocation();
-               if (stateLocation != null) {
-                       File f = stateLocation.append(".executables/data.properties").toFile(); //$NON-NLS-1$
-                       if (f.isFile() && (l == null || l.isEmpty())) {
-                               @SuppressWarnings("unused")
-                boolean s = f.delete();
-
-                               if (stateService != null) stateService.disable();
-                       } else {
-                               FileWriter w = null;
-
-                               try {
-                                       Properties data = new Properties();
-                                       for (int i = 0; i < l.size(); i++) {
-                                               Map<String, String> m = l.get(i);
-                                               for (Entry<String, String> e : m.entrySet()) {
-                                                       String key = Integer.toString(i) + "." + e.getKey(); //$NON-NLS-1$
-                                                       data.setProperty(key, e.getValue());
-                                               }
-                                       }
-
-                                       if (!f.exists()) {
-                                               @SuppressWarnings("unused")
-                                               boolean s = f.getParentFile().mkdirs();
-                                               s = f.createNewFile();
-                                       }
-                                       w = new FileWriter(f);
-                                       data.store(w, null);
-
-                                       if (stateService != null) stateService.enable();
-                               } catch (Exception e) {
-                                       if (Platform.inDebugMode()) {
-                                               e.printStackTrace();
-                                       }
-                               } finally {
-                                       if (w != null) {
-                                               try {
-                                                       w.flush();
-                                                       w.close();
-                                               } catch (IOException e) {
-                                                       /* ignored on purpose */
-                                               }
-                                       }
-                               }
-                       }
-               }
-       }
-
-       /**
-        * Loads the image data suitable for showing an icon in a menu
-        * (16 x 16, 8bit depth) from the given file.
-        *
-        * @param path The image file path. Must not be <code>null</code>.
-        * @return The image data or <code>null</code>.
-        */
-       public static ImageData loadImage(String path) {
-               Assert.isNotNull(path);
-
-               ImageData id = null;
-               ImageData biggest = null;
-
-               ImageLoader loader = new ImageLoader();
-               ImageData[] data = loader.load(path);
-
-               if (data != null) {
-                       for (ImageData d : data) {
-                               if (d.height == 16 && d.width == 16) {
-                                       if (id == null || id.height != 16 && id.width != 16) {
-                                               id = d;
-                                       } else if (d.depth < id.depth && d.depth >= 8){
-                                               id = d;
-                                       }
-                               } else {
-                                       if (id == null) {
-                                               id = d;
-                                               biggest = d;
-                                       } else if (id.height != 16 && d.height < id.height && id.width != 16 && d.width < id.width) {
-                                               id = d;
-                                       } else if (biggest == null || d.height > biggest.height && d.width > biggest.width) {
-                                               biggest = d;
-                                       }
-                               }
-                       }
-               }
-
-               // if the icon is still to big -> downscale the biggest
-               if (id != null && id.height > 16 && id.width > 16) {
-                       id = biggest.scaledTo(16, 16);
-               }
-
-               return id;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/manager/ConsoleManager.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/manager/ConsoleManager.java
deleted file mode 100644 (file)
index bc277ef..0000000
+++ /dev/null
@@ -1,646 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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
- * Max Weninger (Wind River) - [361363] [TERMINALS] Implement "Pin&Clone" for the "Terminals" view
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.manager;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.IPreferenceKeys;
-import org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView;
-import org.eclipse.tm.terminal.view.ui.interfaces.IUIConstants;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
-import org.eclipse.tm.terminal.view.ui.view.TerminalsView;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IPartService;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveListener;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PerspectiveAdapter;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Terminal console manager.
- */
-public class ConsoleManager {
-
-       // Constant to indicate any secondary id is acceptable
-       private final static String ANY_SECONDARY_ID = new String("*"); //$NON-NLS-1$
-
-       // Reference to the perspective listener instance
-       private final IPerspectiveListener perspectiveListener;
-
-       // Internal perspective listener implementation
-       static class ConsoleManagerPerspectiveListener extends PerspectiveAdapter {
-               private final List<IViewReference> references = new ArrayList<IViewReference>();
-
-               /* (non-Javadoc)
-                * @see org.eclipse.ui.PerspectiveAdapter#perspectiveActivated(org.eclipse.ui.IWorkbenchPage, org.eclipse.ui.IPerspectiveDescriptor)
-                */
-               @Override
-               public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
-                       // If the old references list is empty, just return
-                       if (references.isEmpty()) return;
-                       // Create a copy of the old view references list
-                       List<IViewReference> oldReferences = new ArrayList<IViewReference>(references);
-
-                       // Get the current list of view references
-                       List<IViewReference> references = new ArrayList<IViewReference>(Arrays.asList(page.getViewReferences()));
-                       for (IViewReference reference : oldReferences) {
-                               if (references.contains(reference)) continue;
-                               // Previous visible terminals console view reference, make visible again
-                               try {
-                                       page.showView(reference.getId(), reference.getSecondaryId(), IWorkbenchPage.VIEW_VISIBLE);
-                               } catch (PartInitException e) { /* Failure on part instantiation is ignored */ }
-                       }
-
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.ui.PerspectiveAdapter#perspectivePreDeactivate(org.eclipse.ui.IWorkbenchPage, org.eclipse.ui.IPerspectiveDescriptor)
-                */
-               @Override
-               public void perspectivePreDeactivate(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
-                       references.clear();
-                       for (IViewReference reference : page.getViewReferences()) {
-                               IViewPart part = reference.getView(false);
-                               if (part instanceof TerminalsView && !references.contains(reference)) {
-                                       references.add(reference);
-                               }
-                       }
-               }
-       }
-
-       // Reference to the part listener instance
-       private final IPartListener2 partListener;
-
-       // The ids of the last activated terminals view
-       /* default */ String lastActiveViewId = null;
-       /* default */ String lastActiveSecondaryViewId = null;
-
-       // Internal part listener implementation
-       class ConsoleManagerPartListener implements IPartListener2 {
-
-               @Override
-        public void partActivated(IWorkbenchPartReference partRef) {
-                       IWorkbenchPart part = partRef.getPart(false);
-                       if (part instanceof ITerminalsView) {
-                               lastActiveViewId = ((ITerminalsView)part).getViewSite().getId();
-                               lastActiveSecondaryViewId = ((ITerminalsView)part).getViewSite().getSecondaryId();
-                               //System.out.println("Terminals view activated: id = " + lastActiveViewId + ", secondary id = " + lastActiveSecondaryViewId); //$NON-NLS-1$ //$NON-NLS-2$
-                       }
-        }
-
-               @Override
-        public void partBroughtToTop(IWorkbenchPartReference partRef) {
-        }
-
-               @Override
-        public void partClosed(IWorkbenchPartReference partRef) {
-        }
-
-               @Override
-        public void partDeactivated(IWorkbenchPartReference partRef) {
-        }
-
-               @Override
-        public void partOpened(IWorkbenchPartReference partRef) {
-        }
-
-               @Override
-        public void partHidden(IWorkbenchPartReference partRef) {
-        }
-
-               @Override
-        public void partVisible(IWorkbenchPartReference partRef) {
-        }
-
-               @Override
-        public void partInputChanged(IWorkbenchPartReference partRef) {
-        }
-       }
-
-       /*
-        * Thread save singleton instance creation.
-        */
-       private static class LazyInstanceHolder {
-               public static ConsoleManager fInstance = new ConsoleManager();
-       }
-
-       /**
-        * Returns the singleton instance for the console manager.
-        */
-       public static ConsoleManager getInstance() {
-               return LazyInstanceHolder.fInstance;
-       }
-
-       /**
-        * Constructor.
-        */
-       ConsoleManager() {
-               super();
-
-               perspectiveListener = new ConsoleManagerPerspectiveListener();
-               partListener = new ConsoleManagerPartListener();
-
-               if (PlatformUI.isWorkbenchRunning() && PlatformUI.getWorkbench() != null && PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null) {
-                       PlatformUI.getWorkbench().getActiveWorkbenchWindow().addPerspectiveListener(perspectiveListener);
-
-                       IPartService service = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService();
-                       service.addPartListener(partListener);
-               }
-       }
-
-       /**
-        * Returns the active workbench window page if the workbench is still running.
-        *
-        * @return The active workbench window page or <code>null</code>
-        */
-       private final IWorkbenchPage getActiveWorkbenchPage() {
-               // To lookup the console view, the workbench must be still running
-               if (PlatformUI.isWorkbenchRunning() && PlatformUI.getWorkbench() != null && PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null) {
-                       return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-               }
-               return null;
-       }
-
-       /**
-        * Returns the console view if available within the active workbench window page.
-        * <p>
-        * <b>Note:</b> The method must be called within the UI thread.
-        *
-        * @param id The terminals console view id or <code>null</code> to show the default terminals console view.
-        * @param secondaryId The terminals console view secondary id or <code>null</code>.
-        *
-        * @return The console view instance if available or <code>null</code> otherwise.
-        */
-       public ITerminalsView findConsoleView(String id, String secondaryId) {
-               Assert.isNotNull(Display.findDisplay(Thread.currentThread()));
-
-               ITerminalsView view = null;
-
-               // Get the active workbench page
-               IWorkbenchPage page = getActiveWorkbenchPage();
-               if (page != null) {
-                       // Look for the view
-                       IViewPart part = getTerminalsViewWithSecondaryId(id != null ? id : IUIConstants.ID, secondaryId, true);
-                       // Check the interface
-                       if (part instanceof ITerminalsView) {
-                               view = (ITerminalsView)part;
-                       }
-               }
-
-               return view;
-       }
-
-       /**
-        * Search and return a terminal view with a specific secondary id
-        *
-        * @param id The terminals console view id. Must not be <code>null</code>.
-        * @param secondaryId The terminals console view secondary id or <code>null</code>.
-        * @param restore <code>True</code> if to try to restore the view, <code>false</code> otherwise.
-        *
-        * @return The terminals console view instance or <code>null</code> if not found.
-        */
-       private IViewPart getTerminalsViewWithSecondaryId(String id, String secondaryId, boolean restore) {
-               Assert.isNotNull(id);
-
-               IWorkbenchPage page = getActiveWorkbenchPage();
-
-               IViewReference[] refs = page.getViewReferences();
-               for (int i = 0; i < refs.length; i++) {
-                       IViewReference ref = refs[i];
-                       if (ref.getId().equals(id)) {
-                               if (ANY_SECONDARY_ID.equals(secondaryId)
-                                                               || secondaryId == null && ref.getSecondaryId() == null
-                                                               || secondaryId != null && secondaryId.equals(ref.getSecondaryId())) {
-                                       return ref.getView(restore);
-                               }
-                       }
-               }
-               return null;
-       }
-
-       /**
-        * Search and return the active terminals view.
-        *
-        * @param id The terminals console view id. Must not be <code>null</code>.
-        * @param secondaryId The terminals console view secondary id or <code>null</code>.
-        * @return The terminals console view instance or <code>null</code> if not found.
-        */
-       private IViewPart getActiveTerminalsView(String id, String secondaryId) {
-               Assert.isNotNull(id);
-
-               IViewPart part = null;
-
-               if (id.equals(lastActiveViewId)) {
-                       if (secondaryId == null || ANY_SECONDARY_ID.equals(secondaryId) || secondaryId.equals(lastActiveSecondaryViewId)) {
-                               part = getTerminalsViewWithSecondaryId(lastActiveViewId, lastActiveSecondaryViewId, false);
-                       }
-               }
-
-               if (part == null) {
-                       part = getTerminalsViewWithSecondaryId(id, secondaryId, true);
-                       if (part != null) {
-                               lastActiveViewId = part.getViewSite().getId();
-                               lastActiveSecondaryViewId = part.getViewSite().getSecondaryId();
-                       }
-               }
-
-               return part;
-       }
-
-       /**
-        * Return a new secondary id to use, based on the number of open terminal views.
-        *
-        * @param id The terminals console view id. Must not be <code>null</code>.
-        * @return The next secondary id, or <code>null</code> if it is the first one
-        * @since 4.1
-        */
-       public String getNextTerminalSecondaryId(String id) {
-               Assert.isNotNull(id);
-
-               IWorkbenchPage page = getActiveWorkbenchPage();
-               Map<String, IViewReference> terminalViews = new HashMap<String, IViewReference>();
-
-               int maxNumber = 0;
-               IViewReference[] refs = page.getViewReferences();
-               for (int i = 0; i < refs.length; i++) {
-                       IViewReference ref = refs[i];
-                       if (ref.getId().equals(id)) {
-                               if (ref.getSecondaryId() != null) {
-                                       terminalViews.put(ref.getSecondaryId(), ref);
-                                       int scondaryIdInt = Integer.parseInt(ref.getSecondaryId());
-                                       if (scondaryIdInt > maxNumber) {
-                                               maxNumber = scondaryIdInt;
-                                       }
-                               }
-                               else {
-                                       // add the one with secondaryId == null with 0 by default
-                                       terminalViews.put(Integer.toString(0), ref);
-                               }
-                       }
-               }
-               if (terminalViews.size() == 0) {
-                       return null;
-               }
-
-               int i = 0;
-               for (; i < maxNumber; i++) {
-                       String secondaryIdStr = Integer.toString(i);
-                       if (!terminalViews.keySet().contains(secondaryIdStr)) {
-                               // found a free slot
-                               if (i == 0)
-                                       return null;
-                               return Integer.toString(i);
-                       }
-               }
-               // add a new one
-               return Integer.toString(i + 1);
-       }
-
-       /**
-        * Show the terminals console view specified by the given id.
-        * <p>
-        * <b>Note:</b> The method must be called within the UI thread.
-        *
-        * @param id The terminals console view id or <code>null</code> to show the default terminals console view.
-        */
-       public IViewPart showConsoleView(String id, String secondaryId) {
-               Assert.isNotNull(Display.findDisplay(Thread.currentThread()));
-
-               // Get the active workbench page
-               IWorkbenchPage page = getActiveWorkbenchPage();
-               if (page != null) {
-                       try {
-                               // show the view
-                               IViewPart part = getActiveTerminalsView(id != null ? id : IUIConstants.ID, secondaryId);
-                               if (part == null) part = page.showView(id != null ? id : IUIConstants.ID, secondaryId, IWorkbenchPage.VIEW_ACTIVATE);
-                               // and force the view to the foreground
-                               page.bringToTop(part);
-                               return part;
-                       }
-                       catch (PartInitException e) {
-                               IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(), e.getLocalizedMessage(), e);
-                               UIPlugin.getDefault().getLog().log(status);
-                       }
-               }
-               return null;
-       }
-
-       /**
-        * Bring the terminals console view, specified by the given id, to the top of the view stack.
-        *
-        * @param id The terminals console view id or <code>null</code> to show the default terminals console view.
-        * @param secondaryId The terminals console view secondary id or <code>null</code>.
-        * @param activate If <code>true</code> activate the console view.
-        */
-       private IViewPart bringToTop(String id, String secondaryId, boolean activate) {
-               // Get the active workbench page
-               IWorkbenchPage page = getActiveWorkbenchPage();
-               if (page != null) {
-                       // get (last) active terminal view
-                       IViewPart activePart = getActiveTerminalsView(id != null ? id : IUIConstants.ID, secondaryId);
-                       if (activePart == null) {
-                               // Create a new one
-                               IViewPart newPart = showConsoleView(id != null ? id : IUIConstants.ID, getSecondaryId(secondaryId, id));
-                               return newPart;
-                       }
-
-                       if (activate) page.activate(activePart);
-                       else page.bringToTop(activePart);
-
-                       return activePart;
-               }
-               return null;
-       }
-
-       /**
-        * Return the secondary id to use.
-        * @param secondaryId
-        * @param id
-        * @return the secondaryId argument is not null, or *, otherwise use the auto generated secondary id.
-        */
-       private String getSecondaryId(String secondaryId, String id){
-               if(secondaryId==null || ANY_SECONDARY_ID.equals(secondaryId)){
-                       return getNextTerminalSecondaryId(id != null ? id : IUIConstants.ID);
-               }
-
-               return secondaryId;
-       }
-
-       /**
-        * Opens the console with the given title and connector.
-        * <p>
-        * <b>Note:</b> The method must be called within the UI thread.
-        *
-        * @param id The terminals console view id or <code>null</code> to show the default terminals console view.
-        * @param title The console title. Must not be <code>null</code>.
-        * @param encoding The terminal encoding or <code>null</code>.
-        * @param connector The terminal connector. Must not be <code>null</code>.
-        * @param data The custom terminal data node or <code>null</code>.
-        * @param flags The flags controlling how the console is opened or <code>null</code> to use defaults.
-        */
-       public CTabItem openConsole(String id, String title, String encoding, ITerminalConnector connector, Object data, Map<String, Boolean> flags) {
-               return openConsole(id, ANY_SECONDARY_ID, title, encoding, connector, data, flags);
-       }
-
-       /**
-        * Opens the console with the given title and connector.
-        * <p>
-        * <b>Note:</b> The method must be called within the UI thread.
-        *
-        * @param id The terminals console view id or <code>null</code> to show the default terminals console view.
-        * @param secondaryId The terminals console view secondary id or <code>null</code>.
-        * @param title The console title. Must not be <code>null</code>.
-        * @param encoding The terminal encoding or <code>null</code>.
-        * @param connector The terminal connector. Must not be <code>null</code>.
-        * @param data The custom terminal data node or <code>null</code>.
-        * @param flags The flags controlling how the console is opened or <code>null</code> to use defaults.
-        */
-       @SuppressWarnings("cast")
-       public CTabItem openConsole(String id, String secondaryId, String title, String encoding, ITerminalConnector connector, Object data, Map<String, Boolean> flags) {
-               Assert.isNotNull(title);
-               Assert.isNotNull(connector);
-               Assert.isNotNull(Display.findDisplay(Thread.currentThread()));
-
-               // Get the flags handled by the openConsole method itself
-               boolean activate = flags != null && flags.containsKey("activate") ? flags.get("activate").booleanValue() : false; //$NON-NLS-1$ //$NON-NLS-2$
-               boolean forceNew = flags != null && flags.containsKey(ITerminalsConnectorConstants.PROP_FORCE_NEW) ? flags.get(ITerminalsConnectorConstants.PROP_FORCE_NEW).booleanValue() : false;
-
-               // Make the consoles view visible
-               IViewPart part = bringToTop(id, secondaryId, activate);
-               if (!(part instanceof ITerminalsView)) return null;
-               // Cast to the correct type
-               ITerminalsView view = (ITerminalsView)part;
-
-               // Get the tab folder manager associated with the view
-               TabFolderManager manager = (TabFolderManager) view.getAdapter(TabFolderManager.class);
-               if (manager == null) return null;
-
-               // Lookup an existing console first
-               String secId = ((IViewSite)part.getSite()).getSecondaryId();
-               CTabItem item = findConsole(id, secId, title, connector, data);
-
-               // Switch to the tab folder page _before_ calling TabFolderManager#createItem(...).
-               // The createItem(...) method invokes the corresponding connect and this may take
-               // a while if connecting to a remote host. To allow a "Connecting..." decoration,
-               // the tab folder page needs to be visible.
-               view.switchToTabFolderControl();
-
-               // If no existing console exist or forced -> Create the tab item
-               if (item == null || forceNew) {
-                       // If configured, check all existing tab items if they are associated
-                       // with terminated consoles
-                       if (UIPlugin.getScopedPreferences().getBoolean(IPreferenceKeys.PREF_REMOVE_TERMINATED_TERMINALS)) {
-                               // Remote all terminated tab items. This will invoke the
-                               // tab's dispose listener.
-                               manager.removeTerminatedItems();
-                               // Switch back to the tab folder control as removeTerminatedItems()
-                               // may have triggered the switch to the empty space control.
-                               view.switchToTabFolderControl();
-                       }
-
-                       // Create a new tab item
-                       item = manager.createTabItem(title, encoding, connector, data, flags);
-               }
-               // If still null, something went wrong
-               if (item == null) return null;
-
-               // Make the item the active console
-               manager.bringToTop(item);
-
-               // Make sure the terminals view has the focus after opening a new terminal
-               view.setFocus();
-
-               // Return the tab item of the opened console
-               return item;
-       }
-
-       /**
-        * Lookup a console with the given title and the given terminal connector.
-        * <p>
-        * <b>Note:</b> The method must be called within the UI thread.
-        * <b>Note:</b> The method will handle unified console titles itself.
-        *
-        * @param id The terminals console view id or <code>null</code> to show the default terminals console view.
-        * @param secondaryId The terminals console view secondary id or <code>null</code>.
-        * @param title The console title. Must not be <code>null</code>.
-        * @param connector The terminal connector. Must not be <code>null</code>.
-        * @param data The custom terminal data node or <code>null</code>.
-        *
-        * @return The corresponding console tab item or <code>null</code>.
-        */
-       @SuppressWarnings("cast")
-       public CTabItem findConsole(String id, String secondaryId, String title, ITerminalConnector connector, Object data) {
-               Assert.isNotNull(title);
-               Assert.isNotNull(connector);
-               Assert.isNotNull(Display.findDisplay(Thread.currentThread()));
-
-               // Get the console view
-               ITerminalsView view = findConsoleView(id, secondaryId);
-               if (view == null) return null;
-
-               // Get the tab folder manager associated with the view
-               TabFolderManager manager = (TabFolderManager) view.getAdapter(TabFolderManager.class);
-               if (manager == null) return null;
-
-               return manager.findTabItem(title, connector, data);
-       }
-
-       /**
-        * Lookup a console which is assigned with the given terminal control.
-        * <p>
-        * <b>Note:</b> The method must be called within the UI thread.
-        *
-        * @param control The terminal control. Must not be <code>null</code>.
-        * @return The corresponding console tab item or <code>null</code>.
-        */
-       @SuppressWarnings("cast")
-       public CTabItem findConsole(ITerminalControl control) {
-               Assert.isNotNull(control);
-
-               CTabItem item = null;
-
-               IWorkbenchPage page = getActiveWorkbenchPage();
-               if (page != null) {
-                       IViewReference[] refs = page.getViewReferences();
-                       for (int i = 0; i < refs.length; i++) {
-                               IViewReference ref = refs[i];
-                               IViewPart part = ref != null ? ref.getView(false) : null;
-                               if (part instanceof ITerminalsView) {
-                                       CTabFolder tabFolder = (CTabFolder) part.getAdapter(CTabFolder.class);
-                                       if (tabFolder == null) continue;
-                                       CTabItem[] candidates = tabFolder.getItems();
-                                       for (CTabItem candidate : candidates) {
-                                               Object data = candidate.getData();
-                                               if (data instanceof ITerminalControl && control.equals(data)) {
-                                                       item = candidate;
-                                                       break;
-                                               }
-                                       }
-                               }
-                               if (item != null) break;
-                       }
-               }
-
-               return item;
-       }
-
-       /**
-        * Search all console views for the one that contains a specific connector.
-        * <p>
-        * <b>Note:</b> The method will handle unified console titles itself.
-        *
-        * @param id The terminals console view id or <code>null</code> to show the default terminals console view.
-        * @param title The console title. Must not be <code>null</code>.
-        * @param connector The terminal connector. Must not be <code>null</code>.
-        * @param data The custom terminal data node or <code>null</code>.
-        *
-        * @return The corresponding console tab item or <code>null</code>.
-        */
-       @SuppressWarnings("cast")
-       private CTabItem findConsoleForTerminalConnector(String id, String title, ITerminalConnector connector, Object data) {
-               Assert.isNotNull(title);
-               Assert.isNotNull(connector);
-
-               IWorkbenchPage page = getActiveWorkbenchPage();
-               if (page != null) {
-                       IViewReference[] refs = page.getViewReferences();
-                       for (int i = 0; i < refs.length; i++) {
-                               IViewReference ref = refs[i];
-                               if (ref.getId().equals(id)) {
-                                       IViewPart part = ref.getView(true);
-                                       if (part instanceof ITerminalsView) {
-                                               // Get the tab folder manager associated with the view
-                                               TabFolderManager manager = (TabFolderManager) part.getAdapter(TabFolderManager.class);
-                                               if (manager == null) {
-                                                       continue;
-                                               }
-                                               CTabItem item = manager.findTabItem(title, connector, data);
-                                               if (item != null) {
-                                                       return item;
-                                               }
-                                       }
-                               }
-                       }
-               }
-               return null;
-       }
-
-       /**
-        * Close the console with the given title and the given terminal connector.
-        * <p>
-        * <b>Note:</b> The method must be called within the UI thread.
-        * <b>Note:</b> The method will handle unified console titles itself.
-        *
-        * @param title The console title. Must not be <code>null</code>.
-        * @param connector The terminal connector. Must not be <code>null</code>.
-        * @param data The custom terminal data node or <code>null</code>.
-        */
-       public void closeConsole(String id, String title, ITerminalConnector connector, Object data) {
-               Assert.isNotNull(title);
-               Assert.isNotNull(connector);
-               Assert.isNotNull(Display.findDisplay(Thread.currentThread()));
-
-               // Lookup the console with this connector
-               CTabItem console = findConsoleForTerminalConnector(id, title, connector, data);
-               // If found, dispose the console
-               if (console != null) {
-                       console.dispose();
-               }
-       }
-
-       /**
-        * Terminate (disconnect) the console with the given title and the given terminal connector.
-        * <p>
-        * <b>Note:</b> The method must be called within the UI thread.
-        * <b>Note:</b> The method will handle unified console titles itself.
-        *
-        * @param title The console title. Must not be <code>null</code>.
-        * @param connector The terminal connector. Must not be <code>null</code>.
-        * @param data The custom terminal data node or <code>null</code>.
-        */
-       public void terminateConsole(String id, String title, ITerminalConnector connector, Object data) {
-               Assert.isNotNull(title);
-               Assert.isNotNull(connector);
-               Assert.isNotNull(Display.findDisplay(Thread.currentThread()));
-
-               // Lookup the console
-               CTabItem console = findConsoleForTerminalConnector(id, title, connector, data);
-               // If found, disconnect the console
-               if (console != null && !console.isDisposed()) {
-                       ITerminalViewControl terminal = (ITerminalViewControl)console.getData();
-                       if (terminal != null && !terminal.isDisposed()) {
-                               terminal.disconnectTerminal();
-                       }
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/nls/Messages.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/nls/Messages.java
deleted file mode 100644 (file)
index f7d4953..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2016 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
- * Max Weninger (Wind River) - [361363] [TERMINALS] Implement "Pin&Clone" for the "Terminals" view
- * Dirk Fauth <dirk.fauth@googlemail.com> - Bug 460496
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.nls;
-
-import java.lang.reflect.Field;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Terminal plug-in externalized strings management.
- */
-public class Messages extends NLS {
-
-       // The plug-in resource bundle name
-       private static final String BUNDLE_NAME = "org.eclipse.tm.terminal.view.ui.nls.Messages"; //$NON-NLS-1$
-
-       /**
-        * Static constructor.
-        */
-       static {
-               // Load message values from bundle file
-               NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-       }
-
-       /**
-        * Returns the corresponding string for the given externalized strings
-        * key or <code>null</code> if the key does not exist.
-        *
-        * @param key The externalized strings key or <code>null</code>.
-        * @return The corresponding string or <code>null</code>.
-        */
-       public static String getString(String key) {
-               if (key != null) {
-                       try {
-                               Field field = Messages.class.getDeclaredField(key);
-                               return (String)field.get(null);
-                       } catch (Exception e) { /* ignored on purpose */ }
-               }
-
-               return null;
-       }
-
-       // **** Declare externalized string id's down here *****
-
-       public static String Extension_error_missingRequiredAttribute;
-       public static String Extension_error_duplicateExtension;
-       public static String Extension_error_invalidExtensionPoint;
-
-       public static String AbstractTriggerCommandHandler_error_executionFailed;
-
-       public static String AbstractAction_error_commandExecutionFailed;
-
-       public static String AbstractConfigurationPanel_delete;
-       public static String AbstractConfigurationPanel_deleteButtonTooltip;
-       public static String AbstractConfigurationPanel_hosts;
-       public static String AbstractConfigurationPanel_encoding;
-       public static String AbstractConfigurationPanel_encoding_custom;
-       public static String AbstractConfigurationPanel_encoding_custom_title;
-       public static String AbstractConfigurationPanel_encoding_custom_message;
-       public static String AbstractConfigurationPanel_encoding_custom_error;
-
-       public static String TabTerminalListener_consoleClosed;
-       public static String TabTerminalListener_consoleConnecting;
-
-       public static String NewTerminalViewAction_menu;
-       public static String NewTerminalViewAction_tooltip;
-
-       public static String ToggleCommandFieldAction_menu;
-       public static String ToggleCommandFieldAction_toolTip;
-
-       public static String SelectEncodingAction_menu;
-       public static String SelectEncodingAction_tooltip;
-
-       public static String ProcessSettingsPage_dialogTitle;
-       public static String ProcessSettingsPage_processImagePathSelectorControl_label;
-       public static String ProcessSettingsPage_processImagePathSelectorControl_button;
-       public static String ProcessSettingsPage_processArgumentsControl_label;
-       public static String ProcessSettingsPage_processWorkingDirControl_label;
-       public static String ProcessSettingsPage_localEchoSelectorControl_label;
-
-       public static String OutputStreamMonitor_error_readingFromStream;
-
-       public static String InputStreamMonitor_error_writingToStream;
-
-       public static String TerminalService_error_cannotCreateConnector;
-       public static String TerminalService_defaultTitle;
-
-       public static String LaunchTerminalSettingsDialog_title;
-       public static String LaunchTerminalSettingsDialog_combo_label;
-       public static String LaunchTerminalSettingsDialog_group_label;
-
-    public static String TabScrollLockAction_text;
-    public static String TabScrollLockAction_tooltip;
-
-    public static String LaunchTerminalSettingsDialog_error_title;
-       public static String LaunchTerminalSettingsDialog_error_invalidSettings;
-       public static String LaunchTerminalSettingsDialog_error_unknownReason;
-
-       public static String EncodingSelectionDialog_title;
-
-       public static String TabFolderManager_encoding;
-       public static String TabFolderManager_state_connected;
-       public static String TabFolderManager_state_connecting;
-       public static String TabFolderManager_state_closed;
-
-       public static String NoteCompositeHelper_note_label;
-
-       // showin messages
-
-       public static String ProcessConnector_error_creatingProcess;
-
-       public static String PreferencePage_label;
-       public static String PreferencePage_executables_label;
-       public static String PreferencePage_executables_column_name_label;
-       public static String PreferencePage_executables_column_path_label;
-       public static String PreferencePage_executables_button_add_label;
-       public static String PreferencePage_executables_button_edit_label;
-       public static String PreferencePage_executables_button_remove_label;
-       public static String PreferencePage_workingDir_label;
-       public static String PreferencePage_workingDir_userhome_label;
-       public static String PreferencePage_workingDir_eclipsehome_label;
-       public static String PreferencePage_workingDir_eclipsews_label;
-       public static String PreferencePage_workingDir_button_browse;
-       public static String PreferencePage_workingDir_note_label;
-       public static String PreferencePage_workingDir_note_text;
-       public static String PreferencePage_workingDir_button_variables;
-       public static String PreferencePage_workingDir_invalid;
-       public static String PreferencePage_command_label;
-       public static String PreferencePage_command_button_browse;
-       public static String PreferencePage_command_invalid;
-       public static String PreferencePage_command_note_label;
-       public static String PreferencePage_command_note_text;
-       public static String PreferencePage_command_arguments_label;
-
-       public static String ExternalExecutablesDialog_title_add;
-       public static String ExternalExecutablesDialog_title_edit;
-       public static String ExternalExecutablesDialog_button_add;
-       public static String ExternalExecutablesDialog_button_browse;
-       public static String ExternalExecutablesDialog_field_path;
-       public static String ExternalExecutablesDialog_field_name;
-       public static String ExternalExecutablesDialog_field_args;
-       public static String ExternalExecutablesDialog_field_icon;
-       public static String ExternalExecutablesDialog_field_translate;
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/nls/Messages.properties b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/nls/Messages.properties
deleted file mode 100644 (file)
index 0af5fc1..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-###############################################################################
-# Copyright (c) 2012, 2016 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
-###############################################################################
-
-Extension_error_missingRequiredAttribute=Required attribute "{0}" missing for extension "{1}"!
-Extension_error_duplicateExtension=Duplicate extension with id ''{0}''. Ignoring duplicated contribution from contributor ''{1}''!
-Extension_error_invalidExtensionPoint=Failed to instantiate the executable extension from extension point ''{0}''.
-
-AbstractTriggerCommandHandler_error_executionFailed=Failed to execute command {0}.
-
-AbstractAction_error_commandExecutionFailed="Failed to execute command (id = {0}). Possibly caused by: {1}
-
-AbstractConfigurationPanel_delete=Delete
-AbstractConfigurationPanel_deleteButtonTooltip=Delete terminal settings for host
-AbstractConfigurationPanel_hosts=Hosts:
-AbstractConfigurationPanel_encoding=Encoding:
-AbstractConfigurationPanel_encoding_custom=Other...
-AbstractConfigurationPanel_encoding_custom_title=Other...
-AbstractConfigurationPanel_encoding_custom_message=Please enter the name of the encoding to use for the terminal.
-AbstractConfigurationPanel_encoding_custom_error=Unsupported encoding. Please enter the name of a supported encoding.
-
-TabTerminalListener_consoleClosed=<{1}> {0}
-TabTerminalListener_consoleConnecting={0} : {1}...
-
-NewTerminalViewAction_menu=New Terminal View
-NewTerminalViewAction_tooltip=Open a new Terminal View
-
-ToggleCommandFieldAction_menu=Toggle Command Input Field
-ToggleCommandFieldAction_toolTip=Toggle Command Input Field
-
-SelectEncodingAction_menu=Switch Encoding...
-SelectEncodingAction_tooltip=Switch the Encoding of the active Terminal
-
-ProcessSettingsPage_dialogTitle=Select Process Image
-ProcessSettingsPage_processImagePathSelectorControl_label=Image Path:
-ProcessSettingsPage_processImagePathSelectorControl_button=Browse
-ProcessSettingsPage_processArgumentsControl_label=Arguments:
-ProcessSettingsPage_processWorkingDirControl_label=Working Dir:
-ProcessSettingsPage_localEchoSelectorControl_label=Local Echo
-
-OutputStreamMonitor_error_readingFromStream=Exception when reading from stream. Possibly caused by: {0}
-
-InputStreamMonitor_error_writingToStream=Exception when writing to stream. Possibly caused by: {0}
-
-TerminalService_error_cannotCreateConnector=Cannot create a valid terminal connector instance from the provided terminal properties.
-TerminalService_defaultTitle=Console
-
-LaunchTerminalSettingsDialog_title=Launch Terminal
-LaunchTerminalSettingsDialog_combo_label=Choose terminal:
-LaunchTerminalSettingsDialog_group_label=Settings
-
-TabScrollLockAction_text=Scroll &Lock
-TabScrollLockAction_tooltip=Scroll Lock
-
-LaunchTerminalSettingsDialog_error_title=Terminal Settings
-LaunchTerminalSettingsDialog_error_invalidSettings=The specified settings are invalid\n\n\
-{0}\n\n\
-Please review and specify valid settings. Or cancel the settings dialog to abort.
-LaunchTerminalSettingsDialog_error_unknownReason=Cannot determine specifically which setting is invalid.
-
-EncodingSelectionDialog_title=Encoding
-
-TabFolderManager_encoding=Encoding: {0}
-TabFolderManager_state_connected=Connected
-TabFolderManager_state_connecting=Connecting
-TabFolderManager_state_closed=Closed
-
-NoteCompositeHelper_note_label=Note:
-
-# ----- showin
-
-ProcessConnector_error_creatingProcess=Exception when creating process. Possibly caused by: {0}
-
-ExternalExecutablesDialog_title_add=Add External Executable
-ExternalExecutablesDialog_title_edit=Edit External Executable
-ExternalExecutablesDialog_button_add=Add
-ExternalExecutablesDialog_button_browse=Browse...
-ExternalExecutablesDialog_field_path=Path:
-ExternalExecutablesDialog_field_name=Name:
-ExternalExecutablesDialog_field_args=Arguments:
-ExternalExecutablesDialog_field_icon=Icon:
-ExternalExecutablesDialog_field_translate=Translate Backslashes on Paste
-
-# -----  Preference Pages  -----
-
-PreferencePage_label=Local Terminal Settings:
-PreferencePage_executables_label="Show In ..." Custom Entries
-PreferencePage_executables_column_name_label=Name
-PreferencePage_executables_column_path_label=Path
-PreferencePage_executables_button_add_label=Add...
-PreferencePage_executables_button_edit_label=Edit...
-PreferencePage_executables_button_remove_label=Remove
-PreferencePage_workingDir_label=Initial Working Directory
-PreferencePage_workingDir_userhome_label=User home
-PreferencePage_workingDir_eclipsehome_label=Eclipse home
-PreferencePage_workingDir_eclipsews_label=Eclipse workspace
-PreferencePage_workingDir_button_browse=&Browse...
-PreferencePage_workingDir_note_label=Note:
-PreferencePage_workingDir_note_text=The chosen initial working directory might be overwritten by the current selection of the active view.
-PreferencePage_workingDir_button_variables=&Variables...
-PreferencePage_workingDir_invalid=Selected initial working directory is not a directory or is not readable.
-PreferencePage_command_label=Shell Command 
-PreferencePage_command_button_browse=&Browse...
-PreferencePage_command_invalid=Selected shell command is not a file or is not readable or executable.
-PreferencePage_command_note_label=Note:
-PreferencePage_command_note_text=Leave the shell command empty to fallback to the SHELL environment variable or if not set, to /bin/sh.
-PreferencePage_command_arguments_label=Arguments: 
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/panels/AbstractConfigurationPanel.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/panels/AbstractConfigurationPanel.java
deleted file mode 100644 (file)
index da3cd49..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.ui.panels;
-
-import java.util.Map;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-
-/**
- * Abstract terminal launcher configuration panel implementation.
- */
-public abstract class AbstractConfigurationPanel implements IConfigurationPanel {
-       private final IConfigurationPanelContainer container;
-
-       private Composite topControl = null;
-
-       // The selection
-       private ISelection selection;
-
-       private String message = null;
-       private int messageType = IMessageProvider.NONE;
-
-       private boolean enabled = true;
-
-       /**
-        * Constructor.
-        *
-        * @param container The configuration panel container or <code>null</code>.
-        */
-       public AbstractConfigurationPanel(IConfigurationPanelContainer container) {
-               super();
-               this.container = container;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#getContainer()
-        */
-       @Override
-       public IConfigurationPanelContainer getContainer() {
-           return container;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.IMessageProvider#getMessage()
-        */
-       @Override
-       public final String getMessage() {
-               return message;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.IMessageProvider#getMessageType()
-        */
-       @Override
-       public final int getMessageType() {
-               return messageType;
-       }
-
-       /**
-        * Set the message and the message type to display.
-        *
-        * @param message The message or <code>null</code>.
-        * @param messageType The message type or <code>IMessageProvider.NONE</code>.
-        */
-       protected final void setMessage(String message, int messageType) {
-               this.message = message;
-               this.messageType = messageType;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#dispose()
-        */
-       @Override
-       public void dispose() {
-       }
-
-       /**
-        * Sets the top control.
-        *
-        * @param topControl The top control or <code>null</code>.
-        */
-       protected void setControl(Composite topControl) {
-               this.topControl = topControl;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#getControl()
-        */
-       @Override
-       public Composite getControl() {
-               return topControl;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#setSelection(org.eclipse.jface.viewers.ISelection)
-        */
-       @Override
-       public void setSelection(ISelection selection) {
-               this.selection = selection;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#getSelection()
-        */
-       @Override
-       public ISelection getSelection() {
-               return selection;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#doRestoreWidgetValues(org.eclipse.jface.dialogs.IDialogSettings, java.lang.String)
-        */
-       @Override
-       public void doRestoreWidgetValues(IDialogSettings settings, String idPrefix) {
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#doSaveWidgetValues(org.eclipse.jface.dialogs.IDialogSettings, java.lang.String)
-        */
-       @Override
-       public void doSaveWidgetValues(IDialogSettings settings, String idPrefix) {
-       }
-
-       /**
-        * Returns the correctly prefixed dialog settings slot id. In case the given id
-        * suffix is <code>null</code> or empty, <code>id</code> is returned as is.
-        *
-        * @param settingsSlotId The dialog settings slot id to prefix.
-        * @param prefix The prefix.
-        * @return The correctly prefixed dialog settings slot id.
-        */
-       public final String prefixDialogSettingsSlotId(String settingsSlotId, String prefix) {
-               if (settingsSlotId != null && prefix != null && prefix.trim().length() > 0) {
-                       settingsSlotId = prefix + "." + settingsSlotId; //$NON-NLS-1$
-               }
-               return settingsSlotId;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#setEnabled(boolean)
-        */
-       @Override
-       public void setEnabled(boolean enabled) {
-               this.enabled = enabled;
-       }
-
-       /**
-     * @return Returns the enabled state.
-     */
-    public boolean isEnabled() {
-           return enabled;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#isValid()
-     */
-       @Override
-       public boolean isValid() {
-               setMessage(null, NONE);
-               return true;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#activate()
-        */
-       @Override
-       public void activate() {
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#extractData(java.util.Map)
-        */
-    @Override
-    public void extractData(Map<String, Object> data) {
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#setupData(java.util.Map)
-     */
-    @Override
-    public void setupData(Map<String, Object> data) {
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#updateData(java.util.Map)
-     */
-    @Override
-    public void updateData(Map<String, Object> data) {
-    }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/panels/AbstractExtendedConfigurationPanel.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/panels/AbstractExtendedConfigurationPanel.java
deleted file mode 100644 (file)
index 54b84aa..0000000
+++ /dev/null
@@ -1,634 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2015 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.terminal.view.ui.panels;
-
-import java.nio.charset.Charset;
-import java.nio.charset.IllegalCharsetNameException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-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.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.tm.terminal.view.core.TerminalContextPropertiesProviderFactory;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalContextPropertiesProvider;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.IContextPropertiesConstants;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.WorkbenchEncoding;
-import org.osgi.framework.Bundle;
-
-/**
- * Abstract terminal configuration panel implementation.
- */
-public abstract class AbstractExtendedConfigurationPanel extends AbstractConfigurationPanel {
-       private static final String LAST_HOST_TAG = "lastHost";//$NON-NLS-1$
-       private static final String HOSTS_TAG = "hosts";//$NON-NLS-1$
-       private static final String ENCODINGS_TAG = "encodings"; //$NON-NLS-1$
-
-       // The sub-controls
-       /* default */ Combo hostCombo;
-       private Button deleteHostButton;
-       /* default */ Combo encodingCombo;
-
-       // The last selected encoding
-       /* default */ String lastSelectedEncoding;
-       // The last entered custom encodings
-       /* default */ final List<String> encodingHistory = new ArrayList<String>();
-
-       // A map containing the settings per host
-       protected final Map<String, Map<String, String>> hostSettingsMap = new HashMap<String, Map<String, String>>();
-
-       /**
-        * Constructor.
-        *
-        * @param container The configuration panel container or <code>null</code>.
-        */
-       public AbstractExtendedConfigurationPanel(IConfigurationPanelContainer container) {
-               super(container);
-       }
-
-       /**
-        * Returns the host name or IP from the current selection.
-        *
-        * @return The host name or IP, or <code>null</code>.
-        */
-       public String getSelectionHost() {
-               ISelection selection = getSelection();
-               if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
-                       Object element = ((IStructuredSelection) selection).getFirstElement();
-                       ITerminalContextPropertiesProvider provider = TerminalContextPropertiesProviderFactory.getProvider(element);
-                       if (provider != null) {
-                               Map<String, String> props = provider.getTargetAddress(element);
-                               if (props != null && props.containsKey(IContextPropertiesConstants.PROP_ADDRESS)) {
-                                       return props.get(IContextPropertiesConstants.PROP_ADDRESS);
-                               }
-                       }
-               }
-
-               return null;
-       }
-
-       /**
-        * Returns the default encoding based on the current selection.
-        *
-        * @return The default encoding or <code>null</code>.
-        */
-       public String getSelectionEncoding() {
-               ISelection selection = getSelection();
-               if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
-                       Object element = ((IStructuredSelection) selection).getFirstElement();
-                       ITerminalContextPropertiesProvider provider = TerminalContextPropertiesProviderFactory.getProvider(element);
-                       if (provider != null) {
-                               Object encoding = provider.getProperty(element, IContextPropertiesConstants.PROP_DEFAULT_ENCODING);
-                               if (encoding instanceof String) return ((String) encoding).trim();
-                       }
-               }
-
-               return null;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#doRestoreWidgetValues(org.eclipse.jface.dialogs.IDialogSettings, java.lang.String)
-        */
-       @Override
-       public void doRestoreWidgetValues(IDialogSettings settings, String idPrefix) {
-               Assert.isNotNull(settings);
-
-               String[] hosts = settings.getArray(HOSTS_TAG);
-               if (hosts != null) {
-                       for (int i = 0; i < hosts.length; i++) {
-                               String hostEntry = hosts[i];
-                               String[] hostString = hostEntry.split("\\|");//$NON-NLS-1$
-                               String hostName = hostString[0];
-                               if (hostString.length == 2) {
-                                       HashMap<String, String> attr = deSerialize(hostString[1]);
-                                       hostSettingsMap.put(hostName, attr);
-                               }
-                               else {
-                                       hostSettingsMap.put(hostName, new HashMap<String, String>());
-                               }
-                       }
-               }
-
-               if (!isWithoutSelection()) {
-                       String host = getSelectionHost();
-                       if (host != null) {
-                               fillSettingsForHost(host);
-                       }
-               }
-               else {
-                       if (hostCombo != null) {
-                               fillHostCombo();
-                               String lastHost = settings.get(LAST_HOST_TAG);
-                               if (lastHost != null) {
-                                       int index = hostCombo.indexOf(lastHost);
-                                       if (index != -1) {
-                                               hostCombo.select(index);
-                                       }
-                                       else {
-                                               hostCombo.select(0);
-                                       }
-                               }
-                               else {
-                                       hostCombo.select(0);
-                               }
-                               fillSettingsForHost(hostCombo.getText());
-                       }
-               }
-
-               encodingHistory.clear();
-               String[] encodings = settings.getArray(ENCODINGS_TAG);
-               if (encodings != null && encodings.length > 0) {
-                       encodingHistory.addAll(Arrays.asList(encodings));
-                       for (String encoding : encodingHistory) {
-                               encodingCombo.add(encoding, encodingCombo.getItemCount() - 1);
-                       }
-               }
-       }
-
-       /**
-        * Restore the encodings widget values.
-        *
-        * @param settings The dialog settings. Must not be <code>null</code>.
-        * @param idPrefix The prefix or <code>null</code>.
-        */
-       protected void doRestoreEncodingsWidgetValues(IDialogSettings settings, String idPrefix) {
-               Assert.isNotNull(settings);
-
-               String encoding = settings.get(prefixDialogSettingsSlotId(ITerminalsConnectorConstants.PROP_ENCODING, idPrefix));
-               if (encoding != null && encoding.trim().length() > 0) {
-                       setEncoding(encoding);
-               }
-       }
-
-       /**
-        * Decode the host settings from the given string.
-        *
-        * @param hostString The encoded host settings. Must not be <code>null</code>.
-        * @return The decoded host settings.
-        */
-       private HashMap<String, String> deSerialize(String hostString) {
-               Assert.isNotNull(hostString);
-               HashMap<String, String> attr = new HashMap<String, String>();
-
-               if (hostString.length() != 0) {
-                       String[] hostAttrs = hostString.split("\\:");//$NON-NLS-1$
-                       for (int j = 0; j < hostAttrs.length-1; j = j + 2) {
-                               String key = hostAttrs[j];
-                               String value = hostAttrs[j + 1];
-                               attr.put(key, value);
-                       }
-               }
-               return attr;
-       }
-
-       /**
-        * Encode the host settings to a string.
-        *
-        * @param hostEntry The host settings. Must not be <code>null</code>.
-        * @param hostString The host string to encode to. Must not be <code>null</code>.
-        */
-       private void serialize(Map<String, String> hostEntry, StringBuilder hostString) {
-               Assert.isNotNull(hostEntry);
-               Assert.isNotNull(hostString);
-
-               if (hostEntry.keySet().size() != 0) {
-                       Iterator<Entry<String, String>> nextHostAttr = hostEntry.entrySet().iterator();
-                       while (nextHostAttr.hasNext()) {
-                               Entry<String, String> entry = nextHostAttr.next();
-                               String attrKey = entry.getKey();
-                               String attrValue = entry.getValue();
-                               hostString.append(attrKey + ":" + attrValue + ":");//$NON-NLS-1$ //$NON-NLS-2$
-                       }
-                       hostString.deleteCharAt(hostString.length() - 1);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#doSaveWidgetValues(org.eclipse.jface.dialogs.IDialogSettings, java.lang.String)
-        */
-       @Override
-       public void doSaveWidgetValues(IDialogSettings settings, String idPrefix) {
-               Iterator<String> nextHost = hostSettingsMap.keySet().iterator();
-               String[] hosts = new String[hostSettingsMap.keySet().size()];
-               int i = 0;
-               while (nextHost.hasNext()) {
-                       StringBuilder hostString = new StringBuilder();
-                       String host = nextHost.next();
-                       hostString.append(host + "|");//$NON-NLS-1$
-                       Map<String, String> hostEntry = hostSettingsMap.get(host);
-                       serialize(hostEntry, hostString);
-                       hosts[i] = hostString.toString();
-                       i = i + 1;
-               }
-               settings.put(HOSTS_TAG, hosts);
-               if (isWithoutSelection()) {
-                       if (hostCombo != null) {
-                               String host = getHostFromSettings();
-                               if (host != null) settings.put(LAST_HOST_TAG, host);
-                       }
-               }
-
-               if (!encodingHistory.isEmpty()) {
-                       settings.put(ENCODINGS_TAG, encodingHistory.toArray(new String[encodingHistory.size()]));
-               }
-       }
-
-       /**
-        * Save the encodings widget values.
-        *
-        * @param settings The dialog settings. Must not be <code>null</code>.
-        * @param idPrefix The prefix or <code>null</code>.
-        */
-       protected void doSaveEncodingsWidgetValues(IDialogSettings settings, String idPrefix) {
-               Assert.isNotNull(settings);
-
-               String encoding = getEncoding();
-               if (encoding != null) {
-                       settings.put(prefixDialogSettingsSlotId(ITerminalsConnectorConstants.PROP_ENCODING, idPrefix), encoding);
-               }
-       }
-
-       protected abstract void saveSettingsForHost(boolean add);
-
-       protected abstract void fillSettingsForHost(String host);
-
-       protected abstract String getHostFromSettings();
-
-       protected void removeSecurePassword(String host) {
-               // noop by default
-       }
-
-       /**
-        * Returns the selected host from the hosts combo widget.
-        *
-        * @return The selected host or <code>null</code>.
-        */
-       protected final String getHostFromCombo() {
-               return hostCombo != null && !hostCombo.isDisposed() ? hostCombo.getText() : null;
-       }
-
-       protected void removeSettingsForHost(String host) {
-               if (hostSettingsMap.containsKey(host)) {
-                       hostSettingsMap.remove(host);
-               }
-       }
-
-       /**
-        * Returns the list of host names of the persisted hosts.
-        *
-        * @return The list of host names.
-        */
-       private List<String> getHostList() {
-               List<String> hostList = new ArrayList<String>();
-               hostList.addAll(hostSettingsMap.keySet());
-               return hostList;
-       }
-
-       /**
-        * Fill the host combo with the stored per host setting names.
-        */
-       protected void fillHostCombo() {
-               if (hostCombo != null) {
-                       hostCombo.removeAll();
-                       List<String> hostList = getHostList();
-                       Collections.sort(hostList);
-                       Iterator<String> nextHost = hostList.iterator();
-                       while (nextHost.hasNext()) {
-                               String host = nextHost.next();
-                               hostCombo.add(host);
-                       }
-                       if (hostList.size() <= 1) {
-                               hostCombo.setEnabled(false);
-                       }
-                       else {
-                               hostCombo.setEnabled(true);
-
-                       }
-                       if (deleteHostButton != null) {
-                               if (hostList.size() == 0) {
-                                       deleteHostButton.setEnabled(false);
-                               }
-                               else {
-                                       deleteHostButton.setEnabled(true);
-                               }
-                       }
-               }
-       }
-
-       public boolean isWithoutSelection() {
-               ISelection selection = getSelection();
-               if (selection == null) {
-                       return true;
-               }
-               if (selection instanceof IStructuredSelection && selection.isEmpty()) {
-                       return true;
-               }
-               return false;
-       }
-
-       public boolean isWithHostList() {
-               return true;
-       }
-
-       /**
-        * Create the host selection combo.
-        *
-        * @param parent The parent composite. Must not be <code>null</code>.
-        * @param separator If <code>true</code>, a separator will be added after the controls.
-        */
-       protected void createHostsUI(Composite parent, boolean separator) {
-               Assert.isNotNull(parent);
-
-               if (isWithoutSelection() && isWithHostList()) {
-                       Composite comboComposite = new Composite(parent, SWT.NONE);
-                       GridLayout layout = new GridLayout(3, false);
-                       layout.marginHeight = 0;
-                       layout.marginWidth = 0;
-                       comboComposite.setLayout(layout);
-                       comboComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
-                       Label label = new Label(comboComposite, SWT.HORIZONTAL);
-                       label.setText(Messages.AbstractConfigurationPanel_hosts);
-
-                       hostCombo = new Combo(comboComposite, SWT.READ_ONLY);
-                       hostCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-                       hostCombo.addSelectionListener(new SelectionListener() {
-
-                               @Override
-                               public void widgetSelected(SelectionEvent e) {
-                                       String host = hostCombo.getText();
-                                       fillSettingsForHost(host);
-                               }
-
-                               @Override
-                               public void widgetDefaultSelected(SelectionEvent e) {
-                                       widgetSelected(e);
-                               }
-                       });
-
-                       deleteHostButton = new Button(comboComposite, SWT.NONE);
-                       // deleteHostButton.setText(Messages.AbstractConfigurationPanel_delete);
-
-                       ISharedImages workbenchImages = UIPlugin.getDefault().getWorkbench().getSharedImages();
-                       deleteHostButton.setImage(workbenchImages.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE).createImage());
-
-                       deleteHostButton.setToolTipText(Messages.AbstractConfigurationPanel_deleteButtonTooltip);
-                       deleteHostButton.addSelectionListener(new SelectionListener() {
-
-                               @Override
-                               public void widgetSelected(SelectionEvent e) {
-                                       String host = getHostFromCombo();
-                                       if (host != null && host.length() != 0) {
-                                               removeSettingsForHost(host);
-                                               removeSecurePassword(host);
-                                               fillHostCombo();
-                                               hostCombo.select(0);
-                                               host = getHostFromCombo();
-                                               if (host != null && host.length() != 0) {
-                                                       fillSettingsForHost(host);
-                                               }
-                                       }
-                               }
-
-                               @Override
-                               public void widgetDefaultSelected(SelectionEvent e) {
-                                       widgetSelected(e);
-                               }
-                       });
-
-                       if (separator) {
-                               Label sep = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
-                               sep.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-                       }
-               }
-       }
-
-       /**
-        * Create the encoding selection combo.
-        *
-        * @param parent The parent composite. Must not be <code>null</code>.
-        * @param separator If <code>true</code>, a separator will be added before the controls.
-        */
-       protected void createEncodingUI(final Composite parent, boolean separator) {
-               Assert.isNotNull(parent);
-
-               if (separator) {
-                       Label sep = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
-                       sep.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-               }
-
-               Composite panel = new Composite(parent, SWT.NONE);
-               GridLayout layout = new GridLayout(2, false);
-               layout.marginHeight = 0; layout.marginWidth = 0;
-               panel.setLayout(layout);
-               panel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
-               Label label = new Label(panel, SWT.HORIZONTAL);
-               label.setText(Messages.AbstractConfigurationPanel_encoding);
-
-               encodingCombo = new Combo(panel, SWT.READ_ONLY);
-               encodingCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-               encodingCombo.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               if (Messages.AbstractConfigurationPanel_encoding_custom.equals(encodingCombo.getText())) {
-                                       InputDialog dialog = new InputDialog(parent.getShell(),
-                                                                                                                Messages.AbstractConfigurationPanel_encoding_custom_title,
-                                                                                                                Messages.AbstractConfigurationPanel_encoding_custom_message,
-                                                                                                                null,
-                                                                                                                new IInputValidator() {
-                                                                                                                       @Override
-                                                                                                                       public String isValid(String newText) {
-                                                                                                                               boolean valid = false;
-                                                                                                                               try {
-                                                                                                                                       if (newText != null && !"".equals(newText)) { //$NON-NLS-1$
-                                                                                                                                               valid = Charset.isSupported(newText);
-                                                                                                                                       }
-                                                                                                                               } catch (IllegalCharsetNameException e) { /* ignored on purpose */ }
-
-                                                                                                                               if (!valid) {
-                                                                                                                                       return newText != null && !"".equals(newText) ? Messages.AbstractConfigurationPanel_encoding_custom_error : ""; //$NON-NLS-1$ //$NON-NLS-2$
-                                                                                                                               }
-                                                                                                                               return null;
-                                                                                                                       }
-                                                                                                               });
-                                       if (dialog.open() == Window.OK) {
-                                               String encoding = dialog.getValue();
-                                               encodingCombo.add(encoding, encodingCombo.getItemCount() - 1);
-                                               encodingCombo.select(encodingCombo.indexOf(encoding));
-                                               lastSelectedEncoding = encodingCombo.getText();
-
-                                               // Remember the last 5 custom encodings entered
-                                               if (!encodingHistory.contains(encoding)) {
-                                                       if (encodingHistory.size() == 5) encodingHistory.remove(4);
-                                                       encodingHistory.add(encoding);
-                                               }
-
-                                       } else {
-                                               encodingCombo.select(encodingCombo.indexOf(lastSelectedEncoding));
-                                       }
-                               }
-                       }
-               });
-
-               fillEncodingCombo();
-
-               // Apply any default encoding derived from the current selection
-               String defaultEncoding = getSelectionEncoding();
-               if (defaultEncoding != null && !"".equals(defaultEncoding)) { //$NON-NLS-1$
-                       setEncoding(defaultEncoding);
-               }
-       }
-
-       /**
-        * Fill the encoding combo.
-        */
-       protected void fillEncodingCombo() {
-               if (encodingCombo != null) {
-                       List<String> encodings = new ArrayList<String>();
-
-                       // Default encoding
-                       encodings.add("Default (ISO-8859-1)"); //$NON-NLS-1$
-
-                       // The currently selected IDE encoding from the preferences
-                       String ideEncoding = getResourceEncoding();
-
-                       // The default Eclipse Workbench encoding (configured in the preferences)
-                       String eclipseEncoding = WorkbenchEncoding.getWorkbenchDefaultEncoding();
-
-                       // The default host (Java VM) encoding
-                       String hostEncoding = Charset.defaultCharset().name();
-
-                       addEncodings(encodings, "UTF-8", ideEncoding, eclipseEncoding, hostEncoding); //$NON-NLS-1$
-
-                       // The "Other..." encoding
-                       encodings.add(Messages.AbstractConfigurationPanel_encoding_custom);
-
-                       encodingCombo.setItems(encodings.toArray(new String[encodings.size()]));
-                       encodingCombo.select(0);
-
-                       lastSelectedEncoding = encodingCombo.getText();
-               }
-       }
-
-       /**
-        * Add given encoding names to the list. Duplicates are filtered out by comparing aliases.
-        */
-       private void addEncodings(List<String> encodings, String... toadd) {
-               Set<String> aliases = new HashSet<String>();
-               for (String name : toadd) {
-                       if (name == null)
-                               continue;
-                       try {
-                               Charset cs = Charset.forName(name);
-                               if (aliases.containsAll(cs.aliases()))
-                                       continue;
-                               if (aliases.contains(name.toLowerCase()))
-                                       continue;
-                               aliases.addAll(cs.aliases());
-                               aliases.add(name.toLowerCase());
-                               encodings.add(name);
-                       } catch (Exception e) {
-                               // skip
-                       }
-               }
-       }
-
-       /**
-        * Get the current value of the encoding preference. If the value is not set
-        * return <code>null</code>.
-        * <p>
-        * <b>Note:</b> Copied from <code>org.eclipse.ui.ide.IDEEncoding</code>.
-        *
-        * @return String
-        */
-       @SuppressWarnings("deprecation")
-    private String getResourceEncoding() {
-               String preference = null;
-               Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
-               if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
-                       preference = org.eclipse.core.resources.ResourcesPlugin.getPlugin().getPluginPreferences().getString(org.eclipse.core.resources.ResourcesPlugin.PREF_ENCODING);
-               }
-
-               return preference != null && preference.length() > 0 ? preference : null;
-       }
-
-       /**
-        * Select the encoding.
-        *
-        * @param encoding The encoding. Must not be <code>null</code>.
-        */
-       protected void setEncoding(String encoding) {
-               Assert.isNotNull(encoding);
-
-               if (encodingCombo != null && !encodingCombo.isDisposed()) {
-                       int index = encodingCombo.indexOf("ISO-8859-1".equals(encoding) ? "Default (ISO-8859-1)" : encoding); //$NON-NLS-1$ //$NON-NLS-2$
-                       if (index != -1) encodingCombo.select(index);
-                       else {
-                               encodingCombo.add(encoding, encodingCombo.getItemCount() - 1);
-                               encodingCombo.select(encodingCombo.indexOf(encoding));
-                       }
-
-                       lastSelectedEncoding = encodingCombo.getText();
-               }
-       }
-
-       /**
-        * Returns the selected encoding.
-        *
-        * @return The selected encoding or <code>null</code>.
-        */
-       protected String getEncoding() {
-               String encoding = encodingCombo != null && !encodingCombo.isDisposed() ? encodingCombo.getText() : null;
-               return encoding != null && encoding.startsWith("Default") ? null : encoding; //$NON-NLS-1$
-       }
-
-       /**
-        * Returns if or if not the selected encoding is supported.
-        *
-        * @return <code>True</code> if the selected encoding is supported.
-        */
-       protected boolean isEncodingValid() {
-               try {
-                       String encoding = getEncoding();
-                       return Charset.isSupported(encoding != null ? encoding : "ISO-8859-1"); //$NON-NLS-1$
-               } catch (IllegalCharsetNameException e) {
-                       return false;
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/preferences/PreferencePage.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/preferences/PreferencePage.java
deleted file mode 100644 (file)
index c3114c9..0000000
+++ /dev/null
@@ -1,678 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2016 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.terminal.view.ui.preferences;
-
-import java.io.File;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.URIUtil;
-import org.eclipse.core.variables.IStringVariableManager;
-import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-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.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Group;
-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.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.controls.NoteCompositeHelper;
-import org.eclipse.tm.terminal.view.ui.interfaces.IExternalExecutablesProperties;
-import org.eclipse.tm.terminal.view.ui.interfaces.IPreferenceKeys;
-import org.eclipse.tm.terminal.view.ui.local.showin.ExternalExecutablesDialog;
-import org.eclipse.tm.terminal.view.ui.local.showin.ExternalExecutablesManager;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.osgi.framework.Bundle;
-
-/**
- * Terminal top preference page implementation.
- */
-public class PreferencePage extends org.eclipse.jface.preference.PreferencePage implements IWorkbenchPreferencePage {
-       /* default */ TableViewer viewer;
-       private Button addButton;
-       private Button editButton;
-       private Button removeButton;
-       /* default */ Combo workingDir;
-       private Button browseButton;
-
-       private Button variablesButton;
-       private boolean hasVariablesButton = false;
-
-       /* default */ Text command;
-       private Button commandBrowseButton;
-       private Text arguments;
-
-       /* default */ final List<Map<String, String>> executables = new ArrayList<Map<String, String>>();
-       /* default */ final Map<String, Image> images = new HashMap<String, Image>();
-
-       /* default */ static final Object[] NO_ELEMENTS = new Object[0];
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-        */
-       @Override
-       public void init(IWorkbench workbench) {
-               Bundle bundle = Platform.getBundle("org.eclipse.debug.ui"); //$NON-NLS-1$
-               if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
-                       hasVariablesButton = true;
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-        */
-       @Override
-       protected Control createContents(final Composite parent) {
-               final GC gc = new GC(parent);
-               gc.setFont(JFaceResources.getDialogFont());
-
-               Composite panel = new Composite(parent, SWT.NONE);
-               panel.setLayout(new GridLayout());
-               GridData layoutData = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
-               panel.setLayoutData(layoutData);
-
-               Label label = new Label(panel, SWT.HORIZONTAL);
-               label.setText(Messages.PreferencePage_label);
-               label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
-               if (!Platform.OS_WIN32.equals(Platform.getOS())) {
-                       Group group = new Group(panel, SWT.NONE);
-                       group.setText(Messages.PreferencePage_command_label);
-                       group.setLayout(new GridLayout(2, false));
-                       group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
-
-                       command = new Text(group, SWT.SINGLE | SWT.BORDER);
-                       command.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-                       command.addModifyListener(new ModifyListener() {
-                               @Override
-                               public void modifyText(ModifyEvent e) {
-                                       boolean valid = true;
-                                       String message = null;
-
-                                       String text = command.getText();
-                                       if (text != null && !"".equals(text.trim())) { //$NON-NLS-1$
-                                               IPath p = new Path(text.trim());
-                                               valid = p.toFile().isFile() && p.toFile().canRead() && p.toFile().canExecute();
-                                               if (!valid) message = Messages.PreferencePage_command_invalid;
-                                       }
-
-                                       setValid(valid);
-                                       setErrorMessage(message);
-                               }
-                       });
-
-                       commandBrowseButton = new Button(group, SWT.PUSH);
-                       commandBrowseButton.setText(Messages.PreferencePage_command_button_browse);
-                       layoutData = new GridData(SWT.FILL, SWT.CENTER, false, false);
-                       layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 14);
-                       commandBrowseButton.setLayoutData(layoutData);
-                       commandBrowseButton.addSelectionListener(new SelectionAdapter() {
-                               @Override
-                public void widgetSelected(SelectionEvent e) {
-                                       FileDialog dialog = new FileDialog(parent.getShell(), SWT.OPEN);
-
-                                       String text = command.getText();
-                                       if (text != null && !"".equals(text.trim())) { //$NON-NLS-1$
-                                               IPath p = new Path(text);
-
-                                               if (p.toFile().isFile() || !p.toFile().exists()) {
-                                                       dialog.setFilterPath(p.removeLastSegments(1).toOSString());
-                                                       dialog.setFileName(p.lastSegment());
-                                               } else if (p.toFile().isDirectory()) {
-                                                       dialog.setFilterPath(p.toOSString());
-                                               }
-                                       }
-
-                                       String selected = dialog.open();
-                                       if (selected != null) {
-                                               IPath sp = new Path(selected);
-                                               command.setText(sp.toOSString());
-                                       }
-                               }
-                       });
-
-                       String cmd = UIPlugin.getScopedPreferences().getString(IPreferenceKeys.PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX);
-                       if (cmd != null && !"".equals(cmd)) { //$NON-NLS-1$
-                               command.setText(new Path(cmd).toOSString());
-                       }
-
-                       Composite argsPanel = new Composite(group, SWT.NONE);
-                       GridLayout layout = new GridLayout(2, false);
-                       layout.marginHeight = 0; layout.marginWidth = 0;
-                       argsPanel.setLayout(layout);
-                       layoutData = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
-                       layoutData.horizontalSpan = 2;
-                       argsPanel.setLayoutData(layoutData);
-
-                       label = new Label(argsPanel, SWT.NONE);
-                       label.setText(Messages.PreferencePage_command_arguments_label);
-
-                       arguments = new Text(argsPanel, SWT.SINGLE | SWT.BORDER);
-                       arguments.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
-                       String args = UIPlugin.getScopedPreferences().getString(IPreferenceKeys.PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX_ARGS);
-                       if (args != null && !"".equals(args)) { //$NON-NLS-1$
-                               arguments.setText(args);
-                       }
-
-                       NoteCompositeHelper.createNoteComposite(group.getFont(), group, Messages.PreferencePage_command_note_label, Messages.PreferencePage_command_note_text);
-               }
-
-               Group group = new Group(panel, SWT.NONE);
-               group.setText(Messages.PreferencePage_workingDir_label);
-               group.setLayout(new GridLayout(hasVariablesButton ? 3 : 2, false));
-               group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
-
-               workingDir = new Combo(group, SWT.DROP_DOWN);
-               Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
-               if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
-                       workingDir.setItems(new String[] { Messages.PreferencePage_workingDir_userhome_label, Messages.PreferencePage_workingDir_eclipsehome_label, Messages.PreferencePage_workingDir_eclipsews_label });
-               } else {
-                       workingDir.setItems(new String[] { Messages.PreferencePage_workingDir_userhome_label, Messages.PreferencePage_workingDir_eclipsehome_label });
-               }
-               workingDir.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-               workingDir.select(0);
-               workingDir.addModifyListener(new ModifyListener() {
-                       @Override
-                       public void modifyText(ModifyEvent e) {
-                               boolean valid = true;
-                               String message = null;
-
-                               String text = workingDir.getText();
-                               if (text != null && !"".equals(text.trim()) //$NON-NLS-1$
-                                                       && !Messages.PreferencePage_workingDir_userhome_label.equals(text)
-                                                       && !Messages.PreferencePage_workingDir_eclipsehome_label.equals(text)
-                                                       && !Messages.PreferencePage_workingDir_eclipsews_label.equals(text)) {
-                                       try {
-                                               // Resolve possible dynamic variables
-                                               IStringVariableManager vm = VariablesPlugin.getDefault().getStringVariableManager();
-                                               String resolved = vm.performStringSubstitution(text.trim());
-
-                                               IPath p = new Path(resolved);
-                                               valid = p.toFile().canRead() && p.toFile().isDirectory();
-                                               if (!valid) message = Messages.PreferencePage_workingDir_invalid;
-                                       } catch (CoreException ex) {
-                                               valid = false;
-                                               message = ex.getLocalizedMessage();
-                                       }
-                               }
-
-                               setValid(valid);
-                               setErrorMessage(message);
-                       }
-               });
-
-               browseButton = new Button(group, SWT.PUSH);
-               browseButton.setText(Messages.PreferencePage_workingDir_button_browse);
-               layoutData = new GridData(SWT.FILL, SWT.CENTER, false, false);
-               layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 14);
-               browseButton.setLayoutData(layoutData);
-               browseButton.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               IPath uh = null;
-                               IPath eh = null;
-                               IPath ew = null;
-
-                               // HOME
-                               String home = System.getProperty("user.home"); //$NON-NLS-1$
-                               if (home != null && !"".equals(home)) uh = new Path(home); //$NON-NLS-1$
-
-                               // ECLIPSE_HOME
-                               String eclipseHomeLocation = System.getProperty("eclipse.home.location"); //$NON-NLS-1$
-                               if (eclipseHomeLocation != null) {
-                                       try {
-                                               URI uri = URIUtil.fromString(eclipseHomeLocation);
-                                               File f = URIUtil.toFile(uri);
-                                               eh = new Path(f.getAbsolutePath());
-                                       } catch (URISyntaxException ex) { /* ignored on purpose */ }
-                               }
-
-                               // ECLIPSE_WORKSPACE
-                               Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
-                               if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
-                               if (org.eclipse.core.resources.ResourcesPlugin.getWorkspace() != null
-                                                   && org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot() != null
-                                                   && org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot().getLocation() != null) {
-                                       ew = org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot().getLocation();
-                               }
-                               }
-
-                               DirectoryDialog dialog = new DirectoryDialog(parent.getShell(), SWT.OPEN);
-
-                               // Determine the filter path
-                               String text = workingDir.getText();
-                               if (Messages.PreferencePage_workingDir_userhome_label.equals(text)) {
-                                       dialog.setFilterPath(uh.toOSString());
-                               } else if (Messages.PreferencePage_workingDir_eclipsehome_label.equals(text)) {
-                                       dialog.setFilterPath(eh.toOSString());
-                               } else if (Messages.PreferencePage_workingDir_eclipsews_label.equals(text)) {
-                                       dialog.setFilterPath(ew.toOSString());
-                               } else if (text != null && !"".equals(text.trim())) { //$NON-NLS-1$
-                                       try {
-                                               // Resolve possible dynamic variables
-                                               IStringVariableManager vm = VariablesPlugin.getDefault().getStringVariableManager();
-                                               String resolved = vm.performStringSubstitution(text.trim());
-                                               dialog.setFilterPath(resolved);
-                                       } catch (CoreException ex) {
-                                               if (Platform.inDebugMode()) {
-                                                       UIPlugin.getDefault().getLog().log(ex.getStatus());
-                                               }
-                                       }
-                               }
-
-                               String selected = dialog.open();
-                               if (selected != null) {
-                                       IPath sp = new Path(selected);
-
-                                       if (uh.equals(sp)) {
-                                               workingDir.select(0);
-                                       } else if (eh.equals(sp)) {
-                                               workingDir.select(1);
-                                       } else if (ew.equals(sp)) {
-                                               workingDir.select(2);
-                                       } else {
-                                               workingDir.setText(sp.toOSString());
-                                       }
-                               }
-                       }
-               });
-
-               if (hasVariablesButton) {
-                       variablesButton = new Button(group, SWT.PUSH);
-                       variablesButton.setText(Messages.PreferencePage_workingDir_button_variables);
-                       layoutData = new GridData(SWT.FILL, SWT.CENTER, false, false);
-                       layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 14);
-                       variablesButton.setLayoutData(layoutData);
-                       variablesButton.addSelectionListener(new SelectionAdapter() {
-                               @Override
-                               public void widgetSelected(SelectionEvent e) {
-                                       org.eclipse.debug.ui.StringVariableSelectionDialog dialog = new org.eclipse.debug.ui.StringVariableSelectionDialog(getShell());
-                                       dialog.open();
-                                       String expression = dialog.getVariableExpression();
-                                       if (expression != null) {
-                                               if ("${eclipse_home}".equals(expression)) { //$NON-NLS-1$
-                                                       workingDir.select(1);
-                                               } else if ("${workspace_loc}".equals(expression)) { //$NON-NLS-1$
-                                                       workingDir.select(2);
-                                               } else {
-                                                       workingDir.setText(expression);
-                                               }
-                                       }
-                               }
-                       });
-               }
-
-               String initialCwd = UIPlugin.getScopedPreferences().getString(IPreferenceKeys.PREF_LOCAL_TERMINAL_INITIAL_CWD);
-               if (initialCwd == null || IPreferenceKeys.PREF_INITIAL_CWD_USER_HOME.equals(initialCwd) || "".equals(initialCwd.trim())) { //$NON-NLS-1$
-                       workingDir.select(0);
-               } else if (IPreferenceKeys.PREF_INITIAL_CWD_ECLIPSE_HOME.equals(initialCwd) || "${eclipse_home}".equals(initialCwd)) { //$NON-NLS-1$
-                       workingDir.select(1);
-               } else if (IPreferenceKeys.PREF_INITIAL_CWD_ECLIPSE_WS.equals(initialCwd) || "${workspace_loc}".equals(initialCwd)) { //$NON-NLS-1$
-                       workingDir.select(2);
-               } else {
-                       workingDir.setText(new Path(initialCwd).toOSString());
-               }
-
-               NoteCompositeHelper.createNoteComposite(group.getFont(), group, Messages.PreferencePage_workingDir_note_label, Messages.PreferencePage_workingDir_note_text);
-
-               group = new Group(panel, SWT.NONE);
-               group.setText(Messages.PreferencePage_executables_label);
-               group.setLayout(new GridLayout(2, false));
-               group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
-
-               viewer = new TableViewer(group, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
-
-               Table table = viewer.getTable();
-               table.setHeaderVisible(true);
-               table.setLinesVisible(true);
-
-        TableColumn column = new TableColumn(table, SWT.LEFT);
-        column.setText(Messages.PreferencePage_executables_column_name_label);
-        column = new TableColumn(table, SWT.LEFT);
-        column.setText(Messages.PreferencePage_executables_column_path_label);
-
-               ColumnViewerToolTipSupport.enableFor(viewer);
-
-               TableLayout tableLayout = new TableLayout();
-               tableLayout.addColumnData(new ColumnWeightData(35));
-               tableLayout.addColumnData(new ColumnWeightData(65));
-               table.setLayout(tableLayout);
-
-               layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
-               layoutData.heightHint = Dialog.convertHeightInCharsToPixels(gc.getFontMetrics(), 10);
-               table.setLayoutData(layoutData);
-
-               Composite buttonsPanel = new Composite(group, SWT.NONE);
-               GridLayout layout = new GridLayout();
-               layout.marginHeight = 0; layout.marginWidth = 0;
-               buttonsPanel.setLayout(layout);
-               buttonsPanel.setLayoutData(new GridData(SWT.LEAD, SWT.BEGINNING, false, false));
-
-               addButton = new Button(buttonsPanel, SWT.PUSH);
-               addButton.setText(Messages.PreferencePage_executables_button_add_label);
-               layoutData = new GridData(SWT.FILL, SWT.CENTER, false, false);
-               layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 10);
-               addButton.setLayoutData(layoutData);
-               addButton.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               ExternalExecutablesDialog dialog = new ExternalExecutablesDialog(PreferencePage.this.getShell(), false);
-                               if (dialog.open() == Window.OK) {
-                                       // Get the executable properties and add it to the the list
-                                       Map<String, String> executableData = dialog.getExecutableData();
-                                       if (executableData != null && !executables.contains(executableData)) {
-                                               executables.add(executableData);
-                                               viewer.refresh();
-                                       }
-                               }
-                       }
-               });
-
-               editButton = new Button(buttonsPanel, SWT.PUSH);
-               editButton.setText(Messages.PreferencePage_executables_button_edit_label);
-               layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-               layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 10);
-               editButton.setLayoutData(layoutData);
-               editButton.addSelectionListener(new SelectionAdapter() {
-                       @SuppressWarnings("unchecked")
-            @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               ISelection s = viewer.getSelection();
-                               if (s instanceof IStructuredSelection && !s.isEmpty()) {
-                                       Object element = ((IStructuredSelection)s).getFirstElement();
-                                       if (element instanceof Map) {
-                                               final Map<String, String> m = (Map<String, String>)element;
-                                               ExternalExecutablesDialog dialog = new ExternalExecutablesDialog(PreferencePage.this.getShell(), true);
-                                               dialog.setExecutableData(m);
-                                               if (dialog.open() == Window.OK) {
-                                                       Map<String, String> executableData = dialog.getExecutableData();
-                                                       if (executableData != null) {
-                                                               m.clear();
-                                                               m.putAll(executableData);
-                                                               viewer.refresh();
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-               });
-
-               removeButton = new Button(buttonsPanel, SWT.PUSH);
-               removeButton.setText(Messages.PreferencePage_executables_button_remove_label);
-               layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-               layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 10);
-               removeButton.setLayoutData(layoutData);
-               removeButton.addSelectionListener(new SelectionAdapter() {
-                       @SuppressWarnings("unchecked")
-            @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               ISelection s = viewer.getSelection();
-                               if (s instanceof IStructuredSelection && !s.isEmpty()) {
-                                       Iterator<?> iterator = ((IStructuredSelection)s).iterator();
-                                       while (iterator.hasNext()) {
-                                               Object element = iterator.next();
-                                               if (element instanceof Map) {
-                                                       Map<String, Object> m = (Map<String, Object>)element;
-                                                       executables.remove(m);
-                                               }
-                                               viewer.refresh();
-                                       }
-                               }
-                       }
-               });
-
-               viewer.setContentProvider(new IStructuredContentProvider() {
-                       @Override
-                       public Object[] getElements(Object inputElement) {
-                               if (inputElement instanceof List && !((List<?>)inputElement).isEmpty()) {
-                                       return ((List<?>)inputElement).toArray();
-                               }
-                               return NO_ELEMENTS;
-                       }
-
-                       @Override
-                       public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-                       }
-
-                       @Override
-                       public void dispose() {
-                       }
-               });
-
-               viewer.setLabelProvider(new ITableLabelProvider() {
-                       @SuppressWarnings("unchecked")
-                       @Override
-                       public String getColumnText(Object element, int columnIndex) {
-                               if (element instanceof Map) {
-                    Map<String, Object> m = (Map<String, Object>)element;
-
-                    switch (columnIndex) {
-                    case 0:
-                       return (String)m.get(IExternalExecutablesProperties.PROP_NAME);
-                    case 1:
-                       return (String)m.get(IExternalExecutablesProperties.PROP_PATH);
-                    }
-                               }
-                               return null;
-                       }
-
-                       @SuppressWarnings("unchecked")
-            @Override
-                       public Image getColumnImage(Object element, int columnIndex) {
-                               Image i = null;
-
-                               if (element instanceof Map) {
-                                       switch (columnIndex) {
-                                       case 0:
-                           Map<String, Object> m = (Map<String, Object>)element;
-                                               String icon = (String) m.get(IExternalExecutablesProperties.PROP_ICON);
-                                               if (icon != null) {
-                                                       i = images.get(icon);
-                                                       if (i == null) {
-                                                               ImageData id = ExternalExecutablesManager.loadImage(icon);
-                                                               if (id != null) {
-                                                                       ImageDescriptor d = ImageDescriptor.createFromImageData(id);
-                                                                       if (d != null) i = d.createImage();
-                                                                       if (i != null) images.put(icon, i);
-                                                               }
-                                                       }
-                                               }
-                                               break;
-                                       case 1:
-                                               break;
-                                       }
-                               }
-
-                               return i;
-                       }
-
-                       @Override
-                       public void removeListener(ILabelProviderListener listener) {
-                       }
-
-                       @Override
-                       public boolean isLabelProperty(Object element, String property) {
-                               return false;
-                       }
-
-                       @Override
-                       public void dispose() {
-                       }
-
-                       @Override
-                       public void addListener(ILabelProviderListener listener) {
-                       }
-               });
-
-               List<Map<String, String>> l = ExternalExecutablesManager.load();
-               if (l != null) executables.addAll(l);
-
-               viewer.setInput(executables);
-
-               viewer.addPostSelectionChangedListener(new ISelectionChangedListener() {
-                       @Override
-                       public void selectionChanged(SelectionChangedEvent event) {
-                               updateButtons();
-                       }
-               });
-
-               updateButtons();
-
-               gc.dispose();
-
-               return panel;
-       }
-
-       /**
-        * Updates the button states.
-        */
-       protected void updateButtons() {
-               if (viewer != null) {
-                       addButton.setEnabled(true);
-
-                       ISelection selection = viewer.getSelection();
-
-                       boolean hasSelection = selection != null && !selection.isEmpty();
-                       int count = selection instanceof IStructuredSelection ? ((IStructuredSelection)selection).size() : 0;
-
-                       editButton.setEnabled(hasSelection && count == 1);
-                       removeButton.setEnabled(hasSelection && count > 0);
-               } else {
-                       addButton.setEnabled(false);
-                       editButton.setEnabled(false);
-                       removeButton.setEnabled(false);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
-        */
-       @Override
-       protected void performDefaults() {
-               if (!Platform.OS_WIN32.equals(Platform.getOS())) {
-                       command.setText(""); //$NON-NLS-1$
-                       arguments.setText(""); //$NON-NLS-1$
-               }
-
-               String initialCwd = UIPlugin.getScopedPreferences().getDefaultString(IPreferenceKeys.PREF_LOCAL_TERMINAL_INITIAL_CWD);
-               if (initialCwd == null || IPreferenceKeys.PREF_INITIAL_CWD_USER_HOME.equals(initialCwd) || "".equals(initialCwd.trim())) { //$NON-NLS-1$
-                       workingDir.select(0);
-               } else if (IPreferenceKeys.PREF_INITIAL_CWD_ECLIPSE_HOME.equals(initialCwd) || "${eclipse_home}".equals(initialCwd)) { //$NON-NLS-1$
-                       workingDir.select(1);
-               } else if (IPreferenceKeys.PREF_INITIAL_CWD_ECLIPSE_WS.equals(initialCwd) || "${workspace_loc}".equals(initialCwd)) { //$NON-NLS-1$
-                       workingDir.select(2);
-               } else {
-                       workingDir.setText(new Path(initialCwd).toOSString());
-               }
-
-               executables.clear();
-               List<Map<String, String>> l = ExternalExecutablesManager.load();
-               if (l != null) executables.addAll(l);
-               viewer.refresh();
-
-           super.performDefaults();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.preference.PreferencePage#performOk()
-        */
-       @Override
-       public boolean performOk() {
-               if (!Platform.OS_WIN32.equals(Platform.getOS())) {
-                       String text = command.getText();
-                       IPath p = new Path(text.trim());
-                       UIPlugin.getScopedPreferences().putString(IPreferenceKeys.PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX, p.toFile().isFile() && p.toFile().canRead() && p.toFile().canExecute() ? p.toOSString() : null);
-
-                       text = arguments.getText();
-                       UIPlugin.getScopedPreferences().putString(IPreferenceKeys.PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX_ARGS, !"".equals(text.trim()) ? text.trim() : null); //$NON-NLS-1$
-               }
-
-               String text = workingDir.getText();
-               if (text == null || Messages.PreferencePage_workingDir_userhome_label.equals(text) || "".equals(text.trim())) { //$NON-NLS-1$
-                       UIPlugin.getScopedPreferences().putString(IPreferenceKeys.PREF_LOCAL_TERMINAL_INITIAL_CWD, null);
-               } else if (Messages.PreferencePage_workingDir_eclipsehome_label.equals(text)) {
-                       UIPlugin.getScopedPreferences().putString(IPreferenceKeys.PREF_LOCAL_TERMINAL_INITIAL_CWD, IPreferenceKeys.PREF_INITIAL_CWD_ECLIPSE_HOME);
-               } else if (Messages.PreferencePage_workingDir_eclipsews_label.equals(text)) {
-                       UIPlugin.getScopedPreferences().putString(IPreferenceKeys.PREF_LOCAL_TERMINAL_INITIAL_CWD, IPreferenceKeys.PREF_INITIAL_CWD_ECLIPSE_WS);
-               } else {
-                       try {
-                               // Resolve possible dynamic variables
-                               IStringVariableManager vm = VariablesPlugin.getDefault().getStringVariableManager();
-                               String resolved = vm.performStringSubstitution(text.trim());
-
-                               IPath p = new Path(resolved);
-                               UIPlugin.getScopedPreferences().putString(IPreferenceKeys.PREF_LOCAL_TERMINAL_INITIAL_CWD, p.toFile().canRead() && p.toFile().isDirectory() ? text.trim() : null);
-                       } catch (CoreException e) {
-                               if (Platform.inDebugMode()) {
-                                       UIPlugin.getDefault().getLog().log(e.getStatus());
-                               }
-                       }
-               }
-
-               ExternalExecutablesManager.save(executables);
-
-           return super.performOk();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.DialogPage#dispose()
-        */
-       @Override
-       public void dispose() {
-               for (Image i : images.values()) {
-                       i.dispose();
-               }
-               images.clear();
-           super.dispose();
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/preferences/PreferencesInitializer.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/preferences/PreferencesInitializer.java
deleted file mode 100644 (file)
index 1c79e02..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2016 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
- * Dirk Fauth <dirk.fauth@googlemail.com> - Bug 460496
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.tm.terminal.view.core.preferences.ScopedEclipsePreferences;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.IPreferenceKeys;
-
-/**
- * Terminal default preferences initializer.
- */
-public class PreferencesInitializer extends AbstractPreferenceInitializer {
-
-       /**
-        * Constructor.
-        */
-       public PreferencesInitializer() {
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-        */
-       @Override
-       public void initializeDefaultPreferences() {
-               ScopedEclipsePreferences prefs = UIPlugin.getScopedPreferences();
-
-               prefs.putDefaultBoolean(IPreferenceKeys.PREF_REMOVE_TERMINATED_TERMINALS, true);
-
-               prefs.putDefaultString(IPreferenceKeys.PREF_LOCAL_TERMINAL_INITIAL_CWD, IPreferenceKeys.PREF_INITIAL_CWD_USER_HOME);
-               prefs.putDefaultString(IPreferenceKeys.PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX, null);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/services/TerminalService.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/services/TerminalService.java
deleted file mode 100644 (file)
index c69bdda..0000000
+++ /dev/null
@@ -1,359 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.services;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.terminal.view.core.activator.CoreBundleActivator;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalTabListener;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate;
-import org.eclipse.tm.terminal.view.ui.interfaces.IUIConstants;
-import org.eclipse.tm.terminal.view.ui.launcher.LauncherDelegateManager;
-import org.eclipse.tm.terminal.view.ui.manager.ConsoleManager;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Terminal service implementation.
- */
-@SuppressWarnings("restriction")
-public class TerminalService implements ITerminalService {
-       /**
-        * The registered terminal tab dispose listeners.
-        */
-       private final ListenerList terminalTabListeners = new ListenerList();
-
-       // Flag to remember if the terminal view has been restored or not.
-       private boolean fRestoringView;
-
-       // Terminal tab events
-
-       /**
-        * A terminal tab got disposed.
-        */
-       public static final int TAB_DISPOSED = 1;
-
-       /**
-        * Common terminal service runnable implementation.
-        */
-       protected static abstract class TerminalServiceRunnable {
-
-               /**
-                * Invoked to execute the terminal service runnable.
-                *
-                * @param id The terminals view id or <code>null</code>.
-                * @param secondaryId The terminals view secondary id or <code>null</code>.
-                * @param title The terminal tab title. Must not be <code>null</code>.
-                * @param connector The terminal connector. Must not be <code>null</code>.
-                * @param data The custom terminal data node or <code>null</code>.
-                * @param done The callback to invoke if the operation finished or <code>null</code>.
-                */
-               public abstract void run(String id, String secondaryId, String title, ITerminalConnector connector, Object data, Done done);
-
-               /**
-                * Returns if or if not to execute the runnable asynchronously.
-                * <p>
-                * The method returns per default <code>true</code>. Overwrite to
-                * modify the behavior.
-                *
-                * @return <code>True</code> to execute the runnable asynchronously, <code>false</code> otherwise.
-                */
-               public boolean isExecuteAsync() { return true; }
-       }
-
-       /**
-     * Constructor
-     */
-    public TerminalService() {
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.tm.terminal.view.core.interfaces.ITerminalService#addTerminalTabListener(org.eclipse.tm.terminal.view.core.interfaces.ITerminalTabListener)
-     */
-    @Override
-    public final void addTerminalTabListener(ITerminalTabListener listener) {
-               Assert.isNotNull(listener);
-               terminalTabListeners.add(listener);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.tm.terminal.view.core.interfaces.ITerminalService#removeTerminalTabListener(org.eclipse.tm.terminal.view.core.interfaces.ITerminalTabListener)
-     */
-    @Override
-    public final void removeTerminalTabListener(ITerminalTabListener listener) {
-               Assert.isNotNull(listener);
-               terminalTabListeners.remove(listener);
-    }
-
-       /**
-        * Convenience method for notifying the registered terminal tab listeners.
-        *
-        * @param event The terminal tab event.
-        * @param source The disposed tab item. Must not be <code>null</code>.
-        * @param data The custom data object associated with the disposed tab item or <code>null</code>.
-        */
-       public final void fireTerminalTabEvent(final int event, final Object source, final Object data) {
-               Assert.isNotNull(source);
-
-               // If no listener is registered, we are done here
-               if (terminalTabListeners.isEmpty()) return;
-
-               // Get the list or currently registered listeners
-               Object[] l = terminalTabListeners.getListeners();
-               // Loop the registered terminal tab listeners and invoke the proper method
-               for (int i = 0; i < l.length; i++) {
-                       final ITerminalTabListener listener = (ITerminalTabListener) l[i];
-                       ISafeRunnable job = new ISafeRunnable() {
-                               @Override
-                               public void handleException(Throwable exception) {
-                                       // already logged in Platform#run()
-                               }
-
-                               @Override
-                               public void run() throws Exception {
-                                       switch (event) {
-                                       case TAB_DISPOSED:
-                                               listener.terminalTabDisposed(source, data);
-                                               break;
-                                       default:
-                                       }
-                               }
-                       };
-                       SafeRunner.run(job);
-               }
-       }
-
-       /**
-        * Executes the given runnable operation and invokes the given callback, if any,
-        * after the operation finished.
-        *
-        * @param properties The terminal properties. Must not be <code>null</code>.
-        * @param runnable The terminal service runnable. Must not be <code>null</code>.
-        * @param done The callback to invoke if the operation has been finished or <code>null</code>.
-        */
-       protected final void executeServiceOperation(final Map<String, Object> properties, final TerminalServiceRunnable runnable, final Done done) {
-               Assert.isNotNull(properties);
-               Assert.isNotNull(runnable);
-
-               // Extract the properties
-               String id = (String)properties.get(ITerminalsConnectorConstants.PROP_ID);
-               String secondaryId = (String)properties.get(ITerminalsConnectorConstants.PROP_SECONDARY_ID);
-               String title = (String)properties.get(ITerminalsConnectorConstants.PROP_TITLE);
-               Object data = properties.get(ITerminalsConnectorConstants.PROP_DATA);
-
-               // Normalize the terminals console view id
-               id = normalizeId(id, data);
-               // Normalize the terminal console tab title
-               title = normalizeTitle(title, data);
-
-               // Create the terminal connector instance
-               final ITerminalConnector connector = createTerminalConnector(properties);
-               if (connector == null) {
-                       // Properties contain invalid connector arguments
-                       if (done != null) {
-                               Exception e = new IllegalArgumentException(Messages.TerminalService_error_cannotCreateConnector);
-                               done.done(new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(), e.getLocalizedMessage(), e));
-                       }
-                       return;
-               }
-
-               // Finalize the used variables
-               final String finId = id;
-               final String finSecondaryId = secondaryId;
-               final String finTitle = title;
-               final Object finData = data;
-
-               // Execute the operation
-               if (!runnable.isExecuteAsync()) {
-                       runnable.run(finId, finSecondaryId, finTitle, connector, finData, done);
-               }
-               else {
-               try {
-                   Display display = PlatformUI.getWorkbench().getDisplay();
-                   display.asyncExec(new Runnable() {
-                                       @Override
-                       public void run() {
-                                               runnable.run(finId, finSecondaryId, finTitle, connector, finData, done);
-                                       }
-                               });
-               }
-               catch (Exception e) {
-                   // if display is disposed, silently ignore.
-               }
-               }
-       }
-
-       /**
-        * Normalize the terminals view id.
-        *
-        * @param id The terminals view id or <code>null</code>.
-        * @param data The custom data object or <code>null</code>.
-        *
-        * @return The normalized terminals console view id.
-        */
-       protected String normalizeId(String id, Object data) {
-               return id != null ? id : IUIConstants.ID;
-       }
-
-       /**
-        * Normalize the terminal tab title.
-        *
-        * @param title The terminal tab title or <code>null</code>.
-        * @param data The custom data object or <code>null</code>.
-        *
-        * @return The normalized terminal tab title.
-        */
-       protected String normalizeTitle(String title, Object data) {
-               // If the title is explicitly specified, return as is
-               if (title != null) return title;
-
-               // Return the default console title in all other cases
-               return Messages.TerminalService_defaultTitle;
-       }
-
-       /**
-        * Creates the terminal connector configured within the given properties.
-        *
-        * @param properties The terminal console properties. Must not be <code>null</code>.
-        * @return The terminal connector or <code>null</code>.
-        */
-       protected ITerminalConnector createTerminalConnector(Map<String, Object> properties) {
-               Assert.isNotNull(properties);
-
-               // The terminal connector result object
-               ITerminalConnector connector = null;
-
-               // Get the launcher delegate id from the properties
-               String delegateId = (String)properties.get(ITerminalsConnectorConstants.PROP_DELEGATE_ID);
-               if (delegateId != null) {
-                       // Get the launcher delegate
-                       ILauncherDelegate delegate = LauncherDelegateManager.getInstance().getLauncherDelegate(delegateId, false);
-                       if (delegate != null) {
-                               // Create the terminal connector
-                               connector = delegate.createTerminalConnector(properties);
-                       }
-               }
-
-               return connector;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.core.interfaces.ITerminalService#openConsole(java.util.Map, org.eclipse.tm.terminal.view.core.interfaces.ITerminalService.Done)
-        */
-       @Override
-    public void openConsole(final Map<String, Object> properties, final Done done) {
-               Assert.isNotNull(properties);
-               final boolean restoringView = fRestoringView;
-
-               executeServiceOperation(properties, new TerminalServiceRunnable() {
-                       @Override
-                       @SuppressWarnings("synthetic-access")
-                       public void run(final String id, final String secondaryId, final String title,
-                                                       final ITerminalConnector connector, final Object data, final Done done) {
-                               if (restoringView) {
-                                       doRun(id, secondaryId, title, connector, data, done);
-                               } else {
-                                       // First, restore the view. This opens consoles from the memento
-                                       fRestoringView = true;
-                                       ConsoleManager.getInstance().showConsoleView(id, secondaryId);
-                                       fRestoringView = false;
-
-                                       // After that schedule opening the requested console
-                               try {
-                                   Display display = PlatformUI.getWorkbench().getDisplay();
-                                   display.asyncExec(new Runnable() {
-                                                       @Override
-                                                       public void run() {
-                                                               doRun(id, secondaryId, title, connector, data, done);
-                                                       }
-                                               });
-                               }
-                               catch (Exception e) {
-                                   // if display is disposed, silently ignore.
-                               }
-                               }
-                       }
-
-                       public void doRun(String id, String secondaryId, String title, ITerminalConnector connector, Object data, Done done) {
-                               // Determine the terminal encoding
-                               String encoding = (String)properties.get(ITerminalsConnectorConstants.PROP_ENCODING);
-                               // Create the flags to pass on to openConsole
-                               Map<String, Boolean> flags = new HashMap<String, Boolean>();
-                               flags.put("activate", Boolean.TRUE); //$NON-NLS-1$
-                               if (properties.get(ITerminalsConnectorConstants.PROP_FORCE_NEW) instanceof Boolean) {
-                                       flags.put(ITerminalsConnectorConstants.PROP_FORCE_NEW, (Boolean)properties.get(ITerminalsConnectorConstants.PROP_FORCE_NEW));
-                               }
-                               if (properties.get(ITerminalsConnectorConstants.PROP_DATA_NO_RECONNECT) instanceof Boolean) {
-                                       flags.put(ITerminalsConnectorConstants.PROP_DATA_NO_RECONNECT, (Boolean)properties.get(ITerminalsConnectorConstants.PROP_DATA_NO_RECONNECT));
-                               }
-                               // Open the new console
-                               CTabItem item;
-                               if (secondaryId != null)
-                                       item = ConsoleManager.getInstance().openConsole(id, secondaryId, title, encoding, connector, data, flags);
-                               else
-                                       item = ConsoleManager.getInstance().openConsole(id, title, encoding, connector, data, flags);
-                               // Associate the original terminal properties with the tab item.
-                               // This makes it easier to persist the connection data within the memento handler
-                               if (item != null && !item.isDisposed()) item.setData("properties", properties); //$NON-NLS-1$
-
-                               // Invoke the callback
-                               if (done != null) done.done(Status.OK_STATUS);
-                       }
-               }, done);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.core.interfaces.ITerminalService#closeConsole(java.util.Map, org.eclipse.tm.terminal.view.core.interfaces.ITerminalService.Done)
-        */
-       @Override
-    public void closeConsole(final Map<String, Object> properties, final Done done) {
-               Assert.isNotNull(properties);
-
-               executeServiceOperation(properties, new TerminalServiceRunnable() {
-                       @Override
-                       public void run(String id, String secondaryId, String title, ITerminalConnector connector, Object data, Done done) {
-                               // Close the console
-                               ConsoleManager.getInstance().closeConsole(id, title, connector, data);
-                               // Invoke the callback
-                               if (done != null) done.done(Status.OK_STATUS);
-                       }
-               }, done);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.core.interfaces.ITerminalService#terminateConsole(java.util.Map, org.eclipse.tm.terminal.view.core.interfaces.ITerminalService.Done)
-        */
-       @Override
-       public void terminateConsole(Map<String, Object> properties, Done done) {
-               Assert.isNotNull(properties);
-
-               executeServiceOperation(properties, new TerminalServiceRunnable() {
-                       @Override
-                       public void run(String id, String secondaryId, String title, ITerminalConnector connector, Object data, Done done) {
-                               // Close the console
-                               ConsoleManager.getInstance().terminateConsole(id, title, connector, data);
-                               // Invoke the callback
-                               if (done != null) done.done(Status.OK_STATUS);
-                       }
-               }, done);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/AbstractStreamsConnector.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/AbstractStreamsConnector.java
deleted file mode 100644 (file)
index 53ec987..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.streams;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalServiceOutputStreamMonitorListener;
-import org.eclipse.ui.services.IDisposable;
-
-/**
- * Streams connector implementation.
- */
-public abstract class AbstractStreamsConnector extends TerminalConnectorImpl {
-       // Reference to the stdin monitor
-    private InputStreamMonitor stdInMonitor;
-    // Reference to the stdout monitor
-    private OutputStreamMonitor stdOutMonitor;
-    // Reference to the stderr monitor
-    private OutputStreamMonitor stdErrMonitor;
-
-    // Reference to the list of stdout output listeners
-    private ITerminalServiceOutputStreamMonitorListener[] stdoutListeners = null;
-    // Reference to the list of stderr output listeners
-    private ITerminalServiceOutputStreamMonitorListener[] stderrListeners = null;
-
-    /**
-     * Set the list of stdout listeners.
-     *
-     * @param listeners The list of stdout listeners or <code>null</code>.
-     */
-    protected final void setStdoutListeners(ITerminalServiceOutputStreamMonitorListener[] listeners) {
-       this.stdoutListeners = listeners;
-    }
-
-    /**
-     * Set the list of stderr listeners.
-     *
-     * @param listeners The list of stderr listeners or <code>null</code>.
-     */
-    protected final void setStderrListeners(ITerminalServiceOutputStreamMonitorListener[] listeners) {
-       this.stderrListeners = listeners;
-    }
-
-    /**
-     * Connect the given streams. The streams connector will wrap each stream
-     * with a corresponding terminal stream monitor.
-     *
-     * @param terminalControl The terminal control. Must not be <code>null</code>.
-     * @param stdin The stdin stream or <code>null</code>.
-     * @param stdout The stdout stream or <code>null</code>.
-     * @param stderr The stderr stream or <code>null</code>.
-        * @param localEcho Local echo on or off.
-        * @param lineSeparator The line separator used by the stream.
-     */
-    protected void connectStreams(ITerminalControl terminalControl, OutputStream stdin, InputStream stdout, InputStream stderr, boolean localEcho, String lineSeparator) {
-       Assert.isNotNull(terminalControl);
-
-       // Create the input stream monitor
-       if (stdin != null) {
-               stdInMonitor = createStdInMonitor(terminalControl, stdin, localEcho, lineSeparator);
-               // Register the connector if it implements IDisposable and stdout/stderr are not monitored
-               if (stdout == null && stderr == null && this instanceof IDisposable) stdInMonitor.addDisposable((IDisposable)this);
-               // Start the monitoring
-               stdInMonitor.startMonitoring();
-       }
-
-       // Create the output stream monitor
-       if (stdout != null) {
-               stdOutMonitor = createStdOutMonitor(terminalControl, stdout, lineSeparator);
-               // Register the connector if it implements IDisposable
-               if (this instanceof IDisposable) stdOutMonitor.addDisposable((IDisposable)this);
-               // Register the listeners
-               if (stdoutListeners != null) {
-                       for (ITerminalServiceOutputStreamMonitorListener l : stdoutListeners) {
-                               stdOutMonitor.addListener(l);
-                       }
-               }
-               // Start the monitoring
-               stdOutMonitor.startMonitoring();
-       }
-
-       // Create the error stream monitor
-       if (stderr != null) {
-               stdErrMonitor = createStdErrMonitor(terminalControl, stderr, lineSeparator);
-               // Register the connector if it implements IDisposable and stdout is not monitored
-               if (stdout == null && this instanceof IDisposable) stdErrMonitor.addDisposable((IDisposable)this);
-               // Register the listeners
-               if (stderrListeners != null) {
-                       for (ITerminalServiceOutputStreamMonitorListener l : stderrListeners) {
-                               stdErrMonitor.addListener(l);
-                       }
-               }
-               // Start the monitoring
-               stdErrMonitor.startMonitoring();
-       }
-    }
-
-    /**
-     * Creates an stdin monitor for the given terminal control and stdin stream.
-     * Subclasses may override to create a specialized stream monitor.
-     *
-     * @param terminalControl The terminal control. Must not be <code>null</code>.
-     * @param stdin The stdin stream or <code>null</code>.
-        * @param localEcho Local echo on or off.
-        * @param lineSeparator The line separator used by the stream.
-        *
-     * @return input stream monitor
-     */
-    protected InputStreamMonitor createStdInMonitor(ITerminalControl terminalControl, OutputStream stdin, boolean localEcho, String lineSeparator) {
-        return new InputStreamMonitor(terminalControl, stdin, localEcho, lineSeparator);
-    }
-
-    /**
-     * Creates an stdout monitor for the given terminal control and stdout stream.
-     * Subclasses may override to create a specialized stream monitor.
-     *
-     * @param terminalControl The terminal control. Must not be <code>null</code>.
-     * @param stdout The stdout stream or <code>null</code>.
-        * @param lineSeparator The line separator used by the stream.
-        *
-     * @return output stream monitor
-     */
-    protected OutputStreamMonitor createStdOutMonitor(ITerminalControl terminalControl, InputStream stdout, String lineSeparator) {
-        return new OutputStreamMonitor(terminalControl, stdout, lineSeparator);
-    }
-
-    /**
-     * Creates an stderr monitor for the given terminal control and stderr stream.
-     * Subclasses may override to create a specialized stream monitor.
-     *
-     * @param terminalControl The terminal control. Must not be <code>null</code>.
-     * @param stderr The stderr stream or <code>null</code>.
-        * @param lineSeparator The line separator used by the stream.
-        *
-     * @return output stream monitor
-     */
-    protected OutputStreamMonitor createStdErrMonitor(ITerminalControl terminalControl, InputStream stderr, String lineSeparator) {
-        return new OutputStreamMonitor(terminalControl, stderr, lineSeparator);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl#doDisconnect()
-     */
-    @Override
-    protected void doDisconnect() {
-       // Dispose the streams
-        if (stdInMonitor != null) { stdInMonitor.dispose(); stdInMonitor = null; }
-        if (stdOutMonitor != null) { stdOutMonitor.dispose(); stdOutMonitor = null; }
-        if (stdErrMonitor != null) { stdErrMonitor.dispose(); stdErrMonitor = null; }
-
-       super.doDisconnect();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl#getTerminalToRemoteStream()
-     */
-       @Override
-       public OutputStream getTerminalToRemoteStream() {
-               return stdInMonitor;
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/InputStreamMonitor.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/InputStreamMonitor.java
deleted file mode 100644 (file)
index 45394e0..0000000
+++ /dev/null
@@ -1,366 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.streams;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Queue;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ILineSeparatorConstants;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.services.IDisposable;
-
-/**
- * Input stream monitor implementation.
- * <p>
- * <b>Note:</b> The input is coming <i>from</i> the terminal. Therefore, the input
- * stream monitor is attached to the stdin stream of the monitored (remote) process.
- */
-public class InputStreamMonitor extends OutputStream implements IDisposable {
-    // Reference to the parent terminal control
-       private final ITerminalControl terminalControl;
-
-       // Reference to the monitored (output) stream
-    private final OutputStream stream;
-
-    // Reference to the thread writing the stream
-    private volatile Thread thread;
-
-    // Flag to mark the monitor disposed. When disposed,
-    // no further data is written from the monitored stream.
-    private volatile boolean disposed;
-
-    // A list of object to dispose if this monitor is disposed
-    private final List<IDisposable> disposables = new ArrayList<IDisposable>();
-
-    // Queue to buffer the data to write to the output stream
-    private final Queue<byte[]> queue = new LinkedList<byte[]>();
-
-    // ***** Line separator replacement logic *****
-
-       private final static int TERMINAL_SENDS_CR = 0;
-       private final static int TERMINAL_SENDS_CRLF = 1;
-       private final static int PROGRAM_EXPECTS_LF = 0;
-       private final static int PROGRAM_EXPECTS_CRLF = 1;
-       private final static int PROGRAM_EXPECTS_CR = 2;
-       private final static int NO_CHANGE = 0;
-       private final static int CHANGE_CR_TO_LF = 1;
-       private final static int INSERT_LF_AFTER_CR = 2;
-       private final static int REMOVE_CR = 3;
-       private final static int REMOVE_LF = 4;
-
-       // CRLF conversion table:
-       //
-       // Expected line separator -->         |       LF        |        CRLF        |       CR       |
-       // ------------------------------------+-----------------+--------------------+----------------+
-       // Local echo off - control sends CR   | change CR to LF | insert LF after CR | no change      |
-       // ------------------------------------+-----------------+--------------------+----------------+
-       // Local echo on - control sends CRLF  | remove CR       | no change          | remove LF      |
-       //
-       private final static int[][] CRLF_REPLACEMENT = {
-
-               {CHANGE_CR_TO_LF, INSERT_LF_AFTER_CR, NO_CHANGE},
-               {REMOVE_CR, NO_CHANGE, REMOVE_LF}
-       };
-
-       private int replacement;
-
-    /**
-     * Constructor.
-     *
-     * @param terminalControl The parent terminal control. Must not be <code>null</code>.
-     * @param stream The stream. Must not be <code>null</code>.
-        * @param localEcho Local echo on or off.
-        * @param lineSeparator The line separator used by the stream.
-     */
-       public InputStreamMonitor(ITerminalControl terminalControl, OutputStream stream, boolean localEcho, String lineSeparator) {
-       super();
-
-       Assert.isNotNull(terminalControl);
-       this.terminalControl = terminalControl;
-       Assert.isNotNull(stream);
-        this.stream = stream;
-
-        // Determine the line separator replacement setting
-               int terminalSends = localEcho ? TERMINAL_SENDS_CRLF : TERMINAL_SENDS_CR;
-               if (lineSeparator == null) {
-                       replacement = NO_CHANGE;
-               } else {
-                       int programExpects;
-                       if (lineSeparator.equals(ILineSeparatorConstants.LINE_SEPARATOR_LF)) {
-                               programExpects = PROGRAM_EXPECTS_LF;
-                       }
-                       else if (lineSeparator.equals(ILineSeparatorConstants.LINE_SEPARATOR_CR)) {
-                               programExpects = PROGRAM_EXPECTS_CR;
-                       }
-                       else {
-                               programExpects = PROGRAM_EXPECTS_CRLF;
-                       }
-                       replacement = CRLF_REPLACEMENT[terminalSends][programExpects];
-               }
-
-    }
-
-       /**
-        * Returns the associated terminal control.
-        *
-        * @return The associated terminal control.
-        */
-       protected final ITerminalControl getTerminalControl() {
-               return terminalControl;
-       }
-
-       /**
-        * Adds the given disposable object to the list. The method will do nothing
-        * if either the disposable object is already part of the list or the monitor
-        * is disposed.
-        *
-        * @param disposable The disposable object. Must not be <code>null</code>.
-        */
-       public final void addDisposable(IDisposable disposable) {
-               Assert.isNotNull(disposable);
-               if (!disposed && !disposables.contains(disposable)) disposables.add(disposable);
-       }
-
-       /**
-        * Removes the disposable object from the list.
-        *
-        * @param disposable The disposable object. Must not be <code>null</code>.
-        */
-       public final void removeDisposable(IDisposable disposable) {
-               Assert.isNotNull(disposable);
-               disposables.remove(disposable);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.services.IDisposable#dispose()
-        */
-       @Override
-       public void dispose() {
-               // If already disposed --> return immediately
-               if (disposed) return;
-
-               // Mark the monitor disposed
-       disposed = true;
-
-        // Close the stream (ignore exceptions on close)
-        try { stream.close(); } catch (IOException e) { /* ignored on purpose */ }
-        // And interrupt the thread
-        close();
-
-        // Dispose all registered disposable objects
-        for (IDisposable disposable : disposables) disposable.dispose();
-        // Clear the list
-        disposables.clear();
-       }
-
-    /**
-     * Close the terminal input stream monitor.
-     */
-    @Override
-       public void close() {
-       // Not initialized -> return immediately
-       if (thread == null) return;
-
-       // Copy the reference
-       final Thread oldThread = thread;
-       // Unlink the monitor from the thread
-       thread = null;
-       // And interrupt the writer thread
-       oldThread.interrupt();
-    }
-
-    /**
-     * Starts the terminal output stream monitor.
-     */
-    public void startMonitoring() {
-       // If already initialized -> return immediately
-       if (thread != null) return;
-
-       // Create a new runnable which is constantly reading from the stream
-       Runnable runnable = new Runnable() {
-               @Override
-                       public void run() {
-                       writeStream();
-               }
-       };
-
-       // Create the writer thread
-       thread = new Thread(runnable, "Terminal Input Stream Monitor Thread"); //$NON-NLS-1$
-
-       // Configure the writer thread
-        thread.setDaemon(true);
-
-        // Start the processing
-        thread.start();
-    }
-
-
-    /**
-     * Reads from the queue and writes the read content to the stream.
-     */
-    protected void writeStream() {
-       // Read from the queue and write to the stream until disposed
-        outer: while (thread != null && !disposed) {
-            byte[] data;
-                       // If the queue is empty, wait until notified
-               synchronized(queue) {
-                       while (queue.isEmpty()) {
-                               if (disposed) break outer;
-                                       try {
-                                               queue.wait();
-                                       } catch (InterruptedException e) {
-                                               break outer;
-                                       }
-                       }
-                       // Retrieves the queue head (is null if queue is empty (should never happen))
-                       data = queue.poll();
-               }
-            if (data != null) {
-               try {
-                       // Break up writes into max 1000 byte junks to avoid console input buffer overflows on Windows
-                       int written = 0;
-                       byte[] buf = new byte[1000];
-                       while (written < data.length) {
-                               int len = Math.min(buf.length, data.length - written);
-                               System.arraycopy(data, written, buf, 0, len);
-                               // Write the data to the stream
-                               stream.write(buf, 0, len);
-                                               written += len;
-                               // Flush the stream immediately
-                               stream.flush();
-                               // Wait a little between writes to allow input being processed
-                               if (written < data.length)
-                                       Thread.sleep(100);
-                       }
-               } catch (IOException e) {
-                       // IOException received. If this is happening when already disposed -> ignore
-                               if (!disposed) {
-                                       IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(),
-                                                                                               NLS.bind(Messages.InputStreamMonitor_error_writingToStream, e.getLocalizedMessage()), e);
-                                       UIPlugin.getDefault().getLog().log(status);
-                               }
-               }
-                catch (InterruptedException e) {
-                       break;
-                }
-            }
-        }
-
-        // Dispose the stream
-        dispose();
-    }
-
-       /* (non-Javadoc)
-        * @see java.io.OutputStream#write(int)
-        */
-    @Override
-    public void write(int b) throws IOException {
-        synchronized(queue) {
-            queue.add(new byte[] { (byte)b });
-            queue.notifyAll();
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see java.io.OutputStream#write(byte[], int, int)
-     */
-    @Override
-    public void write(byte[] b, int off, int len) throws IOException {
-       // Write the whole block to the queue to avoid synchronization
-       // to happen for every byte. To do so, we have to avoid calling
-       // the super method. Therefore we have to do the same checking
-       // here as the base class does.
-
-       // Null check. See the implementation in OutputStream.
-       if (b == null) throw new NullPointerException();
-
-       // Boundary check. See the implementation in OutputStream.
-       if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) > b.length) || ((off + len) < 0)) {
-               throw new IndexOutOfBoundsException();
-       }
-       else if (len == 0) {
-               return;
-       }
-
-        // Make sure that the written block is not interlaced with other input.
-        synchronized(queue) {
-               // Preprocess the block to be written
-               byte[] processedBytes = onWriteContentToStream(b, off, len);
-               // If the returned array is not the original one, adjust offset and length
-               if (processedBytes != b) {
-                       off = 0; len = processedBytes.length; b = processedBytes;
-               }
-
-               // Get the content from the byte buffer specified by offset and length
-               byte[] bytes = new byte[len];
-               int j = 0;
-               for (int i = 0 ; i < len ; i++) {
-                   bytes[j++] = b[off + i];
-               }
-
-               queue.add(bytes);
-               queue.notifyAll();
-        }
-    }
-
-    /**
-     * Allow for processing of data from byte stream from the terminal before
-     * it is written to the output stream. If the returned byte array is different
-     * than the one that was passed in with the bytes argument, then the
-     * length value will be adapted.
-     *
-     * @param bytes The byte stream. Must not be <code>null</code>.
-     * @param off The offset.
-     * @param len the length.
-     *
-     * @return The processed byte stream.
-     *
-     */
-    protected byte[] onWriteContentToStream(byte[] bytes, int off, int len) {
-       Assert.isNotNull(bytes);
-
-       if (replacement != NO_CHANGE && len > 0) {
-               String origText = new String(bytes, off, len);
-               String text = null;
-               //
-               // TODO: check whether this is correct! new String(byte[], int, int) always uses the default
-               //       encoding!
-
-               if (replacement == CHANGE_CR_TO_LF) {
-                       text = origText.replace('\r', '\n');
-               }
-               else if (replacement == INSERT_LF_AFTER_CR) {
-                       text = origText.replaceAll("\r\n|\r", "\r\n"); //$NON-NLS-1$ //$NON-NLS-2$
-               }
-               else if (replacement == REMOVE_CR) {
-                       text = origText.replaceAll(ILineSeparatorConstants.LINE_SEPARATOR_CR, ""); //$NON-NLS-1$
-               }
-               else if (replacement == REMOVE_LF) {
-                       text = origText.replaceAll(ILineSeparatorConstants.LINE_SEPARATOR_LF, ""); //$NON-NLS-1$
-               }
-
-               if (text != null && !origText.equals(text)) {
-                       bytes = text.getBytes();
-               }
-       }
-
-       return bytes;
-    }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/OutputStreamMonitor.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/OutputStreamMonitor.java
deleted file mode 100644 (file)
index b922210..0000000
+++ /dev/null
@@ -1,318 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.streams;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalServiceOutputStreamMonitorListener;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ILineSeparatorConstants;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.tracing.ITraceIds;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.services.IDisposable;
-
-/**
- * Output stream monitor implementation.
- * <p>
- * <b>Note:</b> The output is going <i>to</i> the terminal. Therefore, the output
- * stream monitor is attached to the stdout and/or stderr stream of the monitored
- * (remote) process.
- */
-public class OutputStreamMonitor implements IDisposable {
-       // The default buffer size to use
-    private static final int BUFFER_SIZE = 8192;
-
-    // Reference to the parent terminal control
-    private final ITerminalControl terminalControl;
-
-       // Reference to the monitored (input) stream
-    private final InputStream stream;
-
-    // The line separator used by the monitored (input) stream
-    private final String lineSeparator;
-
-    // Reference to the thread reading the stream
-    private Thread thread;
-
-    // Flag to mark the monitor disposed. When disposed,
-    // no further data is read from the monitored stream.
-    private boolean disposed;
-
-    // A list of object to dispose if this monitor is disposed
-    private final List<IDisposable> disposables = new ArrayList<IDisposable>();
-
-       // The list of registered listener
-       private final ListenerList listeners;
-
-    /**
-     * Constructor.
-     *
-     * @param terminalControl The parent terminal control. Must not be <code>null</code>.
-     * @param stream The stream. Must not be <code>null</code>.
-        * @param lineSeparator The line separator used by the stream.
-     */
-       public OutputStreamMonitor(ITerminalControl terminalControl, InputStream stream, String lineSeparator) {
-       super();
-
-       Assert.isNotNull(terminalControl);
-       this.terminalControl = terminalControl;
-       Assert.isNotNull(stream);
-        this.stream = new BufferedInputStream(stream, BUFFER_SIZE);
-
-        this.lineSeparator = lineSeparator;
-
-        this.listeners = new ListenerList();
-    }
-
-       /**
-        * Register a streams data receiver listener.
-        *
-        * @param listener The listener. Must not be <code>null</code>.
-        */
-       public final void addListener(ITerminalServiceOutputStreamMonitorListener listener) {
-               Assert.isNotNull(listener);
-               listeners.add(listener);
-       }
-
-       /**
-        * Unregister a streams data receiver listener.
-        *
-        * @param listener The listener. Must not be <code>null</code>.
-        */
-       public final void removeListener(ITerminalServiceOutputStreamMonitorListener listener) {
-               Assert.isNotNull(listener);
-               listeners.remove(listener);
-       }
-
-       /**
-        * Adds the given disposable object to the list. The method will do nothing
-        * if either the disposable object is already part of the list or the monitor
-        * is disposed.
-        *
-        * @param disposable The disposable object. Must not be <code>null</code>.
-        */
-       public final void addDisposable(IDisposable disposable) {
-               Assert.isNotNull(disposable);
-               if (!disposed && !disposables.contains(disposable)) disposables.add(disposable);
-       }
-
-       /**
-        * Removes the disposable object from the list.
-        *
-        * @param disposable The disposable object. Must not be <code>null</code>.
-        */
-       public final void removeDisposable(IDisposable disposable) {
-               Assert.isNotNull(disposable);
-               disposables.remove(disposable);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.services.IDisposable#dispose()
-        */
-    @Override
-       public void dispose() {
-               // If already disposed --> return immediately
-               if (disposed) return;
-
-               // Mark the monitor disposed
-       disposed = true;
-
-        // Close the stream (ignore exceptions on close)
-        try { stream.close(); } catch (IOException e) { /* ignored on purpose */ }
-
-        // Dispose all registered disposable objects
-        for (IDisposable disposable : disposables) disposable.dispose();
-        // Clear the list
-        disposables.clear();
-    }
-
-    /**
-     * Starts the terminal output stream monitor.
-     */
-    protected void startMonitoring() {
-       // If already initialized -> return immediately
-       if (thread != null) return;
-
-       // Create a new runnable which is constantly reading from the stream
-       Runnable runnable = new Runnable() {
-               @Override
-                       public void run() {
-                       readStream();
-               }
-       };
-
-       // Create the reader thread
-       thread = new Thread(runnable, "Terminal Output Stream Monitor Thread"); //$NON-NLS-1$
-
-       // Configure the reader thread
-        thread.setDaemon(true);
-        thread.setPriority(Thread.MIN_PRIORITY);
-
-        // Start the processing
-        thread.start();
-    }
-
-    /**
-     * Returns the terminal control that this stream monitor is associated with.
-     */
-    protected ITerminalControl getTerminalControl() {
-        return terminalControl;
-    }
-
-    /**
-     * Reads from the output stream and write the read content
-     * to the terminal control output stream.
-     */
-    void readStream() {
-       // Creates the read buffer
-        byte[] readBuffer = new byte[BUFFER_SIZE];
-
-        // We need to maintain UI responsiveness but still stream the content
-        // to the terminal control fast. Put the thread to a short sleep each second.
-        long sleepMarker = System.currentTimeMillis();
-
-        // Read from the stream until EOS is reached or the
-        // monitor is marked disposed.
-        int read = 0;
-        while (read >= 0 && !disposed) {
-            try {
-                               // Read from the stream
-                               read = stream.read(readBuffer);
-                               // If some data has been read, append to the terminal
-                               // control output stream
-                               if (read > 0) {
-                                       // Allow for post processing the read content before appending
-                    byte[] processedReadBuffer = onContentReadFromStream(readBuffer, read);
-                                   if (processedReadBuffer != readBuffer) {
-                                       read = processedReadBuffer.length;
-                                   }
-                                       terminalControl.getRemoteToTerminalOutputStream().write(processedReadBuffer, 0, read);
-                               }
-            } catch (IOException e) {
-               // IOException received. If this is happening when already disposed -> ignore
-                               if (!disposed) {
-                                       IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(),
-                                                                                               NLS.bind(Messages.OutputStreamMonitor_error_readingFromStream, e.getLocalizedMessage()), e);
-                                       UIPlugin.getDefault().getLog().log(status);
-                               }
-                break;
-            } catch (NullPointerException e) {
-                               // killing the stream monitor while reading can cause an NPE
-                               // when reading from the stream
-                               if (!disposed && thread != null) {
-                                       IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(),
-                                                                                               NLS.bind(Messages.OutputStreamMonitor_error_readingFromStream, e.getLocalizedMessage()), e);
-                                       UIPlugin.getDefault().getLog().log(status);
-                               }
-                               break;
-            }
-
-            // See above -> Thread will go to sleep each second
-            if (System.currentTimeMillis() - sleepMarker > 1000) {
-               sleepMarker = System.currentTimeMillis();
-                try { Thread.sleep(1); } catch (InterruptedException e) { /* ignored on purpose */ }
-            }
-        }
-
-        // Dispose ourself
-        dispose();
-    }
-
-    /**
-     * Allow for processing of data from byte stream after it is read from
-     * client but before it is appended to the terminal. If the returned byte
-     * array is different than the one that was passed in with the byteBuffer
-     * argument, then the bytesRead value will be ignored and the full
-     * returned array will be written out.
-     *
-     * @param byteBuffer The byte stream. Must not be <code>null</code>.
-     * @param bytesRead The number of bytes that were read into the read buffer.
-     * @return The processed byte stream.
-     *
-     */
-    protected byte[] onContentReadFromStream(byte[] byteBuffer, int bytesRead) {
-       Assert.isNotNull(byteBuffer);
-
-       // If tracing is enabled, print out the decimal byte values read
-       if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_OUTPUT_STREAM_MONITOR)) {
-               StringBuilder debug = new StringBuilder("byteBuffer [decimal, " + bytesRead + " bytes] : "); //$NON-NLS-1$ //$NON-NLS-2$
-               for (int i = 0; i < bytesRead; i++) {
-                       debug.append(Byte.valueOf(byteBuffer[i]).intValue());
-                       debug.append(' ');
-               }
-               System.out.println(debug.toString());
-       }
-
-       // Remember if the text got changed.
-       boolean changed = false;
-
-       // How can me make sure that we don't mess with the encoding here?
-               String text = new String(byteBuffer, 0, bytesRead);
-
-               // Shift-In (14) and Shift-Out(15) confuses the terminal widget
-               if (text.indexOf(14) != -1 || text.indexOf(15) != -1) {
-                       text = text.replaceAll("\\x0e", "").replaceAll("\\x0f", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-                       changed = true;
-               }
-
-               // Check on the line separator setting
-       if (lineSeparator != null
-                       && !ILineSeparatorConstants.LINE_SEPARATOR_CRLF.equals(lineSeparator)) {
-               String separator = ILineSeparatorConstants.LINE_SEPARATOR_LF.equals(lineSeparator) ? "\n" : "\r"; //$NON-NLS-1$ //$NON-NLS-2$
-               String separator2 = ILineSeparatorConstants.LINE_SEPARATOR_LF.equals(lineSeparator) ? "\r" : "\n"; //$NON-NLS-1$ //$NON-NLS-2$
-
-               if (text.indexOf(separator) != -1) {
-                       String[] fragments = text.split(separator);
-                       StringBuilder b = new StringBuilder();
-                       for (int i = 0; i < fragments.length; i++) {
-                               String fragment = fragments[i];
-                               String nextFragment = i + 1 < fragments.length ? fragments[i + 1] : null;
-                               b.append(fragment);
-                               if (fragment.endsWith(separator2) || (nextFragment != null && nextFragment.startsWith(separator2))) {
-                                       // Both separators are found, just add the original separator
-                                       b.append(separator);
-                               } else {
-                                       b.append("\n\r"); //$NON-NLS-1$
-                               }
-                       }
-                       if (!text.equals(b.toString())) {
-                               text = b.toString();
-                               changed = true;
-                       }
-               }
-       }
-
-       // If changed, get the new bytes array
-       if (changed) {
-               byteBuffer = text.getBytes();
-               bytesRead = byteBuffer.length;
-       }
-
-       // If listeners are registered, invoke the listeners now.
-       if (listeners.size() > 0) {
-               for (Object candidate : listeners.getListeners()) {
-                       if (!(candidate instanceof ITerminalServiceOutputStreamMonitorListener)) continue;
-                       ((ITerminalServiceOutputStreamMonitorListener)candidate).onContentReadFromStream(byteBuffer, bytesRead);
-               }
-       }
-
-       return byteBuffer;
-    }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/StreamsConnector.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/StreamsConnector.java
deleted file mode 100644 (file)
index 299ee0c..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.streams;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.NullSettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.ui.services.IDisposable;
-
-/**
- * Streams connector implementation.
- */
-public class StreamsConnector extends AbstractStreamsConnector implements IDisposable {
-       // Reference to the streams settings
-       private final StreamsSettings settings;
-
-       /**
-        * Constructor.
-        */
-       public StreamsConnector() {
-               this(new StreamsSettings());
-       }
-
-       /**
-        * Constructor.
-        *
-        * @param settings The streams settings. Must not be <code>null</code>
-        */
-       public StreamsConnector(StreamsSettings settings) {
-               super();
-
-               Assert.isNotNull(settings);
-               this.settings = settings;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl#connect(org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl)
-        */
-       @Override
-       public void connect(ITerminalControl control) {
-               Assert.isNotNull(control);
-               super.connect(control);
-
-               // Setup the listeners
-               setStdoutListeners(settings.getStdOutListeners());
-               setStderrListeners(settings.getStdErrListeners());
-
-               // connect the streams
-               connectStreams(control, settings.getStdinStream(), settings.getStdoutStream(), settings.getStderrStream(), settings.isLocalEcho(), settings.getLineSeparator());
-
-               // Set the terminal control state to CONNECTED
-               control.setState(TerminalState.CONNECTED);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl#isLocalEcho()
-        */
-       @Override
-       public boolean isLocalEcho() {
-               return settings.isLocalEcho();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.services.IDisposable#dispose()
-        */
-       @Override
-       public void dispose() {
-               disconnect();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.streams.AbstractStreamsConnector#doDisconnect()
-        */
-       @Override
-       public void doDisconnect() {
-               // Dispose the streams
-               super.doDisconnect();
-
-               // Set the terminal control state to CLOSED.
-               fControl.setState(TerminalState.CLOSED);
-       }
-
-       // ***** Process Connector settings handling *****
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl#getSettingsSummary()
-        */
-       @Override
-       public String getSettingsSummary() {
-               return ""; //$NON-NLS-1$
-       }
-
-       @Override
-       public void setDefaultSettings() {
-           settings.load(new NullSettingsStore());
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl#load(org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore)
-        */
-       @Override
-       public void load(ISettingsStore store) {
-               settings.load(store);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl#save(org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore)
-        */
-       @Override
-       public void save(ISettingsStore store) {
-               settings.save(store);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/StreamsLauncherDelegate.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/StreamsLauncherDelegate.java
deleted file mode 100644 (file)
index d9febb5..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.ui.streams;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalConnectorExtension;
-import org.eclipse.tm.terminal.view.core.TerminalServiceFactory;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalServiceOutputStreamMonitorListener;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.internal.SettingsStore;
-import org.eclipse.tm.terminal.view.ui.launcher.AbstractLauncherDelegate;
-
-/**
- * Streams launcher delegate implementation.
- */
-public class StreamsLauncherDelegate extends AbstractLauncherDelegate {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#needsUserConfiguration()
-        */
-       @Override
-       public boolean needsUserConfiguration() {
-               return false;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#getPanel(org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer)
-        */
-       @Override
-       public IConfigurationPanel getPanel(IConfigurationPanelContainer container) {
-               return null;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#execute(java.util.Map, org.eclipse.tm.terminal.view.core.interfaces.ITerminalService.Done)
-        */
-       @Override
-       public void execute(Map<String, Object> properties, ITerminalService.Done done) {
-               Assert.isNotNull(properties);
-
-               // Get the terminal service
-               ITerminalService terminal = TerminalServiceFactory.getService();
-               // If not available, we cannot fulfill this request
-               if (terminal != null) {
-                       terminal.openConsole(properties, done);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#createTerminalConnector(java.util.Map)
-        */
-    @Override
-       public ITerminalConnector createTerminalConnector(Map<String, Object> properties) {
-               Assert.isNotNull(properties);
-
-       // Check for the terminal connector id
-       String connectorId = (String)properties.get(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID);
-               if (connectorId == null) connectorId = "org.eclipse.tm.terminal.connector.streams.StreamsConnector"; //$NON-NLS-1$
-
-               // Extract the streams properties
-               OutputStream stdin = (OutputStream)properties.get(ITerminalsConnectorConstants.PROP_STREAMS_STDIN);
-               InputStream stdout = (InputStream)properties.get(ITerminalsConnectorConstants.PROP_STREAMS_STDOUT);
-               InputStream stderr = (InputStream)properties.get(ITerminalsConnectorConstants.PROP_STREAMS_STDERR);
-               Object value = properties.get(ITerminalsConnectorConstants.PROP_LOCAL_ECHO);
-               boolean localEcho =  value instanceof Boolean ? ((Boolean)value).booleanValue() : false;
-               String lineSeparator = (String)properties.get(ITerminalsConnectorConstants.PROP_LINE_SEPARATOR);
-               ITerminalServiceOutputStreamMonitorListener[] stdoutListeners = (ITerminalServiceOutputStreamMonitorListener[])properties.get(ITerminalsConnectorConstants.PROP_STDOUT_LISTENERS);
-               ITerminalServiceOutputStreamMonitorListener[] stderrListeners = (ITerminalServiceOutputStreamMonitorListener[])properties.get(ITerminalsConnectorConstants.PROP_STDERR_LISTENERS);
-
-               // Construct the terminal settings store
-               ISettingsStore store = new SettingsStore();
-
-               // Construct the streams settings
-               StreamsSettings streamsSettings = new StreamsSettings();
-               streamsSettings.setStdinStream(stdin);
-               streamsSettings.setStdoutStream(stdout);
-               streamsSettings.setStderrStream(stderr);
-               streamsSettings.setLocalEcho(localEcho);
-               streamsSettings.setLineSeparator(lineSeparator);
-               streamsSettings.setStdOutListeners(stdoutListeners);
-               streamsSettings.setStdErrListeners(stderrListeners);
-               // And save the settings to the store
-               streamsSettings.save(store);
-
-               // Construct the terminal connector instance
-               ITerminalConnector connector = TerminalConnectorExtension.makeTerminalConnector(connectorId);
-               if (connector != null) {
-                       // Apply default settings
-                       connector.setDefaultSettings();
-                       // And load the real settings
-                       connector.load(store);
-               }
-
-               return connector;
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/StreamsSettings.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/streams/StreamsSettings.java
deleted file mode 100644 (file)
index f794ef5..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.streams;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalServiceOutputStreamMonitorListener;
-import org.eclipse.tm.terminal.view.ui.internal.SettingsStore;
-
-/**
- * Streams connector settings implementation.
- */
-public class StreamsSettings {
-       // Reference to the stdin stream
-       private OutputStream stdin;
-       // Reference to the stdout stream
-       private InputStream stdout;
-       // Reference to the stderr stream
-       private InputStream stderr;
-       // Flag to control the local echo
-       private boolean localEcho = true;
-       // The line separator setting
-       private String lineSeparator = null;
-    // The list of stdout output listeners
-    private ITerminalServiceOutputStreamMonitorListener[] stdoutListeners = null;
-    // The list of stderr output listeners
-    private ITerminalServiceOutputStreamMonitorListener[] stderrListeners = null;
-
-       /**
-        * Sets the stdin stream instance.
-        *
-        * @param stdin The stream instance or <code>null</code>.
-        */
-       public void setStdinStream(OutputStream stdin) {
-               this.stdin = stdin;
-       }
-
-       /**
-        * Returns the stdin stream instance.
-        *
-        * @return The stream instance or <code>null</code>.
-        */
-       public OutputStream getStdinStream() {
-               return stdin;
-       }
-
-       /**
-        * Sets the stdout stream instance.
-        *
-        * @param stdout The stream instance or <code>null</code>.
-        */
-       public void setStdoutStream(InputStream stdout) {
-               this.stdout = stdout;
-       }
-
-       /**
-        * Returns the stdout stream instance.
-        *
-        * @return The stream instance or <code>null</code>.
-        */
-       public InputStream getStdoutStream() {
-               return stdout;
-       }
-
-       /**
-        * Sets the stderr stream instance.
-        *
-        * @param stderr The stream instance or <code>null</code>.
-        */
-       public void setStderrStream(InputStream stderr) {
-               this.stderr = stderr;
-       }
-
-       /**
-        * Returns the stderr stream instance.
-        *
-        * @return The stream instance or <code>null</code>.
-        */
-       public InputStream getStderrStream() {
-               return stderr;
-       }
-
-       /**
-        * Sets if the process requires a local echo from the terminal widget.
-        *
-        * @param value Specify <code>true</code> to enable the local echo, <code>false</code> otherwise.
-        */
-       public void setLocalEcho(boolean value) {
-               this.localEcho = value;
-       }
-
-       /**
-        * Returns <code>true</code> if the process requires a local echo
-        * from the terminal widget.
-        *
-        * @return <code>True</code> if local echo is enabled, <code>false</code> otherwise.
-        */
-       public boolean isLocalEcho() {
-               return localEcho;
-       }
-
-       /**
-        * Sets the stream line separator.
-        *
-        * @param separator The stream line separator <code>null</code>.
-        */
-       public void setLineSeparator(String separator) {
-               this.lineSeparator = separator;
-       }
-
-       /**
-        * Returns the stream line separator.
-        *
-        * @return The stream line separator or <code>null</code>.
-        */
-       public String getLineSeparator() {
-               return lineSeparator;
-       }
-
-       /**
-        * Sets the list of stdout listeners.
-        *
-        * @param listeners The list of stdout listeners or <code>null</code>.
-        */
-       public void setStdOutListeners(ITerminalServiceOutputStreamMonitorListener[] listeners) {
-               this.stdoutListeners = listeners;
-       }
-
-       /**
-        * Returns the list of stdout listeners.
-        *
-        * @return The list of stdout listeners or <code>null</code>.
-        */
-       public ITerminalServiceOutputStreamMonitorListener[] getStdOutListeners() {
-               return stdoutListeners;
-       }
-
-       /**
-        * Sets the list of stderr listeners.
-        *
-        * @param listeners The list of stderr listeners or <code>null</code>.
-        */
-       public void setStdErrListeners(ITerminalServiceOutputStreamMonitorListener[] listeners) {
-               this.stderrListeners = listeners;
-       }
-
-       /**
-        * Returns the list of stderr listeners.
-        *
-        * @return The list of stderr listeners or <code>null</code>.
-        */
-       public ITerminalServiceOutputStreamMonitorListener[] getStdErrListeners() {
-               return stderrListeners;
-       }
-
-       /**
-        * Loads the streams settings from the given settings store.
-        *
-        * @param store The settings store. Must not be <code>null</code>.
-        */
-       public void load(ISettingsStore store) {
-               Assert.isNotNull(store);
-               localEcho = Boolean.parseBoolean(store.get("LocalEcho", Boolean.FALSE.toString())); //$NON-NLS-1$
-               lineSeparator = store.get("LineSeparator", null); //$NON-NLS-1$
-               if (store instanceof SettingsStore) {
-                       stdin = (OutputStream)((SettingsStore)store).getSettings().get("stdin"); //$NON-NLS-1$
-                       stdout = (InputStream)((SettingsStore)store).getSettings().get("stdout"); //$NON-NLS-1$
-                       stderr = (InputStream)((SettingsStore)store).getSettings().get("stderr"); //$NON-NLS-1$
-                       stdoutListeners = (ITerminalServiceOutputStreamMonitorListener[])((SettingsStore)store).getSettings().get("StdOutListeners"); //$NON-NLS-1$
-                       stderrListeners = (ITerminalServiceOutputStreamMonitorListener[])((SettingsStore)store).getSettings().get("StdErrListeners"); //$NON-NLS-1$
-               }
-       }
-
-       /**
-        * Saves the process settings to the given settings store.
-        *
-        * @param store The settings store. Must not be <code>null</code>.
-        */
-       public void save(ISettingsStore store) {
-               Assert.isNotNull(store);
-               store.put("LocalEcho", Boolean.toString(localEcho)); //$NON-NLS-1$
-               store.put("LineSeparator", lineSeparator); //$NON-NLS-1$
-               if (store instanceof SettingsStore) {
-                       ((SettingsStore)store).getSettings().put("stdin", stdin); //$NON-NLS-1$
-                       ((SettingsStore)store).getSettings().put("stdout", stdout); //$NON-NLS-1$
-                       ((SettingsStore)store).getSettings().put("stderr", stderr); //$NON-NLS-1$
-                       ((SettingsStore)store).getSettings().put("StdOutListeners", stdoutListeners); //$NON-NLS-1$
-                       ((SettingsStore)store).getSettings().put("StdErrListeners", stderrListeners); //$NON-NLS-1$
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabCommandFieldHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabCommandFieldHandler.java
deleted file mode 100644 (file)
index 1ebda75..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.view.ui.tabs;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.tm.internal.terminal.control.CommandInputFieldWithHistory;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.ui.services.IDisposable;
-
-/**
- * Tab command input field handler implementation.
- */
-public class TabCommandFieldHandler implements IDisposable, IAdaptable {
-       // Reference to the parent tab folder manager
-       private final TabFolderManager tabFolderManager;
-       // Reference to the associated tab
-       private final CTabItem item;
-
-       // Reference to the command input field
-       private CommandInputFieldWithHistory field;
-       // The command field history
-       private String history;
-
-       /**
-        * Constructor.
-        *
-        * @param tabFolderManager The parent tab folder manager. Must not be <code>null</code>
-        * @param item The associated tab item. Must not be <code>null</code>.
-        */
-       public TabCommandFieldHandler(TabFolderManager tabFolderManager, CTabItem item) {
-               Assert.isNotNull(tabFolderManager);
-               this.tabFolderManager = tabFolderManager;
-               Assert.isNotNull(item);
-               this.item = item;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.services.IDisposable#dispose()
-        */
-       @Override
-       public void dispose() {
-               field = null;
-               history = null;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-        */
-       @SuppressWarnings({ "unchecked", "rawtypes" })
-       @Override
-       public Object getAdapter(Class adapter) {
-               if (TabFolderManager.class.equals(adapter)) {
-                       return tabFolderManager;
-               }
-               if (CTabItem.class.equals(adapter)) {
-                       return item;
-               }
-           return null;
-       }
-
-       /**
-        * Returns if or if not the associated tab item has the command input field enabled.
-        *
-        * @return <code>True</code> if the command input field is enabled, <code>false</code> otherwise.
-        */
-       public boolean hasCommandInputField() {
-               return field != null;
-       }
-
-       /**
-        * Set the command input field on or off.
-        *
-        * @param on <code>True</code> for on, <code>false</code> for off.
-        */
-       public void setCommandInputField(boolean on) {
-               // save the old history
-               if (field != null) {
-                       history = field.getHistory();
-                       field = null;
-               }
-
-               if (on) {
-                       field = new CommandInputFieldWithHistory(100);
-                       field.setHistory(history);
-               }
-
-               // Apply to the terminal control
-               Assert.isTrue(!item.isDisposed());
-               ITerminalViewControl terminal = (ITerminalViewControl)item.getData();
-               if (terminal != null) terminal.setCommandInputField(field);
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabDisposeListener.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabDisposeListener.java
deleted file mode 100644 (file)
index cdb5d2f..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.tabs;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.terminal.view.core.TerminalServiceFactory;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
-import org.eclipse.tm.terminal.view.ui.services.TerminalService;
-
-/**
- * Terminal tab default dispose listener implementation.
- */
-public class TabDisposeListener implements DisposeListener {
-       private final TabFolderManager parentTabFolderManager;
-
-       /**
-        * Constructor.
-        *
-        * @param parentTabFolderManager The parent tab folder manager. Must not be <code>null</code>
-        */
-       public TabDisposeListener(TabFolderManager parentTabFolderManager) {
-               Assert.isNotNull(parentTabFolderManager);
-               this.parentTabFolderManager = parentTabFolderManager;
-       }
-
-       /**
-        * Returns the parent terminal console tab folder manager instance.
-        *
-        * @return The parent terminal console tab folder manager instance.
-        */
-       protected final TabFolderManager getParentTabFolderManager() {
-               return parentTabFolderManager;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
-        */
-       @Override
-       public void widgetDisposed(DisposeEvent e) {
-               // If a tab item gets disposed, we have to dispose the terminal as well
-               if (e.getSource() instanceof CTabItem) {
-                       // Get the terminal control (if any) from the tab item
-                       Object candidate = ((CTabItem)e.getSource()).getData();
-                       if (candidate instanceof ITerminalViewControl) {
-                               ITerminalViewControl terminal = (ITerminalViewControl)candidate;
-                               // Keep the context menu from being disposed
-                               terminal.getControl().setMenu(null);
-                               terminal.disposeTerminal();
-                       }
-                       // Dispose the command input field handler
-                       parentTabFolderManager.disposeTabCommandFieldHandler((CTabItem)e.getSource());
-                       // Dispose the tab item control
-                       Control control = ((CTabItem) e.getSource()).getControl();
-                       if (control != null) control.dispose();
-
-                       // If all items got removed, we have to switch back to the empty page control
-                       if (parentTabFolderManager.getTabFolder() != null && parentTabFolderManager.getTabFolder().getItemCount() == 0) {
-                               parentTabFolderManager.getParentView().switchToEmptyPageControl();
-                       }
-                       // Fire selection changed event
-                       parentTabFolderManager.fireSelectionChanged();
-                       // Fire the terminal console disposed event
-                       ITerminalService service = TerminalServiceFactory.getService();
-                       if (service instanceof TerminalService) {
-                               ((TerminalService)service).fireTerminalTabEvent(TerminalService.TAB_DISPOSED, e.getSource(), ((CTabItem)e.getSource()).getData("customData")); //$NON-NLS-1$
-                       }
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabFolderManager.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabFolderManager.java
deleted file mode 100644 (file)
index 41e120b..0000000
+++ /dev/null
@@ -1,858 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.tabs;
-
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.tm.internal.terminal.control.ITerminalListener;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.TerminalViewControlFactory;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView;
-import org.eclipse.tm.terminal.view.ui.interfaces.ImageConsts;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Terminal tab folder manager.
- */
-public class TabFolderManager extends PlatformObject implements ISelectionProvider {
-       // Reference to the parent terminal consoles view
-       private final ITerminalsView parentView;
-       // Reference to the selection listener instance
-       private final SelectionListener selectionListener;
-
-       /**
-        * List of selection changed listeners.
-        */
-       private final List<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
-
-       /**
-        * Map of tab command input field handler per tab item
-        */
-       private final Map<CTabItem, TabCommandFieldHandler> commandFieldHandler = new HashMap<CTabItem, TabCommandFieldHandler>();
-
-       /**
-        * The terminal control selection listener implementation.
-        */
-       private class TerminalControlSelectionListener implements DisposeListener, MouseListener {
-               private final ITerminalViewControl terminal;
-               private boolean selectMode;
-
-               /**
-                * Constructor.
-                *
-                * @param terminal The terminal control. Must not be <code>null</code>.
-                */
-               public TerminalControlSelectionListener(ITerminalViewControl terminal) {
-                       Assert.isNotNull(terminal);
-                       this.terminal = terminal;
-
-                       // Register ourself as the required listener
-                       terminal.getControl().addDisposeListener(this);
-                       terminal.getControl().addMouseListener(this);
-               }
-
-               /**
-                * Returns the associated terminal view control.
-                *
-                * @return The terminal view control.
-                */
-               protected final ITerminalViewControl getTerminal() {
-                       return terminal;
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
-                */
-               @Override
-               public void widgetDisposed(DisposeEvent e) {
-                       // Widget got disposed, check if it is ours
-                       // If a tab item gets disposed, we have to dispose the terminal as well
-                       if (e.getSource().equals(terminal.getControl())) {
-                               // Remove as listener
-                               getTerminal().getControl().removeDisposeListener(this);
-                               getTerminal().getControl().removeMouseListener(this);
-                       }
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.swt.events.MouseListener#mouseDown(org.eclipse.swt.events.MouseEvent)
-                */
-               @Override
-               public void mouseDown(MouseEvent e) {
-                       // Left button down -> select mode starts
-                       if (e.button == 1) selectMode = true;
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.swt.events.MouseListener#mouseUp(org.eclipse.swt.events.MouseEvent)
-                */
-               @Override
-               public void mouseUp(MouseEvent e) {
-                       if (e.button == 1 && selectMode) {
-                               selectMode = false;
-                               // Fire a selection changed event with the terminal controls selection
-                       try {
-                           Display display = PlatformUI.getWorkbench().getDisplay();
-                           display.asyncExec(new Runnable() {
-                                               @Override
-                                               public void run() {
-                                                       fireSelectionChanged(new StructuredSelection(getTerminal().getSelection()));
-                                               }
-                                       });
-                       }
-                       catch (Exception ex) {
-                           // if display is disposed, silently ignore.
-                       }
-                       }
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.swt.events.MouseListener#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)
-                */
-               @Override
-               public void mouseDoubleClick(MouseEvent e) {
-               }
-       }
-
-       /**
-        * Constructor.
-        *
-        * @param parentView The parent terminals console view. Must not be <code>null</code>.
-        */
-       public TabFolderManager(ITerminalsView parentView) {
-               super();
-               Assert.isNotNull(parentView);
-               this.parentView = parentView;
-
-               // Attach a selection listener to the tab folder
-               selectionListener = doCreateTabFolderSelectionListener(this);
-               if (getTabFolder() != null) getTabFolder().addSelectionListener(selectionListener);
-       }
-
-       /**
-        * Creates the terminal console tab folder selection listener instance.
-        *
-        * @param parent The parent terminal console tab folder manager. Must not be <code>null</code>.
-        * @return The selection listener instance.
-        */
-       protected TabFolderSelectionListener doCreateTabFolderSelectionListener(TabFolderManager parent) {
-               Assert.isNotNull(parent);
-               return new TabFolderSelectionListener(parent);
-       }
-
-       /**
-        * Returns the parent terminal consoles view.
-        *
-        * @return The terminal consoles view instance.
-        */
-       protected final ITerminalsView getParentView() {
-               return parentView;
-       }
-
-       /**
-        * Returns the tab folder associated with the parent view.
-        *
-        * @return The tab folder or <code>null</code>.
-        */
-       @SuppressWarnings("cast")
-    protected final CTabFolder getTabFolder() {
-               return (CTabFolder) getParentView().getAdapter(CTabFolder.class);
-       }
-
-       /**
-        * Returns the selection changed listeners currently registered.
-        *
-        * @return The registered selection changed listeners or an empty array.
-        */
-       protected final ISelectionChangedListener[] getSelectionChangedListeners() {
-               return selectionChangedListeners.toArray(new ISelectionChangedListener[selectionChangedListeners.size()]);
-       }
-
-       /**
-        * Dispose the tab folder manager instance.
-        */
-       public void dispose() {
-               // Dispose the selection listener
-               if (getTabFolder() != null && !getTabFolder().isDisposed()) getTabFolder().removeSelectionListener(selectionListener);
-               // Dispose the tab command field handler
-               for (TabCommandFieldHandler handler : commandFieldHandler.values()) {
-                       handler.dispose();
-               }
-               commandFieldHandler.clear();
-       }
-
-       /**
-        * Creates a new tab item with the given title and connector.
-        *
-        * @param title The tab title. Must not be <code>null</code>.
-        * @param encoding The terminal encoding or <code>null</code>.
-        * @param connector The terminal connector. Must not be <code>null</code>.
-        * @param data The custom terminal data node or <code>null</code>.
-        * @param flags The flags controlling how the console is opened or <code>null</code> to use defaults.
-        *
-        * @return The created tab item or <code>null</code> if failed.
-        */
-       @SuppressWarnings({ "unused", "cast" })
-       public CTabItem createTabItem(String title, String encoding, ITerminalConnector connector, Object data, Map<String, Boolean> flags) {
-               Assert.isNotNull(title);
-               Assert.isNotNull(connector);
-
-               // The result tab item
-               CTabItem item = null;
-
-               // Get the tab folder from the parent viewer
-               CTabFolder tabFolder = getTabFolder();
-               if (tabFolder != null) {
-                       // Generate a unique title string for the new tab item (must be called before creating the item itself)
-                       title = makeUniqueTitle(title, tabFolder);
-                       // Create the tab item
-                       item = new CTabItem(tabFolder, SWT.CLOSE);
-                       // Set the tab item title
-                       item.setText(title);
-                       // Set the tab icon
-                       Image image = getTabItemImage(connector, data);
-                       if (image != null) item.setImage(image);
-
-                       // Setup the tab item listeners
-                       setupTerminalTabListeners(item);
-
-                       // Create the composite to create the terminal control within
-                       Composite composite = new Composite(tabFolder, SWT.NONE);
-                       composite.setLayout(new FillLayout());
-                       // Associate the composite with the tab item
-                       item.setControl(composite);
-
-                       // Refresh the layout
-                       tabFolder.getParent().layout(true);
-
-                       // Create the terminal control
-                       ITerminalViewControl terminal = TerminalViewControlFactory.makeControl(doCreateTerminalTabTerminalListener(this, item), composite, new ITerminalConnector[] { connector }, true);
-                       if (terminal instanceof ITerminalControl) {
-                               Object value = flags != null ? flags.get(ITerminalsConnectorConstants.PROP_DATA_NO_RECONNECT) : null;
-                               boolean noReconnect = value instanceof Boolean ? ((Boolean)value).booleanValue() : false;
-                               ((ITerminalControl)terminal).setConnectOnEnterIfClosed(!noReconnect);
-                       }
-
-                       // Add middle mouse button paste support
-                       addMiddleMouseButtonPasteSupport(terminal);
-                       // Add the "selection" listener to the terminal control
-                       new TerminalControlSelectionListener(terminal);
-                       // Configure the terminal encoding
-                       try { terminal.setEncoding(encoding); } catch (UnsupportedEncodingException e) { /* ignored on purpose */ }
-                       // Associated the terminal with the tab item
-                       item.setData(terminal);
-                       // Associated the custom data node with the tab item (if any)
-                       if (data != null) item.setData("customData", data); //$NON-NLS-1$
-
-                       // Overwrite the text canvas help id
-                       String contextHelpId = getParentView().getContextHelpId();
-                       if (contextHelpId != null) {
-                               PlatformUI.getWorkbench().getHelpSystem().setHelp(terminal.getControl(), contextHelpId);
-                       }
-
-                       // Set the context menu
-                       TabFolderMenuHandler menuHandler = (TabFolderMenuHandler) getParentView().getAdapter(TabFolderMenuHandler.class);
-                       if (menuHandler != null) {
-                               Menu menu = (Menu)menuHandler.getAdapter(Menu.class);
-                               if (menu != null) {
-                                       // One weird occurrence of IllegalArgumentException: Widget has wrong parent.
-                                       // Inspecting the code, this seem extremely unlikely. The terminal is created
-                                       // from a composite parent, the composite parent from the tab folder and the menu
-                                       // from the tab folder. Means, at the end all should have the same menu shell, shouldn't they?
-                                       try {
-                                               terminal.getControl().setMenu(menu);
-                                       } catch (IllegalArgumentException e) {
-                                               // Log exception only if debug mode is set to 1.
-                                               if (UIPlugin.getTraceHandler().isSlotEnabled(1, null)) {
-                                                       e.printStackTrace();
-                                               }
-                                       }
-                               }
-                       }
-
-                       // Select the created item within the tab folder
-                       tabFolder.setSelection(item);
-
-                       // Set the connector
-                       terminal.setConnector(connector);
-
-                       // And connect the terminal
-                       terminal.connectTerminal();
-
-                       // Fire selection changed event
-                       fireSelectionChanged();
-               }
-
-               // Return the create tab item finally.
-               return item;
-       }
-
-       /**
-        * Used for DnD of terminal tab items between terminal views
-        * <p>
-        * Create a new tab item in the "dropped" terminal view using the
-        * information stored in the given item.
-        *
-        * @param oldItem The old dragged tab item. Must not be <code>null</code>.
-        * @return The new dropped tab item.
-        */
-       @SuppressWarnings({ "unchecked", "cast" })
-    public CTabItem cloneTabItemAfterDrop(CTabItem oldItem) {
-               Assert.isNotNull(oldItem);
-
-               ITerminalViewControl terminal = (ITerminalViewControl)oldItem.getData();
-               ITerminalConnector connector = terminal.getTerminalConnector();
-               Object data = oldItem.getData("customData"); //$NON-NLS-1$
-               Map<String, Object> properties = (Map<String, Object>)oldItem.getData("properties"); //$NON-NLS-1$
-               String title = oldItem.getText();
-
-               // The result tab item
-               CTabItem item = null;
-
-               // Get the tab folder from the parent viewer
-               CTabFolder tabFolder = getTabFolder();
-               if (tabFolder != null) {
-                       // Generate a unique title string for the new tab item (must be called before creating the item itself)
-                       title = makeUniqueTitle(title, tabFolder);
-                       // Create the tab item
-                       item = new CTabItem(tabFolder, SWT.CLOSE);
-                       // Set the tab item title
-                       item.setText(title);
-                       // Set the tab icon
-                       Image image = getTabItemImage(connector, data);
-                       if (image != null) item.setImage(image);
-
-                       // Setup the tab item listeners
-                       setupTerminalTabListeners(item);
-                       // Move the terminal listener to the new item
-                       TabTerminalListener.move(oldItem, item);
-
-                       // Create the composite to create the terminal control within
-                       Composite composite = new Composite(tabFolder, SWT.NONE);
-                       composite.setLayout(new FillLayout());
-                       // Associate the composite with the tab item
-                       item.setControl(composite);
-
-                       // Refresh the layout
-                       tabFolder.getParent().layout(true);
-
-                       // Remember terminal state
-                       TerminalState oldState = terminal.getState();
-
-                       // Keep the context menu from being disposed
-                       terminal.getControl().setMenu(null);
-
-                       // change the "parent".
-                       Assert.isTrue(terminal instanceof ITerminalControl);
-                       ((ITerminalControl)terminal).setupTerminal(composite);
-
-                       // Add middle mouse button paste support
-                       addMiddleMouseButtonPasteSupport(terminal);
-
-                       item.setData(terminal);
-
-                       // Associate the custom data node with the tab item (if any)
-                       if (data != null) item.setData("customData", data); //$NON-NLS-1$
-                       // Associate the properties with the tab item (if any)
-                       if (properties != null) item.setData("properties", properties); //$NON-NLS-1$
-
-                       // Overwrite the text canvas help id
-                       String contextHelpId = getParentView().getContextHelpId();
-                       if (contextHelpId != null) {
-                               PlatformUI.getWorkbench().getHelpSystem().setHelp(terminal.getControl(), contextHelpId);
-                       }
-
-                       // Set the context menu
-                       TabFolderMenuHandler menuHandler = (TabFolderMenuHandler) getParentView().getAdapter(TabFolderMenuHandler.class);
-                       if (menuHandler != null) {
-                               Menu menu = (Menu)menuHandler.getAdapter(Menu.class);
-                               if (menu != null) {
-                                       // One weird occurrence of IllegalArgumentException: Widget has wrong parent.
-                                       // Inspecting the code, this seem extremely unlikely. The terminal is created
-                                       // from a composite parent, the composite parent from the tab folder and the menu
-                                       // from the tab folder. Means, at the end all should have the same menu shell, shouldn't they?
-                                       try {
-                                               terminal.getControl().setMenu(menu);
-                                       } catch (IllegalArgumentException e) {
-                                               // Log exception only if debug mode is set to 1.
-                                               if (UIPlugin.getTraceHandler().isSlotEnabled(1, null)) {
-                                                       e.printStackTrace();
-                                               }
-                                       }
-                               }
-                       }
-
-                       // Select the created item within the tab folder
-                       tabFolder.setSelection(item);
-
-                       // Set the connector
-                       terminal.setConnector(connector);
-
-                       // needed to get the focus and cursor
-                       Assert.isTrue(terminal instanceof ITerminalControl);
-                       ((ITerminalControl)terminal).setState(oldState);
-
-                       // Fire selection changed event
-                       fireSelectionChanged();
-               }
-
-               // Return the create tab item finally.
-               return item;
-       }
-
-
-       protected void addMiddleMouseButtonPasteSupport(final ITerminalViewControl terminal) {
-               terminal.getControl().addMouseListener(new MouseAdapter(){
-                       @Override
-            public void mouseDown(MouseEvent e) {
-                               // paste when the middle button is clicked
-                               if (e.button == 2) {
-                                       Clipboard clipboard = terminal.getClipboard();
-                                       if (clipboard.isDisposed()) return;
-                                       int clipboardType = DND.SELECTION_CLIPBOARD;
-                                       if (clipboard.getAvailableTypes(clipboardType).length == 0)
-                                               // use normal clipboard if selection clipboard is not available
-                                               clipboardType = DND.CLIPBOARD;
-                                       String text = (String) clipboard.getContents(TextTransfer.getInstance(), clipboardType);
-                                       if (text != null && text.length() > 0)
-                                               terminal.pasteString(text);
-                               }
-                       }
-               });
-    }
-
-       /**
-        * Generate a unique title string based on the given proposal.
-        *
-        * @param proposal The proposal. Must not be <code>null</code>.
-        * @return The unique title string.
-        */
-       protected String makeUniqueTitle(String proposal, CTabFolder tabFolder) {
-               Assert.isNotNull(proposal);
-               Assert.isNotNull(tabFolder);
-
-               String title = proposal;
-               int index = 0;
-
-               // Loop all existing tab items and check the titles. We have to remember
-               // all found titles as modifying the proposal might in turn conflict again
-               // with the title of a tab already checked.
-               List<String> titles = new ArrayList<String>();
-               for (CTabItem item : tabFolder.getItems()) {
-                       // Get the tab item title
-                       titles.add(item.getText());
-               }
-               // Make the proposal unique be appending (<n>) against all known titles.
-               while (titles.contains(title)) title = proposal + " (" + ++index + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-
-               return title;
-       }
-
-       /**
-        * Setup the terminal console tab item listeners.
-        *
-        * @param item The tab item. Must not be <code>null</code>.
-        */
-       protected void setupTerminalTabListeners(final CTabItem item) {
-               Assert.isNotNull(item);
-
-               // Create and associate the disposal listener
-               DisposeListener disposeListener = doCreateTerminalTabDisposeListener(this);
-
-               // store the listener to make access easier e.g. needed in DnD
-               item.setData("disposeListener", disposeListener); //$NON-NLS-1$
-               item.addDisposeListener(disposeListener);
-       }
-
-       /**
-        * Creates a new terminal console tab terminal listener instance.
-        *
-        * @param tabFolderManager The tab folder manager. Must not be <code>null</code>.
-        * @param item The tab item. Must not be <code>null</code>.
-        *
-        * @return The terminal listener instance.
-        */
-       protected ITerminalListener doCreateTerminalTabTerminalListener(TabFolderManager tabFolderManager, CTabItem item) {
-               Assert.isNotNull(item);
-               return new TabTerminalListener(tabFolderManager, item);
-       }
-
-       /**
-        * Creates a new terminal console tab dispose listener instance.
-        *
-        * @param parent The parent terminal console tab folder manager. Must not be <code>null</code>.
-        * @return The dispose listener instance.
-        */
-       protected DisposeListener doCreateTerminalTabDisposeListener(TabFolderManager parent) {
-               Assert.isNotNull(parent);
-               return new TabDisposeListener(parent);
-       }
-
-       /**
-        * Returns the tab item image.
-        *
-        * @param connector The terminal connector. Must not be <code>null</code>.
-        * @param data The custom terminal data node or <code>null</code>.
-        *
-        * @return The tab item image or <code>null</code>.
-        */
-       protected Image getTabItemImage(ITerminalConnector connector, Object data) {
-               Assert.isNotNull(connector);
-               return UIPlugin.getImage(ImageConsts.VIEW_Terminals);
-       }
-
-       /**
-        * Lookup a tab item with the given title and the given terminal connector.
-        * <p>
-        * <b>Note:</b> The method will handle unified tab item titles itself.
-        *
-        * @param title The tab item title. Must not be <code>null</code>.
-        * @param connector The terminal connector. Must not be <code>null</code>.
-        * @param data The custom terminal data node or <code>null</code>.
-        *
-        * @return The corresponding tab item or <code>null</code>.
-        */
-       public CTabItem findTabItem(String title, ITerminalConnector connector, Object data) {
-               Assert.isNotNull(title);
-               Assert.isNotNull(connector);
-
-               // Get the tab folder
-               CTabFolder tabFolder = getTabFolder();
-               if (tabFolder == null) return null;
-
-               // Loop all existing tab items and try to find a matching title
-               for (CTabItem item : tabFolder.getItems()) {
-                       // Disposed items cannot be matched
-                       if (item.isDisposed()) continue;
-                       // Get the title from the current tab item
-                       String itemTitle = item.getText();
-                       // The terminal console state might be signaled to the user via the
-                       // terminal console tab title. Filter out any prefix "<.*>\s*".
-                       itemTitle = itemTitle.replaceFirst("^<.*>\\s*", ""); //$NON-NLS-1$ //$NON-NLS-2$
-                       if (itemTitle.startsWith(title)) {
-                               // The title string matches -> double check with the terminal connector
-                               ITerminalViewControl terminal = (ITerminalViewControl)item.getData();
-                               ITerminalConnector connector2 = terminal.getTerminalConnector();
-                               // If the connector id and name matches -> check on the settings
-                               if (connector.getId().equals(connector2.getId()) && connector.getName().equals(connector2.getName())) {
-                                       if (!connector.isInitialized()) {
-                                               // an uninitialized connector does not yield a sensible summary
-                                               return item;
-                                       }
-                                       String summary = connector.getSettingsSummary();
-                                       String summary2 = connector2.getSettingsSummary();
-                                       // If we have matching settings -> we've found the matching item
-                                       if (summary.equals(summary2)) return item;
-                               }
-                       }
-               }
-
-               return null;
-       }
-
-       /**
-        * Make the given tab item the active tab and bring the tab to the top.
-        *
-        * @param item The tab item. Must not be <code>null</code>.
-        */
-       public void bringToTop(CTabItem item) {
-               Assert.isNotNull(item);
-
-               // Get the tab folder
-               CTabFolder tabFolder = getTabFolder();
-               if (tabFolder == null) return;
-
-               // Set the given tab item as selection to the tab folder
-               tabFolder.setSelection(item);
-               // Fire selection changed event
-               fireSelectionChanged();
-       }
-
-       /**
-        * Returns the currently active tab.
-        *
-        * @return The active tab item or <code>null</code> if none.
-        */
-       public CTabItem getActiveTabItem() {
-               // Get the tab folder
-               CTabFolder tabFolder = getTabFolder();
-               if (tabFolder == null) return null;
-
-               return tabFolder.getSelection();
-       }
-
-       /**
-        * Remove all terminated tab items.
-        */
-       public void removeTerminatedItems() {
-               // Get the tab folder
-               CTabFolder tabFolder = getTabFolder();
-               if (tabFolder == null) return;
-
-               // Loop the items and check for terminated status
-               for (CTabItem item: tabFolder.getItems()) {
-                       // Disposed items cannot be matched
-                       if (item.isDisposed()) continue;
-                       // Check if the item is terminated
-                       if (isTerminatedTabItem(item)) {
-                               // item is terminated -> dispose
-                               item.dispose();
-                       }
-               }
-       }
-
-       /**
-        * Checks if the given tab item represents a terminated console. Subclasses may
-        * overwrite this method to extend the definition of terminated.
-        *
-        * @param item The tab item or <code>null</code>.
-        * @return <code>True</code> if the tab item represents a terminated console, <code>false</code> otherwise.
-        */
-       protected boolean isTerminatedTabItem(CTabItem item) {
-               // Null items or disposed items cannot be matched
-               if (item == null || item.isDisposed()) return false;
-
-               // First, match the item title. If it contains "<terminated>", the item can be removed
-               String itemTitle = item.getText();
-               if (itemTitle != null && itemTitle.contains("<terminated>")) { //$NON-NLS-1$
-                       return true;
-               }
-               // Second, check if the associated terminal control is closed
-               // The title string matches -> double check with the terminal connector
-               ITerminalViewControl terminal = (ITerminalViewControl)item.getData();
-               if (terminal != null && terminal.getState() == TerminalState.CLOSED) {
-                       return true;
-               }
-
-               return false;
-       }
-
-       /**
-        * Returns the command input field handler for the given tab item.
-        *
-        * @param item The tab item or <code>null</code>.
-        * @return The command input field handler or <code>null</code>.
-        */
-       public final TabCommandFieldHandler getTabCommandFieldHandler(CTabItem item) {
-               // Null items or disposed items cannot be matched
-               if (item == null || item.isDisposed()) return null;
-
-               TabCommandFieldHandler handler = commandFieldHandler.get(item);
-               if (handler == null) {
-                       handler = createTabCommandFieldHandler(this, item);
-                       Assert.isNotNull(handler);
-                       commandFieldHandler.put(item, handler);
-               }
-               return handler;
-       }
-
-       /**
-        * Create the command input field handler for the given tab item.
-        *
-        * @param tabFolderManager The parent tab folder manager. Must not be <code>null</code>
-        * @param item The associated tab item. Must not be <code>null</code>.
-        *
-        * @return The command input field handler. Must not be <code>null</code>.
-        *
-        * @since 4.1
-        */
-       protected TabCommandFieldHandler createTabCommandFieldHandler(TabFolderManager tabFolderManager, CTabItem item) {
-               return new TabCommandFieldHandler(tabFolderManager, item);
-       }
-
-       /**
-        * Dispose the command input field handler for the given tab item.
-        *
-        * @param item The tab item or <code>null</code>.
-        */
-       protected void disposeTabCommandFieldHandler(CTabItem item) {
-               // Null items or disposed items cannot be matched
-               if (item == null || item.isDisposed()) return;
-
-               TabCommandFieldHandler handler = commandFieldHandler.remove(item);
-               if (handler != null) handler.dispose();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-        */
-       @Override
-       public void addSelectionChangedListener(ISelectionChangedListener listener) {
-               if (listener != null && !selectionChangedListeners.contains(listener)) selectionChangedListeners.add(listener);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-        */
-       @Override
-       public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-               if (listener != null) selectionChangedListeners.remove(listener);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
-        */
-       @Override
-       public ISelection getSelection() {
-               CTabItem activeTabItem = getActiveTabItem();
-               return activeTabItem != null ? new StructuredSelection(activeTabItem) : new StructuredSelection();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)
-        */
-       @Override
-       public void setSelection(ISelection selection) {
-               if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
-                       // The first selection element which is a CTabItem will become the active item
-                       Iterator<?> iterator = ((IStructuredSelection)selection).iterator();
-                       while (iterator.hasNext()) {
-                               Object candidate = iterator.next();
-                               if (candidate instanceof CTabItem) { bringToTop((CTabItem)candidate); return; }
-                       }
-               }
-               // fire a changed event in any case
-               fireSelectionChanged(selection);
-       }
-
-       /**
-        * Fire the selection changed event to the registered listeners.
-        */
-       protected void fireSelectionChanged() {
-               updateStatusLine();
-               fireSelectionChanged(getSelection());
-       }
-
-       /**
-        * Fire the selection changed event with the terminal text!
-        * to the registered listeners.
-        * see also TerminalControlSelectionListener- mouseUp
-        *
-        * @since 4.1
-        */
-       protected void fireTerminalSelectionChanged() {
-               updateStatusLine();
-               CTabItem item = getActiveTabItem();
-               if (item != null && !item.isDisposed()) {
-                       ITerminalViewControl terminal = (ITerminalViewControl)item.getData();
-                       if (terminal != null && !terminal.isDisposed()) {
-                               fireSelectionChanged(new StructuredSelection(terminal.getSelection()));
-                       }
-               }
-       }
-
-       /**
-        * Fire the selection changed event to the registered listeners.
-        */
-       protected final void fireSelectionChanged(ISelection selection) {
-               // Create the selection changed event
-               SelectionChangedEvent event = new SelectionChangedEvent(TabFolderManager.this, selection);
-
-               // First, invoke the registered listeners and let them do their job
-               for (ISelectionChangedListener listener : selectionChangedListeners) {
-                       listener.selectionChanged(event);
-               }
-       }
-
-       /**
-        * Update the parent view status line.
-        */
-       public final void updateStatusLine() {
-               String message = null;
-               IStatusLineManager manager = parentView.getViewSite().getActionBars().getStatusLineManager();
-
-               CTabItem item = getActiveTabItem();
-               if (item != null && !item.isDisposed()) {
-                       ITerminalViewControl terminal = (ITerminalViewControl)item.getData();
-                       if (terminal != null && !terminal.isDisposed()) {
-                               StringBuilder buffer = new StringBuilder();
-
-                               buffer.append(state2msg(item, terminal.getState()));
-                               buffer.append(" - "); //$NON-NLS-1$
-
-                               String encoding = terminal.getEncoding();
-                               if (encoding == null || "ISO-8859-1".equals(encoding)) { //$NON-NLS-1$
-                                       encoding = "Default (ISO-8859-1)"; //$NON-NLS-1$
-                               }
-                               buffer.append(NLS.bind(Messages.TabFolderManager_encoding, encoding));
-
-                               message = buffer.toString();
-                       }
-               }
-
-               manager.setMessage(message);
-       }
-
-       /**
-        * Returns the string representation of the given terminal state.
-        *
-        * @param item The tab folder item. Must not be <code>null</code>.
-        * @param state The terminal state. Must not be <code>null</code>.
-        *
-        * @return The string representation.
-        */
-       @SuppressWarnings("unchecked")
-    protected String state2msg(CTabItem item, TerminalState state) {
-               Assert.isNotNull(item);
-               Assert.isNotNull(state);
-
-               // Determine the terminal properties of the tab folder
-               Map<String, Object> properties = (Map<String, Object>)item.getData("properties"); //$NON-NLS-1$
-
-               // Get he current terminal state as string
-               String stateStr = state.toString();
-               // Lookup a matching text representation of the state
-               String key = "TabFolderManager_state_" + stateStr.replaceAll("\\.", " ").trim().toLowerCase(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               String stateMsg = null;
-               if (properties != null) stateMsg = properties.get(key) instanceof String ? (String) properties.get(key) : null;
-               if (stateMsg == null) stateMsg = Messages.getString(key);
-               if (stateMsg == null) stateMsg = stateStr;
-
-               return stateMsg;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabFolderMenuHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabFolderMenuHandler.java
deleted file mode 100644 (file)
index 973594c..0000000
+++ /dev/null
@@ -1,398 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.tabs;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuListener2;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.internal.terminal.control.actions.TerminalActionClearAll;
-import org.eclipse.tm.internal.terminal.control.actions.TerminalActionCopy;
-import org.eclipse.tm.internal.terminal.control.actions.TerminalActionPaste;
-import org.eclipse.tm.internal.terminal.control.actions.TerminalActionSelectAll;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.actions.SelectEncodingAction;
-import org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView;
-import org.eclipse.ui.IWorkbenchActionConstants;
-
-/**
- * Terminal tab folder menu handler.
- */
-public class TabFolderMenuHandler extends PlatformObject {
-       // Reference to the parent terminals console view
-       private final ITerminalsView parentView;
-       // Reference to the tab folder context menu manager
-       private MenuManager contextMenuManager;
-       // Reference to the tab folder context menu
-       private Menu contextMenu;
-       // The list of actions available within the context menu
-       private final List<AbstractTerminalAction> contextMenuActions = new ArrayList<AbstractTerminalAction>();
-
-       // The list of invalid context menu contributions "startsWith" expressions
-       /* default */ static final String[] INVALID_CONTRIBUTIONS_STARTS_WITH = {
-               "org.eclipse.cdt", "org.eclipse.ui.edit" //$NON-NLS-1$ //$NON-NLS-2$
-       };
-
-       /**
-        * Default menu listener implementation.
-        */
-       protected class MenuListener implements IMenuListener2 {
-
-               /* (non-Javadoc)
-                * @see org.eclipse.jface.action.IMenuListener2#menuAboutToHide(org.eclipse.jface.action.IMenuManager)
-                */
-               @Override
-               public void menuAboutToHide(IMenuManager manager) {
-                       // CQ:WIND00192293 and CQ:WIND194204 - don't update actions on menuAboutToHide
-                       // See also http://bugs.eclipse.org/296212
-                       //                      updateMenuItems(false);
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.jface.action.IMenuListener#menuAboutToShow(org.eclipse.jface.action.IMenuManager)
-                */
-               @Override
-               public void menuAboutToShow(IMenuManager manager) {
-                       removeInvalidContributions(manager);
-                       updateMenuItems(true);
-               }
-
-               /**
-                * Bug 392249: Remove contributions that appear in the context in Eclipse 4.x which are
-                * not visible in Eclipse 3.8.x. Re-evaluate from time to time!
-                *
-                * @param manager The menu manager or <code>null</code>
-                */
-               private void removeInvalidContributions(IMenuManager manager) {
-                       if (manager == null) return;
-
-                       IContributionItem[] items = manager.getItems();
-                       for (IContributionItem item : items) {
-                               String id = item.getId();
-                               if (id != null) {
-                                       for (String prefix : INVALID_CONTRIBUTIONS_STARTS_WITH) {
-                                               if (id.startsWith(prefix)) {
-                                                       manager.remove(item);
-                                                       break;
-                                               }
-                                       }
-                               }
-                       }
-               }
-       }
-
-       /**
-        * Constructor.
-        *
-        * @param parentView The parent terminals console view. Must not be <code>null</code>.
-        */
-       public TabFolderMenuHandler(ITerminalsView parentView) {
-               super();
-               Assert.isNotNull(parentView);
-               this.parentView = parentView;
-       }
-
-       /**
-        * Returns the parent terminals console view.
-        *
-        * @return The parent terminals console view instance.
-        */
-       protected final ITerminalsView getParentView() {
-               return parentView;
-       }
-
-       /**
-        * Returns the tab folder associated with the parent view.
-        *
-        * @return The tab folder or <code>null</code>.
-        */
-       @SuppressWarnings("cast")
-    protected final CTabFolder getTabFolder() {
-               return (CTabFolder) getParentView().getAdapter(CTabFolder.class);
-       }
-
-       /**
-        * Dispose the tab folder menu handler instance.
-        */
-       public void dispose() {
-               // Dispose the context menu
-               if (contextMenu != null) { contextMenu.dispose(); contextMenu = null; }
-               // Dispose the context menu manager
-               if (contextMenuManager != null) { contextMenuManager.dispose(); contextMenuManager = null; }
-               // Clear all actions
-               contextMenuActions.clear();
-       }
-
-       /**
-        * Setup the context menu for the tab folder. The method will return
-        * immediately if the menu handler had been initialized before.
-        *
-        * @param tabFolder The tab folder control. Must not be <code>null</code>.
-        */
-       public void initialize() {
-               // Return immediately if the menu manager and menu got initialized already
-               if (contextMenuManager != null && contextMenu != null) {
-                       return;
-               }
-
-               // Get the tab folder
-               CTabFolder tabFolder = getTabFolder();
-               if (tabFolder == null) {
-                       return;
-               }
-
-               // Create the menu manager if not done before
-               contextMenuManager = new MenuManager("#PopupMenu"); //$NON-NLS-1$
-
-               // Bug 392249: Register our menu listener after registering the context menu
-               //             for contributions. That way we can use our menu listener to get
-               //             rid of unwanted/misguided contributions. At least until this is
-               //             fixed in the Eclipse 4.x platform.
-
-               // Create the context menu
-               contextMenu = contextMenuManager.createContextMenu(tabFolder);
-               // Temporarily set the menu on the tab folder to avoid the case
-               // where the menu has a different parent shell than the control.
-               // This can be the case if the tab folder is re-parented to the
-               // "PartRenderingEngine's limbo".
-               tabFolder.setMenu(contextMenu);
-
-               // Create the context menu action instances
-               doCreateContextMenuActions();
-
-               // Fill the context menu
-               doFillContextMenu(contextMenuManager);
-
-               // Register to the view site to open the menu for contributions
-               getParentView().getSite().registerContextMenu(contextMenuManager, getParentView().getSite().getSelectionProvider());
-
-               // Create and associated the menu listener
-               contextMenuManager.addMenuListener(new MenuListener());
-       }
-
-       /**
-        * Adds the given action to the context menu actions list.
-        *
-        * @param action The action instance. Must not be <code>null</code>.
-        */
-       protected final void add(AbstractTerminalAction action) {
-               Assert.isNotNull(action);
-               contextMenuActions.add(action);
-       }
-
-       /**
-        * Create the context menu actions.
-        */
-       @SuppressWarnings("cast")
-    protected void doCreateContextMenuActions() {
-               // Create and add the copy action
-               add(new TerminalActionCopy() {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#getTarget()
-                        */
-                       @Override
-                       protected ITerminalViewControl getTarget() {
-                               return getActiveTerminalViewControl();
-                       }
-               });
-
-               // Create and add the paste action
-               add(new TerminalActionPaste() {
-                       @SuppressWarnings({ "unchecked" })
-            @Override
-                       public void run() {
-                               // Determine if pasting to the active tab require backslash translation
-                               boolean needsTranslation = false;
-
-                               TabFolderManager manager = (TabFolderManager) getParentView().getAdapter(TabFolderManager.class);
-                               if (manager != null) {
-                                       // If we have the active tab item, we can get the active terminal control
-                                       CTabItem activeTabItem = manager.getActiveTabItem();
-                                       if (activeTabItem != null) {
-                                               Map<String, Object> properties = (Map<String, Object>)activeTabItem.getData("properties"); //$NON-NLS-1$
-                                               if (properties != null && properties.containsKey(ITerminalsConnectorConstants.PROP_TRANSLATE_BACKSLASHES_ON_PASTE)) {
-                                                       Object value = properties.get(ITerminalsConnectorConstants.PROP_TRANSLATE_BACKSLASHES_ON_PASTE);
-                                                       needsTranslation = value instanceof Boolean ? ((Boolean)value).booleanValue() : false;
-                                               }
-                                       }
-                               }
-
-                               if (needsTranslation) {
-                                       ITerminalViewControl target = getTarget();
-                                       if (target != null && target.getClipboard() != null && !target.getClipboard().isDisposed()) {
-                                               String text = (String) target.getClipboard().getContents(TextTransfer.getInstance());
-                                               if (text != null) {
-                                                       text = text.replace('\\', '/');
-
-                                                       Object[] data = new Object[] { text };
-                                                       Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
-                                                       target.getClipboard().setContents(data, types, DND.CLIPBOARD);
-                                               }
-                                       }
-                               }
-
-                           super.run();
-                       }
-                       /* (non-Javadoc)
-                        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#getTarget()
-                        */
-                       @Override
-                       protected ITerminalViewControl getTarget() {
-                               return getActiveTerminalViewControl();
-                       }
-               });
-
-               // Create and add the clear all action
-               add(new TerminalActionClearAll() {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#getTarget()
-                        */
-                       @Override
-                       protected ITerminalViewControl getTarget() {
-                               return getActiveTerminalViewControl();
-                       }
-
-                       /* (non-Javadoc)
-                        * @see org.eclipse.tm.internal.terminal.control.actions.TerminalActionPaste#updateAction(boolean)
-                        */
-                       @Override
-                       public void updateAction(boolean aboutToShow) {
-                           super.updateAction(aboutToShow);
-                           if (getTarget() != null && getTarget().getState() != TerminalState.CONNECTED) {
-                               setEnabled(false);
-                           }
-                       }
-               });
-
-               // Create and add the select all action
-               add(new TerminalActionSelectAll() {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#getTarget()
-                        */
-                       @Override
-                       protected ITerminalViewControl getTarget() {
-                               return getActiveTerminalViewControl();
-                       }
-               });
-
-               // Create and add the select encoding action
-               add (new SelectEncodingAction((TabFolderManager) getParentView().getAdapter(TabFolderManager.class)) {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#getTarget()
-                        */
-                       @Override
-                       protected ITerminalViewControl getTarget() {
-                               return getActiveTerminalViewControl();
-                       }
-               });
-       }
-
-       /**
-        * Returns the currently active terminal control.
-        *
-        * @return The currently active terminal control or <code>null</code>.
-        */
-       @SuppressWarnings("cast")
-    protected ITerminalViewControl getActiveTerminalViewControl() {
-               ITerminalViewControl terminal = null;
-
-               // Get the active tab item from the tab folder manager
-               TabFolderManager manager = (TabFolderManager) getParentView().getAdapter(TabFolderManager.class);
-               if (manager != null) {
-                       // If we have the active tab item, we can get the active terminal control
-                       CTabItem activeTabItem = manager.getActiveTabItem();
-                       if (activeTabItem != null) {
-                               terminal = (ITerminalViewControl)activeTabItem.getData();
-                       }
-               }
-
-               return terminal;
-       }
-
-       /**
-        * Fill in the context menu content within the given manager.
-        *
-        * @param manager The menu manager. Must not be <code>null</code>.
-        */
-       protected void doFillContextMenu(MenuManager manager) {
-               Assert.isNotNull(manager);
-
-               // Loop all actions and add them to the menu manager
-               for (AbstractTerminalAction action : contextMenuActions) {
-                       manager.add(action);
-                       // Add a separator after the paste action
-                       if (action instanceof TerminalActionPaste) {
-                               manager.add(new Separator());
-                       }
-                       // Add a separator after the select all action
-                       if (action instanceof TerminalActionSelectAll) {
-                               manager.add(new Separator());
-                       }
-               }
-
-               // Menu contributions will end up here
-               manager.add(new Separator());
-               manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-       }
-
-       /**
-        * Update the context menu items on showing or hiding the context menu.
-        *
-        * @param aboutToShow <code>True</code> if the menu is about to show, <code>false</code> otherwise.
-        */
-       protected void updateMenuItems(boolean aboutToShow) {
-               // Loop all actions and update the status
-               for (AbstractTerminalAction action : contextMenuActions) {
-                       action.updateAction(aboutToShow);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.part.WorkbenchPart#getAdapter(java.lang.Class)
-        */
-       @SuppressWarnings({ "unchecked", "rawtypes" })
-       @Override
-       public Object getAdapter(Class adapter) {
-               if (MenuManager.class.isAssignableFrom(adapter)) {
-                       return contextMenuManager;
-               } else if (Menu.class.isAssignableFrom(adapter)) {
-                       if (contextMenu == null || contextMenu.isDisposed()) {
-                               contextMenu = contextMenuManager.createContextMenu(getTabFolder());
-                       }
-                       // Clear the menu from the tab folder now - see initialize()
-                       getTabFolder().setMenu(null);
-                       return contextMenu;
-               }
-
-               // Try the parent view
-               Object adapted = getParentView().getAdapter(adapter);
-               if (adapted != null) {
-                       return adapted;
-               }
-
-               return super.getAdapter(adapter);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabFolderSelectionListener.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabFolderSelectionListener.java
deleted file mode 100644 (file)
index 54ba5d9..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.tabs;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-
-/**
- * Terminal tab folder default selection listener implementation.
- */
-public class TabFolderSelectionListener implements SelectionListener {
-       private final TabFolderManager parentTabFolderManager;
-
-       /**
-        * Constructor.
-        *
-        * @param parentTabFolderManager The parent tab folder manager. Must not be <code>null</code>
-        */
-       public TabFolderSelectionListener(TabFolderManager parentTabFolderManager) {
-               Assert.isNotNull(parentTabFolderManager);
-               this.parentTabFolderManager = parentTabFolderManager;
-       }
-
-       /**
-        * Returns the parent terminal console tab folder manager instance.
-        *
-        * @return The parent terminal console tab folder manager instance.
-        */
-       protected final TabFolderManager getParentTabFolderManager() {
-               return parentTabFolderManager;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
-        */
-       @Override
-       public void widgetDefaultSelected(SelectionEvent e) {
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-        */
-       @Override
-       public void widgetSelected(SelectionEvent e) {
-               parentTabFolderManager.fireSelectionChanged();
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabFolderToolbarHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabFolderToolbarHandler.java
deleted file mode 100644 (file)
index 9a972cc..0000000
+++ /dev/null
@@ -1,373 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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
- * Max Weninger (Wind River) - [361363] [TERMINALS] Implement "Pin&Clone" for the "Terminals" view
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.tabs;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.internal.terminal.control.actions.TerminalActionClearAll;
-import org.eclipse.tm.internal.terminal.control.actions.TerminalActionCopy;
-import org.eclipse.tm.internal.terminal.control.actions.TerminalActionPaste;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.ui.actions.AbstractAction;
-import org.eclipse.tm.terminal.view.ui.actions.NewTerminalViewAction;
-import org.eclipse.tm.terminal.view.ui.actions.TabScrollLockAction;
-import org.eclipse.tm.terminal.view.ui.actions.ToggleCommandFieldAction;
-import org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchActionConstants;
-
-
-/**
- * Terminal tab folder toolbar handler.
- */
-public class TabFolderToolbarHandler extends PlatformObject {
-       // Reference to the parent terminals console view
-       private final ITerminalsView parentView;
-       // Reference to the toolbar manager
-       private IToolBarManager toolbarManager;
-       // Reference to the selection listener
-       private ToolbarSelectionChangedListener selectionChangedListener;
-       // The list of actions available within the toolbar
-       private final List<AbstractTerminalAction> toolbarActions = new ArrayList<AbstractTerminalAction>();
-
-       /**
-        * Default selection listener implementation.
-        */
-       protected class ToolbarSelectionChangedListener implements ISelectionChangedListener {
-
-               /* (non-Javadoc)
-                * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-                */
-               @Override
-               public void selectionChanged(SelectionChangedEvent event) {
-                       boolean enable = event != null;
-
-                       // The VlmConsoleTabFolderManager is listening to the selection changes of the
-                       // TabFolder and fires selection changed events.
-                       if (enable && event.getSource() instanceof TabFolderManager) {
-                               enable = event.getSelection() instanceof StructuredSelection
-                               && !event.getSelection().isEmpty()
-                               && (((StructuredSelection)event.getSelection()).getFirstElement() instanceof CTabItem
-                                       || ((StructuredSelection)event.getSelection()).getFirstElement() instanceof String);
-                       }
-
-                       updateToolbarItems(enable);
-               }
-       }
-
-       /**
-        * Constructor.
-        *
-        * @param parentView The parent terminals console view. Must not be <code>null</code>.
-        */
-       public TabFolderToolbarHandler(ITerminalsView parentView) {
-               super();
-               Assert.isNotNull(parentView);
-               this.parentView = parentView;
-       }
-
-       /**
-        * Returns the parent terminals console view.
-        *
-        * @return The terminals console view instance.
-        */
-       protected final ITerminalsView getParentView() {
-               return parentView;
-       }
-
-       /**
-        * Returns the tab folder associated with the parent view.
-        *
-        * @return The tab folder or <code>null</code>.
-        */
-       @SuppressWarnings("cast")
-    protected final CTabFolder getTabFolder() {
-               return (CTabFolder) getParentView().getAdapter(CTabFolder.class);
-       }
-
-       /**
-        * Returns the currently active terminal control.
-        *
-        * @return The currently active terminal control or <code>null</code>.
-        */
-       @SuppressWarnings("cast")
-    public ITerminalViewControl getActiveTerminalViewControl() {
-               ITerminalViewControl terminal = null;
-
-               // Get the active tab item from the tab folder manager
-               TabFolderManager manager = (TabFolderManager) getParentView().getAdapter(TabFolderManager.class);
-               if (manager != null) {
-                       // If we have the active tab item, we can get the active terminal control
-                       CTabItem activeTabItem = manager.getActiveTabItem();
-                       if (activeTabItem != null && !activeTabItem.isDisposed()) {
-                               terminal = (ITerminalViewControl)activeTabItem.getData();
-                       }
-               }
-
-               return terminal;
-       }
-
-       /**
-        * Dispose the tab folder menu handler instance.
-        */
-       public void dispose() {
-               // Dispose the selection changed listener
-               if (selectionChangedListener != null) {
-                       getParentView().getViewSite().getSelectionProvider().removeSelectionChangedListener(selectionChangedListener);
-                       selectionChangedListener = null;
-               }
-
-               // Clear all actions
-               toolbarActions.clear();
-       }
-
-       /**
-        * Setup the context menu for the tab folder. The method will return
-        * immediately if the toolbar handler had been initialized before.
-        *
-        * @param tabFolder The tab folder control. Must not be <code>null</code>.
-        */
-       public void initialize() {
-               // Return immediately if the toolbar manager got initialized already
-               if (toolbarManager != null) {
-                       return;
-               }
-
-               // Register ourself as selection listener to the tab folder
-               selectionChangedListener = doCreateSelectionChangedListener();
-               Assert.isNotNull(selectionChangedListener);
-               getParentView().getViewSite().getSelectionProvider().addSelectionChangedListener(selectionChangedListener);
-
-               // Get the parent view action bars
-               IActionBars bars = getParentView().getViewSite().getActionBars();
-
-               // From the action bars, get the toolbar manager
-               toolbarManager = bars.getToolBarManager();
-
-               // Create the toolbar action instances
-               doCreateToolbarActions();
-
-               // Fill the toolbar
-               doFillToolbar(toolbarManager);
-
-               // Update actions
-               updateToolbarItems(false);
-       }
-
-       /**
-        * Creates a new selection changed listener instance.
-        *
-        * @return The new selection changed listener instance.
-        */
-       protected ToolbarSelectionChangedListener doCreateSelectionChangedListener() {
-               return new ToolbarSelectionChangedListener();
-       }
-
-       /**
-        * Adds the given action to the toolbar actions list.
-        *
-        * @param action The action instance. Must not be <code>null</code>.
-        */
-       protected final void add(AbstractTerminalAction action) {
-               Assert.isNotNull(action);
-               toolbarActions.add(action);
-       }
-
-       /**
-        * Removes the given action from the toolbar actions list.
-        *
-        * @param action The action instance. Must not be <code>null</code>.
-        */
-       protected final void remove(AbstractTerminalAction action) {
-               Assert.isNotNull(action);
-               toolbarActions.remove(action);
-       }
-
-       /**
-        * Create the toolbar actions.
-        */
-       protected void doCreateToolbarActions() {
-               // Create and add the paste action
-               add(new TerminalActionPaste() {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#getTarget()
-                        */
-                       @Override
-                       protected ITerminalViewControl getTarget() {
-                               return getActiveTerminalViewControl();
-                       }
-               });
-
-               // Create and add the copy action
-               add(new TerminalActionCopy() {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#getTarget()
-                        */
-                       @Override
-                       protected ITerminalViewControl getTarget() {
-                               return getActiveTerminalViewControl();
-                       }
-               });
-
-               // Create and add the scroll lock action
-               add (new TabScrollLockAction() {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#getTarget()
-                        */
-                       @Override
-                       protected ITerminalViewControl getTarget() {
-                               return getActiveTerminalViewControl();
-                       }
-               });
-
-               // Create and add the clear all action
-               add(new TerminalActionClearAll() {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#getTarget()
-                        */
-                       @Override
-                       protected ITerminalViewControl getTarget() {
-                               return getActiveTerminalViewControl();
-                       }
-
-                       /* (non-Javadoc)
-                        * @see org.eclipse.tm.internal.terminal.control.actions.TerminalActionPaste#updateAction(boolean)
-                        */
-                       @Override
-                       public void updateAction(boolean aboutToShow) {
-                           super.updateAction(aboutToShow);
-                           if (getTarget() != null && getTarget().getState() != TerminalState.CONNECTED) {
-                               setEnabled(false);
-                           }
-                       }
-               });
-
-               // Create and add the toggle command input field action
-               add (new ToggleCommandFieldAction(getParentView()) {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#getTarget()
-                        */
-                       @Override
-                       protected ITerminalViewControl getTarget() {
-                               return getActiveTerminalViewControl();
-                       }
-               });
-
-               // Create and add the new terminal view action
-               add (new NewTerminalViewAction(getParentView()) {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#getTarget()
-                        */
-                       @Override
-                       protected ITerminalViewControl getTarget() {
-                               return getActiveTerminalViewControl();
-                       }
-               });
-       }
-
-       /**
-        * Fill in the context menu content within the given manager.
-        *
-        * @param manager The menu manager. Must not be <code>null</code>.
-        */
-       protected void doFillToolbar(IToolBarManager manager) {
-               Assert.isNotNull(manager);
-
-               // Note: For the toolbar, the actions are added from left to right!
-               //       So we start with the additions marker here which is the most
-               //       left contribution item.
-               manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-               manager.add(new Separator("anchor")); //$NON-NLS-1$
-
-               // we want that at the end
-               NewTerminalViewAction newTerminalAction = null;
-
-               // Loop all actions and add them to the menu manager
-               for (AbstractTerminalAction action : toolbarActions) {
-                       // Add a separator before the clear all action or if the action is a separator
-                       if (action instanceof TabScrollLockAction
-                               || (action instanceof AbstractAction && ((AbstractAction)action).isSeparator())) {
-                               manager.insertAfter("anchor", new Separator()); //$NON-NLS-1$
-                       }
-                       // skip new terminal view action for now
-                       if (action instanceof NewTerminalViewAction){
-                               newTerminalAction = (NewTerminalViewAction)action;
-                               continue;
-                       }
-                       // Add the action itself
-                       manager.insertAfter("anchor", action); //$NON-NLS-1$
-               }
-               // now add to the end
-               if (newTerminalAction != null){
-                       manager.add(newTerminalAction);
-               }
-       }
-
-       /**
-        * Update the toolbar items.
-        *
-        * @param enabled <code>True</code> if the items shall be enabled, <code>false</code> otherwise.
-        */
-       protected void updateToolbarItems(boolean enabled) {
-               // Determine the currently active terminal control
-               ITerminalViewControl control = getActiveTerminalViewControl();
-               // Loop all actions and update the status
-               for (AbstractTerminalAction action : toolbarActions) {
-                       // If the terminal control is not available, the updateAction
-                       // method of certain actions enable the action (bugzilla #260372).
-                       // Workaround by forcing the action to get disabled with setEnabled.
-                       if (control == null && !(action instanceof NewTerminalViewAction)) {
-                               action.setEnabled(false);
-                       }
-                       else {
-                               action.updateAction(enabled);
-                       }
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.part.WorkbenchPart#getAdapter(java.lang.Class)
-        */
-       @SuppressWarnings({ "unchecked", "rawtypes" })
-       @Override
-       public Object getAdapter(Class adapter) {
-               if (IToolBarManager.class.isAssignableFrom(adapter)) {
-                       return toolbarManager;
-               }
-
-               // Try the toolbar actions
-               for (AbstractTerminalAction action : toolbarActions) {
-                       if (adapter.isAssignableFrom(action.getClass())) {
-                               return action;
-                       }
-               }
-
-               // Try the parent view
-               Object adapted = getParentView().getAdapter(adapter);
-               if (adapted != null) {
-                       return adapted;
-               }
-
-               return super.getAdapter(adapter);
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabTerminalListener.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/tabs/TabTerminalListener.java
deleted file mode 100644 (file)
index 2b711be..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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.terminal.view.ui.tabs;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tm.internal.terminal.control.ITerminalListener2;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-
-/**
- * Terminal tab default terminal listener implementation.
- */
-public class TabTerminalListener implements ITerminalListener2 {
-       private static final String TAB_TERMINAL_LISTENER = "TabTerminalListener"; //$NON-NLS-1$
-       /* default */ final TabFolderManager tabFolderManager;
-       private CTabItem tabItem;
-       private final String tabItemTitle;
-
-       /**
-        * Move a TabTerminalListener instance to another item (for DnD).
-        *
-        * @param fromItem  item to detach the listener from
-        * @param toItem    item to attach listener to
-        */
-       static void move(CTabItem fromItem, CTabItem toItem) {
-               TabTerminalListener listener = (TabTerminalListener) fromItem.getData(TAB_TERMINAL_LISTENER);
-               if (listener != null) {
-                       listener.attachTo(toItem);
-               }
-       }
-
-       /**
-        * Constructor.
-        *
-        * @param tabFolderManager The parent tab folder manager. Must not be <code>null</code>.
-        * @param tabItem The parent tab item. Must not be <code>null</code>.
-        */
-       public TabTerminalListener(TabFolderManager tabFolderManager, CTabItem tabItem) {
-               super();
-               Assert.isNotNull(tabFolderManager);
-               Assert.isNotNull(tabItem);
-               this.tabFolderManager = tabFolderManager;
-               // Remember the original tab item title
-               tabItemTitle = tabItem.getText();
-
-               attachTo(tabItem);
-       }
-
-       private void attachTo(CTabItem item) {
-               if (tabItem != null) tabItem.setData(TAB_TERMINAL_LISTENER, null);
-               item.setData(TAB_TERMINAL_LISTENER, this);
-               tabItem = item;
-       }
-
-       /**
-        * Returns the associated parent tab item.
-        *
-        * @return The parent tab item.
-        */
-       protected final CTabItem getTabItem() {
-               return tabItem;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.ITerminalListener#setState(org.eclipse.tm.internal.terminal.provisional.api.TerminalState)
-        */
-       @Override
-       public void setState(final TerminalState state) {
-               // The tab item must have been not yet disposed
-               final CTabItem item = getTabItem();
-               if (item == null || item.isDisposed()) return;
-
-               // Run asynchronously in the display thread
-               item.getDisplay().asyncExec(new Runnable() {
-                       @Override
-                       public void run() {
-                               // Update the tab item title
-                               String newTitle = getTerminalConsoleTabTitle(state);
-                               if (newTitle != null) item.setText(newTitle);
-
-                               // Turn off the command field (if necessary)
-                               TabCommandFieldHandler handler = tabFolderManager.getTabCommandFieldHandler(item);
-                               if (TerminalState.CLOSED.equals(state) && handler != null && handler.hasCommandInputField()) {
-                                       handler.setCommandInputField(false);
-                                       // Trigger a selection changed event to update the action enablements
-                                       // and the status line
-                                       ISelectionProvider provider = tabFolderManager.getParentView().getViewSite().getSelectionProvider();
-                                       Assert.isNotNull(provider);
-                                       provider.setSelection(provider.getSelection());
-                               } else {
-                                       // Update the status line
-                                       tabFolderManager.updateStatusLine();
-                               }
-                       }
-               });
-       }
-
-       /**
-        * Returns the title to set to the terminal console tab for the given state.
-        * <p>
-        * <b>Note:</b> This method is called from {@link #setState(TerminalState)} and
-        *              is expected to by called within the UI thread.
-        *
-        * @param state The terminal state. Must not be <code>null</code>.
-        * @return The terminal console tab title to set or <code>null</code> to leave the title unchanged.
-        */
-       protected String getTerminalConsoleTabTitle(TerminalState state) {
-               Assert.isNotNull(state);
-               Assert.isNotNull(Display.findDisplay(Thread.currentThread()));
-
-               // The tab item must have been not yet disposed
-               CTabItem item = getTabItem();
-               if (item == null || item.isDisposed()) return null;
-
-               // Get the current tab title
-               String oldTitle = item.getText();
-
-               // Construct the new title
-               String newTitle = null;
-
-               if (TerminalState.CLOSED.equals(state)) {
-                       newTitle = NLS.bind(Messages.TabTerminalListener_consoleClosed, tabItemTitle, tabFolderManager.state2msg(item, state));
-               }
-               else if (TerminalState.CONNECTING.equals(state)) {
-                       newTitle = NLS.bind(Messages.TabTerminalListener_consoleConnecting, tabItemTitle, tabFolderManager.state2msg(item, state));
-               }
-               else if (TerminalState.CONNECTED.equals(state)) {
-                       newTitle = tabItemTitle;
-               }
-
-               return newTitle != null && !newTitle.equals(oldTitle) ? newTitle : null;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.internal.terminal.control.ITerminalListener#setTerminalTitle(java.lang.String)
-        */
-       @Override
-       public void setTerminalTitle(String title) {
-       }
-
-       /**
-        * @see org.eclipse.tm.internal.terminal.control.ITerminalListener2#setTerminalSelectionChanged()
-        * @since 4.1
-        */
-       @Override
-       public void setTerminalSelectionChanged() {
-               tabFolderManager.fireTerminalSelectionChanged();
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/view/OldTerminalsViewHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/view/OldTerminalsViewHandler.java
deleted file mode 100644 (file)
index 3317a49..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.ui.view;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tm.terminal.view.ui.interfaces.IUIConstants;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * Old terminals view handler implementation.
- * <p>
- * If invoked, the view implementation opens the new terminals view and
- * closes itself afterwards.
- */
-public class OldTerminalsViewHandler extends ViewPart {
-
-       boolean fReplaced;
-       IPartListener2 fPartlistener;
-
-       /**
-        * Constructor.
-        */
-       public OldTerminalsViewHandler() {
-               super();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-        */
-       @Override
-       public void createPartControl(Composite parent) {
-               replaceWithTerminalsView();
-       }
-
-       protected void replaceWithTerminalsView() {
-               if (fReplaced)
-                       return;
-           IViewSite site = getViewSite();
-               final IWorkbenchPage page = site.getPage();
-
-               site.getShell().getDisplay().asyncExec(new Runnable() {
-                       @Override
-                       public void run() {
-                               if (fReplaced)
-                                       return;
-                               if (!page.isPageZoomed() || page.getActivePart() instanceof TerminalsView) {
-                                       fReplaced = true;
-                                       // Show the new view
-                                       try {
-                                               page.showView(IUIConstants.ID, null, IWorkbenchPage.VIEW_CREATE);
-                                       }
-                                       catch (PartInitException e) { /* ignored on purpose */ }
-
-                                       // Hide ourself in the current perspective
-                                       page.hideView(OldTerminalsViewHandler.this);
-                               } else if (fPartlistener == null) {
-                                       final IWorkbenchPart maximizedPart = page.getActivePart();
-                                       page.addPartListener(fPartlistener = new IPartListener2() {
-                                               @Override
-                                               public void partVisible(IWorkbenchPartReference partRef) {
-                                                       if (partRef.getPart(false) == OldTerminalsViewHandler.this) {
-                                                               page.removePartListener(this);
-                                                               fPartlistener = null;
-                                                               replaceWithTerminalsView();
-                                                       }
-                                               }
-                                               @Override
-                                               public void partOpened(IWorkbenchPartReference partRef) {
-                                               }
-                                               @Override
-                                               public void partInputChanged(IWorkbenchPartReference partRef) {
-                                               }
-                                               @Override
-                                               public void partHidden(IWorkbenchPartReference partRef) {
-                                               }
-                                               @Override
-                                               public void partDeactivated(IWorkbenchPartReference partRef) {
-                                               }
-                                               @Override
-                                               public void partClosed(IWorkbenchPartReference partRef) {
-                                                       if (partRef.getPart(false) == OldTerminalsViewHandler.this) {
-                                                               page.removePartListener(this);
-                                                               fPartlistener = null;
-                                                       } else if (partRef.getPart(false) == maximizedPart) {
-                                                               page.removePartListener(this);
-                                                               fPartlistener = null;
-                                                               replaceWithTerminalsView();
-                                                       }
-                                               }
-                                               @Override
-                                               public void partBroughtToTop(IWorkbenchPartReference partRef) {
-                                               }
-                                               @Override
-                                               public void partActivated(IWorkbenchPartReference partRef) {
-                                               }
-                                       });
-                               }
-                       }
-               });
-    }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-        */
-       @Override
-       public void setFocus() {
-               // should not happen, but just in case - replace on focus
-               replaceWithTerminalsView();
-       }
-
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/view/TerminalsView.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/view/TerminalsView.java
deleted file mode 100644 (file)
index 9f12b26..0000000
+++ /dev/null
@@ -1,778 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2015 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
- * Max Weninger (Wind River) - [361363] [TERMINALS] Implement "Pin&Clone" for the "Terminals" view
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.view;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.UUID;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.dnd.ByteArrayTransfer;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderMenuHandler;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderToolbarHandler;
-import org.eclipse.tm.terminal.view.ui.view.showin.GitShowInContextHandler;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.part.IShowInTarget;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.part.ShowInContext;
-import org.eclipse.ui.part.ViewPart;
-import org.osgi.framework.Bundle;
-
-/**
- * Terminal view.
- */
-public class TerminalsView extends ViewPart implements ITerminalsView, IShowInTarget {
-
-       // Reference to the main page book control
-       private PageBook pageBookControl;
-       // Reference to the tab folder maintaining the consoles
-       /* default */ CTabFolder tabFolderControl;
-       // Reference to the tab folder manager
-       /* default */ TabFolderManager tabFolderManager;
-       // Reference to the tab folder menu handler
-       private TabFolderMenuHandler tabFolderMenuHandler;
-       // Reference to the tab folder toolbar handler
-       private TabFolderToolbarHandler tabFolderToolbarHandler;
-       // Reference to the empty page control (to be show if no console is open)
-       private Control emptyPageControl;
-       // The view's memento handler
-       private final TerminalsViewMementoHandler mementoHandler = new TerminalsViewMementoHandler();
-
-       /**
-        * "dummy" transfer just to store the information needed for the DnD
-        *
-        */
-       private static class TerminalTransfer extends ByteArrayTransfer {
-               // The static terminal transfer type name. Unique per terminals view instance.
-               private static final String TYPE_NAME = "terminal-transfer-format:" + UUID.randomUUID().toString(); //$NON-NLS-1$
-               // Register the type name and remember the associated unique type id.
-               private static final int TYPEID = registerType(TYPE_NAME);
-
-               private CTabItem draggedFolderItem;
-               private TabFolderManager draggedTabFolderManager;
-
-               /*
-                * Thread save singleton instance creation.
-                */
-               private static class LazyInstanceHolder {
-                       public static TerminalTransfer instance = new TerminalTransfer();
-               }
-
-               /**
-                * Constructor.
-                */
-               TerminalTransfer() {
-               }
-
-               /**
-                * Returns the singleton terminal transfer instance.
-                * @return
-                */
-               public static TerminalTransfer getInstance() {
-                       return LazyInstanceHolder.instance;
-               }
-
-               /**
-                * Sets the dragged folder item.
-                *
-                * @param tabFolderItem The dragged folder item or <code>null</code>.
-                */
-               public void setDraggedFolderItem(CTabItem tabFolderItem) {
-                       draggedFolderItem = tabFolderItem;
-               }
-
-               /**
-                * Returns the dragged folder item.
-                *
-                * @return The dragged folder item or <code>null</code>.
-                */
-               public CTabItem getDraggedFolderItem() {
-                       return draggedFolderItem;
-               }
-
-               /**
-                * Sets the tab folder manager the associated folder item is dragged from.
-                *
-                * @param tabFolderManager The tab folder manager or <code>null</code>.
-                */
-               public void setTabFolderManager(TabFolderManager tabFolderManager) {
-                       draggedTabFolderManager = tabFolderManager;
-               }
-
-               /**
-                * Returns the tab folder manager the associated folder item is dragged from.
-                *
-                * @return The tab folder manager or <code>null</code>.
-                */
-               public TabFolderManager getTabFolderManager() {
-                       return draggedTabFolderManager;
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.swt.dnd.Transfer#getTypeIds()
-                */
-               @Override
-               protected int[] getTypeIds() {
-                       return new int[] { TYPEID };
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.swt.dnd.Transfer#getTypeNames()
-                */
-               @Override
-               protected String[] getTypeNames() {
-                       return new String[] { TYPE_NAME };
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.swt.dnd.ByteArrayTransfer#javaToNative(java.lang.Object, org.eclipse.swt.dnd.TransferData)
-                */
-               @Override
-               public void javaToNative(Object data, TransferData transferData) {
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.swt.dnd.ByteArrayTransfer#nativeToJava(org.eclipse.swt.dnd.TransferData)
-                */
-               @Override
-               public Object nativeToJava(TransferData transferData) {
-                       return null;
-               }
-       }
-
-       /**
-        * Constructor.
-        */
-       public TerminalsView() {
-               super();
-       }
-
-       /**
-        * Initialize the drag support.
-        */
-       private void addDragSupport() {
-               // The event listener is registered as filter. It will receive events from all widgets.
-               PlatformUI.getWorkbench().getDisplay().addFilter(SWT.DragDetect, new Listener() {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-                        */
-                       @Override
-                       public void handleEvent(Event event) {
-                               // Only handle events where a CTabFolder is the source
-                               if (!(event.widget instanceof CTabFolder)) return;
-                               // TabFolderManager must be created
-                               if (tabFolderManager == null) return;
-
-                               // only for own tab folders
-                               if (event.widget != tabFolderControl) return;
-
-                               // Skip drag if DnD is still ongoing (bug 443787)
-                               if (tabFolderControl.getData(DND.DRAG_SOURCE_KEY) != null) return;
-
-                               final CTabFolder draggedFolder = (CTabFolder) event.widget;
-
-                               int operations = DND.DROP_MOVE | DND.DROP_DEFAULT;
-                               final DragSource dragSource = new DragSource(draggedFolder, operations);
-
-                               // Initialize the terminal transfer type data
-                               TerminalTransfer.getInstance().setDraggedFolderItem(tabFolderManager.getActiveTabItem());
-                               TerminalTransfer.getInstance().setTabFolderManager(tabFolderManager);
-
-                               Transfer[] transferTypes = new Transfer[] { TerminalTransfer.getInstance() };
-                               dragSource.setTransfer(transferTypes);
-
-                               // Add a drag source listener to cleanup after the drag operation finished
-                               dragSource.addDragListener(new DragSourceListener() {
-                                       @Override
-                                       public void dragStart(DragSourceEvent event) {
-                                       }
-
-                                       @Override
-                                       public void dragSetData(DragSourceEvent event) {
-                                       }
-
-                                       @Override
-                                       public void dragFinished(DragSourceEvent event) {
-                                               // dispose this drag-source-listener by disposing its drag-source
-                                               dragSource.dispose();
-
-                                               // Inhibit the action of CTabFolder's default DragDetect-listeners,
-                                               // fire a mouse-click event on the widget that was dragged.
-                                               draggedFolder.notifyListeners(SWT.MouseUp, null);
-                                       }
-                               });
-                       }
-               });
-       }
-
-       /**
-        * Initialize the drop support on the terminals page book control.
-        */
-       private void addDropSupport() {
-               int operations = DND.DROP_MOVE | DND.DROP_DEFAULT;
-               final DropTarget target = new DropTarget(pageBookControl, operations);
-
-               Transfer[] transferTypes = new Transfer[] { TerminalTransfer.getInstance() };
-               target.setTransfer(transferTypes);
-
-               target.addDropListener(new DropTargetListener() {
-                       @Override
-                       public void dragEnter(DropTargetEvent event) {
-                               // only if the drop target is different then the drag source
-                               if (TerminalTransfer.getInstance().getTabFolderManager() == tabFolderManager) {
-                                       event.detail = DND.DROP_NONE;
-                               }
-                               else {
-                                       event.detail = DND.DROP_MOVE;
-                               }
-                       }
-
-                       @Override
-                       public void dragOver(DropTargetEvent event) {
-                       }
-
-                       @Override
-                       public void dragOperationChanged(DropTargetEvent event) {
-                       }
-
-                       @Override
-                       public void dragLeave(DropTargetEvent event) {
-                       }
-
-                       @Override
-                       public void dropAccept(DropTargetEvent event) {
-                       }
-
-                       @Override
-                       public void drop(DropTargetEvent event) {
-                               if (TerminalTransfer.getInstance().getDraggedFolderItem() != null && tabFolderManager != null) {
-                                       CTabItem draggedItem = TerminalTransfer.getInstance().getDraggedFolderItem();
-
-                                       CTabItem item = tabFolderManager.cloneTabItemAfterDrop(draggedItem);
-                                       tabFolderManager.bringToTop(item);
-                                       switchToTabFolderControl();
-
-                                       // dispose tab item control
-                                       final Control control = draggedItem.getControl();
-                                       draggedItem.setControl(null);
-                                       if (control != null) control.dispose();
-
-                                       // need to remove the dispose listener first
-                                       DisposeListener disposeListener = (DisposeListener) draggedItem.getData("disposeListener"); //$NON-NLS-1$
-                                       draggedItem.removeDisposeListener(disposeListener);
-                                       draggedItem.dispose();
-
-                                       // make sure the "new" terminals view has the focus after dragging a terminal
-                                       setFocus();
-                               }
-                       }
-               });
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.part.WorkbenchPart#dispose()
-        */
-       @Override
-       public void dispose() {
-               // Dispose the tab folder manager
-               if (tabFolderManager != null) {
-                       tabFolderManager.dispose();
-                       tabFolderManager = null;
-               }
-               // Dispose the tab folder menu handler
-               if (tabFolderMenuHandler != null) {
-                       tabFolderMenuHandler.dispose();
-                       tabFolderMenuHandler = null;
-               }
-               // Dispose the tab folder toolbar handler
-               if (tabFolderToolbarHandler != null) {
-                       tabFolderToolbarHandler.dispose();
-                       tabFolderToolbarHandler = null;
-               }
-
-               super.dispose();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.part.ViewPart#init(org.eclipse.ui.IViewSite, org.eclipse.ui.IMemento)
-        */
-       @Override
-       public void init(IViewSite site, IMemento memento) throws PartInitException {
-           super.init(site, memento);
-           restoreState(memento);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-        */
-       @Override
-       public void createPartControl(Composite parent) {
-               // Create the page book control
-               pageBookControl = doCreatePageBookControl(parent);
-               Assert.isNotNull(pageBookControl);
-               // Configure the page book control
-               doConfigurePageBookControl(pageBookControl);
-
-               // Create the empty page control
-               emptyPageControl = doCreateEmptyPageControl(pageBookControl);
-               Assert.isNotNull(emptyPageControl);
-               // Configure the empty page control
-               doConfigureEmptyPageControl(emptyPageControl);
-
-               // Create the tab folder control (empty)
-               tabFolderControl = doCreateTabFolderControl(pageBookControl);
-               Assert.isNotNull(tabFolderControl);
-               // Configure the tab folder control
-               doConfigureTabFolderControl(tabFolderControl);
-
-               // Create the tab folder manager
-               tabFolderManager = doCreateTabFolderManager(this);
-               Assert.isNotNull(tabFolderManager);
-               // Set the tab folder manager as the selection provider
-               getSite().setSelectionProvider(tabFolderManager);
-
-               // Setup the tab folder menu handler
-               tabFolderMenuHandler = doCreateTabFolderMenuHandler(this);
-               Assert.isNotNull(tabFolderMenuHandler);
-               doConfigureTabFolderMenuHandler(tabFolderMenuHandler);
-
-               // Setup the tab folder toolbar handler
-               tabFolderToolbarHandler = doCreateTabFolderToolbarHandler(this);
-               Assert.isNotNull(tabFolderToolbarHandler);
-               doConfigureTabFolderToolbarHandler(tabFolderToolbarHandler);
-
-               // Show the empty page control by default
-               switchToEmptyPageControl();
-
-               String secondaryId = ((IViewSite) getSite()).getSecondaryId();
-               if (secondaryId != null) {
-                       String defaultTitle = getPartName();
-                       // set title
-                       setPartName(defaultTitle + " " + secondaryId); //$NON-NLS-1$
-               }
-
-               // Initialize DnD support
-               addDragSupport();
-               addDropSupport();
-       }
-
-       /**
-        * Creates the {@link PageBook} instance.
-        *
-        * @param parent The parent composite. Must not be <code>null</code>.
-        * @return The page book instance. Must never be <code>null</code>.
-        */
-       protected PageBook doCreatePageBookControl(Composite parent) {
-               return new PageBook(parent, SWT.NONE);
-       }
-
-       /**
-        * Configure the given page book control.
-        *
-        * @param pagebook The page book control. Must not be <code>null</code>.
-        */
-       protected void doConfigurePageBookControl(PageBook pagebook) {
-               Assert.isNotNull(pagebook);
-
-               if (getContextHelpId() != null) PlatformUI.getWorkbench().getHelpSystem().setHelp(pagebook, getContextHelpId());
-       }
-
-       /**
-        * Returns the context help id associated with the terminals console view instance.
-        * <p>
-        * <b>Note:</b> The default implementation returns the view id as context help id.
-        *
-        * @return The context help id or <code>null</code> if none is associated.
-        */
-       @Override
-       public String getContextHelpId() {
-               return getViewSite().getId();
-       }
-
-       /**
-        * Creates the empty page control instance.
-        *
-        * @param parent The parent composite. Must not be <code>null</code>.
-        * @return The empty page control instance. Must never be <code>null</code>.
-        */
-       protected Control doCreateEmptyPageControl(Composite parent) {
-               Composite composite = new Composite(parent, SWT.NONE);
-               composite.setLayout(new GridLayout());
-               composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-               return composite;
-       }
-
-       /**
-        * Configures the empty page control.
-        *
-        * @param control The empty page control. Must not be <code>null</code>.
-        */
-       protected void doConfigureEmptyPageControl(Control control) {
-               Assert.isNotNull(control);
-       }
-
-       /**
-        * Creates the tab folder control instance.
-        *
-        * @param parent The parent composite. Must not be <code>null</code>.
-        * @return The tab folder control instance. Must never be <code>null</code>.
-        */
-       protected CTabFolder doCreateTabFolderControl(Composite parent) {
-               return new CTabFolder(parent, SWT.NO_REDRAW_RESIZE | SWT.NO_TRIM | SWT.FLAT | SWT.BORDER);
-       }
-
-       /**
-        * Configures the tab folder control.
-        *
-        * @param tabFolder The tab folder control. Must not be <code>null</code>.
-        */
-       protected void doConfigureTabFolderControl(final CTabFolder tabFolder) {
-               Assert.isNotNull(tabFolder);
-
-               // Set the layout data
-               tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-               // Set the tab gradient coloring from the global preferences
-               if (useGradientTabBackgroundColor()) {
-                       tabFolder.setSelectionBackground(new Color[] {
-                                                                                                       JFaceResources.getColorRegistry().get("org.eclipse.ui.workbench.ACTIVE_TAB_BG_START"), //$NON-NLS-1$
-                                                                                                       JFaceResources.getColorRegistry().get("org.eclipse.ui.workbench.ACTIVE_TAB_BG_END") //$NON-NLS-1$
-                                                                                               }, new int[] { 100 }, true);
-               }
-               // Apply the tab folder selection foreground color
-               tabFolder.setSelectionForeground(JFaceResources.getColorRegistry().get("org.eclipse.ui.workbench.ACTIVE_TAB_TEXT_COLOR")); //$NON-NLS-1$
-
-               // Set the tab style from the global preferences
-               tabFolder.setSimple(PlatformUI.getPreferenceStore().getBoolean(IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS));
-
-               // Attach the mouse listener
-               tabFolder.addMouseListener(new MouseAdapter() {
-                       @Override
-                       public void mouseDown(MouseEvent e) {
-                               if (e.button == 2) {
-                                       // middle mouse button click - close tab
-                                       CTabItem item = tabFolder.getItem(new Point(e.x, e.y));
-                                       if (item != null) item.dispose();
-                               }
-                       }
-               });
-       }
-
-       /**
-        * If <code>True</code> is returned, the inner tabs are colored with gradient coloring set in
-        * the Eclipse workbench color settings.
-        *
-        * @return <code>True</code> to use gradient tab colors, <code>false</code> otherwise.
-        */
-       protected boolean useGradientTabBackgroundColor() {
-               return false;
-       }
-
-       /**
-        * Creates the tab folder manager.
-        *
-        * @param parentView The parent view instance. Must not be <code>null</code>.
-        * @return The tab folder manager. Must never be <code>null</code>.
-        */
-       protected TabFolderManager doCreateTabFolderManager(ITerminalsView parentView) {
-               Assert.isNotNull(parentView);
-               return new TabFolderManager(parentView);
-       }
-
-       /**
-        * Creates the tab folder menu handler.
-        *
-        * @param parentView The parent view instance. Must not be <code>null</code>.
-        * @return The tab folder menu handler. Must never be <code>null</code>.
-        */
-       protected TabFolderMenuHandler doCreateTabFolderMenuHandler(ITerminalsView parentView) {
-               Assert.isNotNull(parentView);
-               return new TabFolderMenuHandler(parentView);
-       }
-
-       /**
-        * Configure the tab folder menu handler
-        *
-        * @param menuHandler The tab folder menu handler. Must not be <code>null</code>.
-        */
-       protected void doConfigureTabFolderMenuHandler(TabFolderMenuHandler menuHandler) {
-               Assert.isNotNull(menuHandler);
-               menuHandler.initialize();
-       }
-
-       /**
-        * Creates the tab folder toolbar handler.
-        *
-        * @param parentView The parent view instance. Must not be <code>null</code>.
-        * @return The tab folder toolbar handler. Must never be <code>null</code>.
-        */
-       protected TabFolderToolbarHandler doCreateTabFolderToolbarHandler(ITerminalsView parentView) {
-               Assert.isNotNull(parentView);
-               return new TabFolderToolbarHandler(parentView);
-       }
-
-       /**
-        * Configure the tab folder toolbar handler
-        *
-        * @param toolbarHandler The tab folder toolbar handler. Must not be <code>null</code>.
-        */
-       protected void doConfigureTabFolderToolbarHandler(TabFolderToolbarHandler toolbarHandler) {
-               Assert.isNotNull(toolbarHandler);
-               toolbarHandler.initialize();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-        */
-       @Override
-       public void setFocus() {
-               if (pageBookControl != null) pageBookControl.setFocus();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView#switchToEmptyPageControl()
-        */
-       @Override
-       public void switchToEmptyPageControl() {
-               if (pageBookControl != null && !pageBookControl.isDisposed()
-                                               && emptyPageControl != null && !emptyPageControl.isDisposed()) {
-                       pageBookControl.showPage(emptyPageControl);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView#switchToTabFolderControl()
-        */
-       @Override
-       public void switchToTabFolderControl() {
-               if (pageBookControl != null && !pageBookControl.isDisposed()
-                                               && tabFolderControl != null && !tabFolderControl.isDisposed()) {
-                       pageBookControl.showPage(tabFolderControl);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.part.WorkbenchPart#getAdapter(java.lang.Class)
-        */
-       @SuppressWarnings({ "unchecked", "rawtypes" })
-    @Override
-       public Object getAdapter(Class adapter) {
-               if (CTabFolder.class.isAssignableFrom(adapter)) {
-                       return tabFolderControl;
-               }
-               if (TabFolderManager.class.isAssignableFrom(adapter)) {
-                       return tabFolderManager;
-               }
-               if (TabFolderMenuHandler.class.isAssignableFrom(adapter)) {
-                       return tabFolderMenuHandler;
-               }
-               if (TabFolderToolbarHandler.class.isAssignableFrom(adapter)) {
-                       return tabFolderToolbarHandler;
-               }
-               if (TerminalsViewMementoHandler.class.isAssignableFrom(adapter)) {
-                       return mementoHandler;
-               }
-
-               return super.getAdapter(adapter);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.part.ViewPart#saveState(org.eclipse.ui.IMemento)
-        */
-       @Override
-       public void saveState(IMemento memento) {
-               super.saveState(memento);
-           if (memento == null) return;
-           mementoHandler.saveState(this, memento);
-       }
-
-       /**
-        * Restore the view state from the given memento.
-        *
-        * @param memento The memento or <code>null</code>.
-        */
-       public void restoreState(IMemento memento) {
-               if (memento == null) return;
-               mementoHandler.restoreState(this, memento);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.part.IShowInTarget#show(org.eclipse.ui.part.ShowInContext)
-        */
-       @SuppressWarnings("cast")
-    @Override
-       public boolean show(ShowInContext context) {
-               if (context != null) {
-                       // Get the selection from the context
-                       ISelection selection = context.getSelection();
-
-                       // If the selection is not set or empty, look at the input element of
-                       // the show in context.
-                       if (!(selection instanceof IStructuredSelection) || selection.isEmpty()) {
-                               Object input = context.getInput();
-                               // If coming from the EGit repository viewer, the input element is
-                               // org.eclipse.egit.ui.internal.history.HistoryPageInput
-                               if ("org.eclipse.egit.ui.internal.history.HistoryPageInput".equals(input.getClass().getName())) { //$NON-NLS-1$
-                                       Bundle bundle = Platform.getBundle("org.eclipse.egit.ui"); //$NON-NLS-1$
-                                       if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
-                                               selection = GitShowInContextHandler.getSelection(input);
-                                       }
-                               }
-                       }
-
-                       // The selection must contain elements that can be adapted to IResource, File or IPath
-                       if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
-                               boolean isValid = true;
-
-                               // Build a new structured selection with the adapted elements
-                               List<Object> elements = new ArrayList<Object>();
-
-                               Iterator<?> iterator = ((IStructuredSelection)selection).iterator();
-                               while (iterator.hasNext() && isValid) {
-                                       Object element = iterator.next();
-                                       Object adapted = null;
-
-                                       if (element instanceof File) {
-                                               if (!elements.contains(element)) elements.add(element);
-                                               continue;
-                                       }
-                                       adapted = element instanceof IAdaptable ? ((IAdaptable)element).getAdapter(File.class) : null;
-                                       if (adapted == null) adapted = Platform.getAdapterManager().getAdapter(element, File.class);
-                                       if (adapted == null) adapted = Platform.getAdapterManager().loadAdapter(element, File.class.getName());
-                                       if (adapted != null) {
-                                               if (!elements.contains(adapted)) elements.add(adapted);
-                                               continue;
-                                       }
-
-                                       if (element instanceof IPath) {
-                                               if (!elements.contains(element)) elements.add(element);
-                                               continue;
-                                       }
-                                       adapted = element instanceof IAdaptable ? ((IAdaptable)element).getAdapter(IPath.class) : null;
-                                       if (adapted == null) adapted = Platform.getAdapterManager().getAdapter(element, IPath.class);
-                                       if (adapted == null) adapted = Platform.getAdapterManager().loadAdapter(element, IPath.class.getName());
-                                       if (adapted != null) {
-                                               if (!elements.contains(adapted)) elements.add(adapted);
-                                               continue;
-                                       }
-
-                                       Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
-                                       if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
-                                               if (element instanceof org.eclipse.core.resources.IResource) {
-                                                       if (!elements.contains(element)) elements.add(element);
-                                                       continue;
-                                               }
-
-                                               adapted = element instanceof IAdaptable ? ((IAdaptable)element).getAdapter(org.eclipse.core.resources.IResource.class) : null;
-                                               if (adapted == null) adapted = Platform.getAdapterManager().getAdapter(element, org.eclipse.core.resources.IResource.class);
-                                               if (adapted == null) adapted = Platform.getAdapterManager().loadAdapter(element, org.eclipse.core.resources.IResource.class.getName());
-                                       }
-                                       if (adapted != null) {
-                                               if (!elements.contains(adapted)) elements.add(adapted);
-                                               continue;
-                                       }
-
-                                       // The EGit repository view can also set a RepositoryTreeNode (and subclasses)
-                                       // "org.eclipse.egit.ui.internal.repository.tree...."
-                                       if (element.getClass().getName().startsWith("org.eclipse.egit.ui.internal.repository.tree")) { //$NON-NLS-1$
-                                               bundle = Platform.getBundle("org.eclipse.egit.ui"); //$NON-NLS-1$
-                                               if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
-                                                       adapted = GitShowInContextHandler.getPath(element);
-                                               }
-                                       }
-                                       if (adapted != null) {
-                                               if (!elements.contains(adapted)) elements.add(adapted);
-                                               continue;
-                                       }
-
-                                       isValid = false;
-                               }
-
-                               // If the selection is valid, fire the command to open the local terminal
-                               if (isValid) {
-                                       selection =  new StructuredSelection(elements);
-                                       ICommandService service = (ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class);
-                                       Command command = service != null ? service.getCommand("org.eclipse.tm.terminal.connector.local.command.launch") : null; //$NON-NLS-1$
-                                       if (command != null && command.isDefined() && command.isEnabled()) {
-                                               try {
-                                                       ParameterizedCommand pCmd = ParameterizedCommand.generateCommand(command, null);
-                                                       Assert.isNotNull(pCmd);
-                                                       IHandlerService handlerSvc = (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
-                                                       Assert.isNotNull(handlerSvc);
-                                                       IEvaluationContext ctx = handlerSvc.getCurrentState();
-                                                       ctx = new EvaluationContext(ctx, selection);
-                                                       ctx.addVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME, selection);
-                                                       handlerSvc.executeCommandInContext(pCmd, null, ctx);
-                                               } catch (Exception e) {
-                                                       // If the platform is in debug mode, we print the exception to the log view
-                                                       if (Platform.inDebugMode()) {
-                                                               IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(),
-                                                                                                                       Messages.AbstractTriggerCommandHandler_error_executionFailed, e);
-                                                               UIPlugin.getDefault().getLog().log(status);
-                                                       }
-                                               }
-                                       }
-                                       return true;
-                               }
-                       }
-               }
-           return false;
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/view/TerminalsViewMementoHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/view/TerminalsViewMementoHandler.java
deleted file mode 100644 (file)
index 9826c31..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2015 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.terminal.view.ui.view;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate;
-import org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler;
-import org.eclipse.tm.terminal.view.ui.launcher.LauncherDelegateManager;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Take care of the persisted state handling of the "Terminal" view.
- */
-public class TerminalsViewMementoHandler {
-       // The list of items to save. See the workbench listener implementation
-       // in o.e.tm.terminal.view.ui.activator.UIPlugin.
-       private final List<CTabItem> saveables = new ArrayList<CTabItem>();
-
-       /**
-        * Sets the list of saveable items.
-        *
-        * @param saveables The list of saveable items. Must not be <code>null</code>.
-        */
-       public void setSaveables(List<CTabItem> saveables) {
-               Assert.isNotNull(saveables);
-               this.saveables.clear();
-               this.saveables.addAll(saveables);
-       }
-
-       /**
-        * Saves the view state in the given memento.
-        *
-        * @param view The terminals view. Must not be <code>null</code>.
-        * @param memento The memento. Must not be <code>null</code>.
-        */
-       @SuppressWarnings("unchecked")
-    public void saveState(TerminalsView view, IMemento memento) {
-               Assert.isNotNull(view);
-               Assert.isNotNull(memento);
-
-               // Create a child element within the memento holding the
-               // connection info of the open, non-terminated tab items
-               memento = memento.createChild("terminalConnections"); //$NON-NLS-1$
-               Assert.isNotNull(memento);
-
-               // Write the view id and secondary id
-               memento.putString("id", view.getViewSite().getId()); //$NON-NLS-1$
-               memento.putString("secondaryId", view.getViewSite().getSecondaryId()); //$NON-NLS-1$
-
-               // Loop the saveable items and store the connection data of each
-               // item to the memento
-               for (CTabItem item : saveables) {
-                       // Ignore disposed items
-                       if (item.isDisposed()) continue;
-
-                       // Get the original terminal properties associated with the tab item
-                       Map<String, Object> properties = (Map<String, Object>)item.getData("properties"); //$NON-NLS-1$
-                       if (properties == null) continue;
-
-                       // Get the terminal launcher delegate
-                       String delegateId = (String)properties.get(ITerminalsConnectorConstants.PROP_DELEGATE_ID);
-                       ILauncherDelegate delegate = delegateId != null ? LauncherDelegateManager.getInstance().getLauncherDelegate(delegateId, false) : null;
-                       IMementoHandler mementoHandler = delegate != null ? (IMementoHandler)delegate.getAdapter(IMementoHandler.class) : null;
-                       if (mementoHandler != null) {
-                               // Create terminal connection child memento
-                               IMemento connectionMemento = memento.createChild("connection"); //$NON-NLS-1$
-                               Assert.isNotNull(connectionMemento);
-                               // Store the common attributes
-                               connectionMemento.putString(ITerminalsConnectorConstants.PROP_DELEGATE_ID, delegateId);
-
-                               String terminalConnectorId = (String)properties.get(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID);
-                               if (terminalConnectorId != null) {
-                                       connectionMemento.putString(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID, terminalConnectorId);
-                               }
-
-                               if (properties.get(ITerminalsConnectorConstants.PROP_FORCE_NEW) instanceof Boolean) {
-                                       connectionMemento.putBoolean(ITerminalsConnectorConstants.PROP_FORCE_NEW, ((Boolean)properties.get(ITerminalsConnectorConstants.PROP_FORCE_NEW)).booleanValue());
-                               }
-
-                               // Store the current encoding
-                               ITerminalViewControl terminal = (ITerminalViewControl)item.getData();
-                               String encoding = terminal != null ? terminal.getEncoding() : null;
-                               if (encoding == null || "".equals(encoding)) encoding = (String)properties.get(ITerminalsConnectorConstants.PROP_ENCODING); //$NON-NLS-1$
-                               if (encoding != null && !"".equals(encoding)) { //$NON-NLS-1$
-                                       connectionMemento.putString(ITerminalsConnectorConstants.PROP_ENCODING, encoding);
-                               }
-
-                               // Pass on to the memento handler
-                               mementoHandler.saveState(connectionMemento, properties);
-                       }
-               }
-       }
-
-       /**
-        * Restore the view state from the given memento.
-        *
-        * @param view The terminals view. Must not be <code>null</code>.
-        * @param memento The memento. Must not be <code>null</code>.
-        */
-       protected void restoreState(final TerminalsView view, IMemento memento) {
-               Assert.isNotNull(view);
-               Assert.isNotNull(memento);
-
-               // Get the "terminalConnections" memento
-               memento = memento.getChild("terminalConnections"); //$NON-NLS-1$
-               if (memento != null) {
-                       // Read view id and secondary id
-                       String id = memento.getString("id"); //$NON-NLS-1$
-                       String secondaryId = memento.getString("secondaryId"); //$NON-NLS-1$
-                       if ("null".equals(secondaryId)) secondaryId = null; //$NON-NLS-1$
-
-                       // Get all the "connection" memento's.
-                       IMemento[] connections = memento.getChildren("connection"); //$NON-NLS-1$
-                       for (IMemento connection : connections) {
-                               // Create the properties container that holds the terminal properties
-                               Map<String, Object> properties = new HashMap<String, Object>();
-
-                               // Set the view id attributes
-                               properties.put(ITerminalsConnectorConstants.PROP_ID, id);
-                               properties.put(ITerminalsConnectorConstants.PROP_SECONDARY_ID, secondaryId);
-
-                               // Restore the common attributes
-                               properties.put(ITerminalsConnectorConstants.PROP_DELEGATE_ID, connection.getString(ITerminalsConnectorConstants.PROP_DELEGATE_ID));
-                               properties.put(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID, connection.getString(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID));
-                               if (connection.getBoolean(ITerminalsConnectorConstants.PROP_FORCE_NEW) != null) {
-                                       properties.put(ITerminalsConnectorConstants.PROP_FORCE_NEW, connection.getBoolean(ITerminalsConnectorConstants.PROP_FORCE_NEW));
-                               }
-
-                               // Restore the encoding
-                               if (connection.getString(ITerminalsConnectorConstants.PROP_ENCODING) != null) {
-                                       properties.put(ITerminalsConnectorConstants.PROP_ENCODING, connection.getString(ITerminalsConnectorConstants.PROP_ENCODING));
-                               }
-
-                // Get the terminal launcher delegate
-                String delegateId = (String)properties.get(ITerminalsConnectorConstants.PROP_DELEGATE_ID);
-                ILauncherDelegate delegate = delegateId != null ? LauncherDelegateManager.getInstance().getLauncherDelegate(delegateId, false) : null;
-                IMementoHandler mementoHandler = delegate != null ? (IMementoHandler)delegate.getAdapter(IMementoHandler.class) : null;
-                if (mementoHandler != null) {
-                       // Pass on to the memento handler
-                       mementoHandler.restoreState(connection, properties);
-                }
-
-                // Restore the terminal connection
-                if (delegate != null && !properties.isEmpty()) {
-                       delegate.execute(properties, null);
-                }
-                       }
-               }
-       }
-
-       /**
-        * Executes the given runnable asynchronously in the display thread.
-        *
-        * @param runnable The runnable. Must not be <code>null</code>.
-        */
-       /* default */ void asyncExec(Runnable runnable) {
-               Assert.isNotNull(runnable);
-               if (PlatformUI.getWorkbench() != null && PlatformUI.getWorkbench().getDisplay() != null && !PlatformUI.getWorkbench().getDisplay().isDisposed()) {
-                       PlatformUI.getWorkbench().getDisplay().asyncExec(runnable);
-               }
-       }
-}
diff --git a/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/view/showin/GitShowInContextHandler.java b/rtosTMTerminal/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/view/showin/GitShowInContextHandler.java
deleted file mode 100644 (file)
index cdd4381..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 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.terminal.view.ui.view.showin;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-/**
- * Git show in context handler implementation.
- */
-@SuppressWarnings("restriction")
-public class GitShowInContextHandler {
-
-       /**
-        * Converts the data from the input object into a selection.
-        *
-        * @param input The input element. Must not be <code>null</code>.
-        * @return The selection or <code>null</code>.
-        */
-    public static ISelection getSelection(Object input) {
-               Assert.isNotNull(input);
-
-               List<Object> elements = new ArrayList<Object>();
-
-               if (input instanceof org.eclipse.egit.ui.internal.history.HistoryPageInput) {
-                       org.eclipse.egit.ui.internal.history.HistoryPageInput inp = (org.eclipse.egit.ui.internal.history.HistoryPageInput) input;
-
-                       if (inp.isSingleFile()) {
-                               elements.add(inp.getSingleFile());
-                       } else {
-                               File[] fl = inp.getFileList();
-                               if (fl != null && fl.length > 0) {
-                                       for (File f : fl) {
-                                               if (f.canRead() && !elements.contains(f)) {
-                                                       elements.add(f);
-                                               }
-                                       }
-                               }
-
-                               IResource[] rl = inp.getItems();
-                               if (rl != null && rl.length > 0) {
-                                       for (IResource r : rl) {
-                                               if (r.isAccessible() && !elements.contains(r)) {
-                                                       elements.add(r);
-                                               }
-                                       }
-                               }
-                       }
-               }
-
-               return elements.isEmpty() ? null : new StructuredSelection(elements);
-       }
-
-    /**
-     * Returns the path of the given element.
-     *
-     * @param element The element. Must not be <code>null</code>.
-     * @return The path or <code>null</code>.
-     */
-    public static IPath getPath(Object element) {
-       Assert.isNotNull(element);
-
-       IPath path = null;
-
-       if (element instanceof org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode) {
-               path = ((org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode<?>)element).getPath();
-       }
-
-       return path;
-    }
-}