diff options
Diffstat (limited to 'terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals')
10 files changed, 0 insertions, 2126 deletions
diff --git a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/activator/UIPlugin.java b/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/activator/UIPlugin.java deleted file mode 100644 index 19ac52a26..000000000 --- a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/activator/UIPlugin.java +++ /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.tcf.te.ui.terminals.serial.activator; - -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.resource.ImageRegistry; -import org.eclipse.swt.graphics.Image; -import org.eclipse.tcf.te.core.terminals.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.tcf.te.ui.terminals.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/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/controls/SerialConfigurationPanel.java b/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/controls/SerialConfigurationPanel.java deleted file mode 100644 index 8459fcf89..000000000 --- a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/controls/SerialConfigurationPanel.java +++ /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.tcf.te.ui.terminals.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.tcf.te.core.terminals.interfaces.constants.ITerminalsConnectorConstants; -import org.eclipse.tcf.te.ui.terminals.interfaces.IConfigurationPanelContainer; -import org.eclipse.tcf.te.ui.terminals.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.tcf.te.ui.terminals.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.tcf.te.ui.terminals.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.internal.terminal.serial.SerialConnector"); //$NON-NLS-1$ - - serialSettingsPage.extractData(data); - data.put(ITerminalsConnectorConstants.PROP_ENCODING, getEncoding()); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.ui.terminals.panels.AbstractExtendedConfigurationPanel#fillSettingsForHost(java.lang.String) - */ - @Override - protected void fillSettingsForHost(String host){ - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.ui.terminals.panels.AbstractExtendedConfigurationPanel#saveSettingsForHost(boolean) - */ - @Override - protected void saveSettingsForHost(boolean add){ - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.ui.terminals.panels.AbstractConfigurationPanel#isValid() - */ - @Override - public boolean isValid(){ - return serialSettingsPage.isValid(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.ui.terminals.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.tcf.te.ui.terminals.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.tcf.te.ui.terminals.panels.AbstractExtendedConfigurationPanel#getHostFromSettings() - */ - @Override - protected String getHostFromSettings() { - return null; - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.ui.terminals.panels.AbstractExtendedConfigurationPanel#isWithHostList() - */ - @Override - public boolean isWithHostList() { - return false; - } -} diff --git a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/controls/SerialLinePanel.java b/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/controls/SerialLinePanel.java deleted file mode 100644 index 0e8feb62d..000000000 --- a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/controls/SerialLinePanel.java +++ /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.tcf.te.ui.terminals.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.tcf.te.core.terminals.interfaces.constants.ITerminalsConnectorConstants; -import org.eclipse.tcf.te.ui.terminals.interfaces.IConfigurationPanelContainer; -import org.eclipse.tcf.te.ui.terminals.panels.AbstractConfigurationPanel; -import org.eclipse.tcf.te.ui.terminals.serial.activator.UIPlugin; -import org.eclipse.tcf.te.ui.terminals.serial.interfaces.ITraceIds; -import org.eclipse.tcf.te.ui.terminals.serial.nls.Messages; -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.tcf.te.ui.controls.interfaces.IWizardConfigurationPanel#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.tcf.te.ui.controls.panels.AbstractWizardConfigurationPanel#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.tcf.te.ui.controls.panels.AbstractWizardConfigurationPanel#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.tcf.te.ui.controls.panels.AbstractWizardConfigurationPanel#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.tcf.te.ui.terminals.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.tcf.te.ui.terminals.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/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/controls/SerialPortAddressDialog.java b/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/controls/SerialPortAddressDialog.java deleted file mode 100644 index 1e5632c42..000000000 --- a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/controls/SerialPortAddressDialog.java +++ /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.tcf.te.ui.terminals.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.tcf.te.ui.terminals.serial.activator.UIPlugin; -import org.eclipse.tcf.te.ui.terminals.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.tcf.te.ui.dialogs.CustomTitleAreaDialog#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/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/interfaces/ITraceIds.java b/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/interfaces/ITraceIds.java deleted file mode 100644 index 9f0df469e..000000000 --- a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/interfaces/ITraceIds.java +++ /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.tcf.te.ui.terminals.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/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/interfaces/IWireTypeSerial.java b/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/interfaces/IWireTypeSerial.java deleted file mode 100644 index a8da2a84f..000000000 --- a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/interfaces/IWireTypeSerial.java +++ /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.tcf.te.ui.terminals.serial.interfaces; - -/** - * The properties specific to the wire type "serial". - */ -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/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/launcher/SerialLauncherDelegate.java b/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/launcher/SerialLauncherDelegate.java deleted file mode 100644 index 1ad192c30..000000000 --- a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/launcher/SerialLauncherDelegate.java +++ /dev/null @@ -1,155 +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.tcf.te.ui.terminals.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.tcf.te.core.terminals.TerminalServiceFactory; -import org.eclipse.tcf.te.core.terminals.interfaces.ITerminalService; -import org.eclipse.tcf.te.core.terminals.interfaces.ITerminalService.Done; -import org.eclipse.tcf.te.core.terminals.interfaces.constants.ITerminalsConnectorConstants; -import org.eclipse.tcf.te.ui.terminals.interfaces.IConfigurationPanel; -import org.eclipse.tcf.te.ui.terminals.interfaces.IConfigurationPanelContainer; -import org.eclipse.tcf.te.ui.terminals.interfaces.IMementoHandler; -import org.eclipse.tcf.te.ui.terminals.internal.SettingsStore; -import org.eclipse.tcf.te.ui.terminals.launcher.AbstractLauncherDelegate; -import org.eclipse.tcf.te.ui.terminals.serial.controls.SerialConfigurationPanel; -import org.eclipse.tcf.te.ui.terminals.serial.nls.Messages; -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.internal.terminal.serial.SerialSettings; - -/** - * 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.tcf.te.ui.terminals.interfaces.ILauncherDelegate#needsUserConfiguration() - */ - @Override - public boolean needsUserConfiguration() { - return true; - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.ui.terminals.interfaces.ILauncherDelegate#getPanel(org.eclipse.tcf.te.ui.terminals.interfaces.IConfigurationPanelContainer) - */ - @Override - public IConfigurationPanel getPanel(IConfigurationPanelContainer container) { - return new SerialConfigurationPanel(container); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.ui.terminals.interfaces.ILauncherDelegate#execute(java.util.Map, org.eclipse.tcf.te.core.terminals.interfaces.ITerminalService.Done) - */ - @Override - public void execute(Map<String, Object> properties, 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 "Serial <port> (Start time) ". - * - * @return The terminal title string or <code>null</code>. - */ - private String getTerminalTitle(Map<String, Object> properties) { - 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.tcf.te.ui.terminals.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.internal.terminal.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.makeSettingsPage(); - // And load the real settings - connector.load(store); - } - - return connector; - } -} diff --git a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/launcher/SerialMementoHandler.java b/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/launcher/SerialMementoHandler.java deleted file mode 100644 index 47615d288..000000000 --- a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/launcher/SerialMementoHandler.java +++ /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.tcf.te.ui.terminals.serial.launcher; - -import java.util.Map; - -import org.eclipse.core.runtime.Assert; -import org.eclipse.tcf.te.core.terminals.interfaces.constants.ITerminalsConnectorConstants; -import org.eclipse.tcf.te.ui.terminals.interfaces.IMementoHandler; -import org.eclipse.ui.IMemento; - -/** - * Serial terminal connection memento handler implementation. - */ -public class SerialMementoHandler implements IMementoHandler { - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.ui.terminals.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.tcf.te.ui.terminals.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/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/nls/Messages.java b/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/nls/Messages.java deleted file mode 100644 index 530171509..000000000 --- a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/nls/Messages.java +++ /dev/null @@ -1,68 +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.tcf.te.ui.terminals.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.tcf.te.ui.terminals.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; -} diff --git a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/nls/Messages.properties b/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/nls/Messages.properties deleted file mode 100644 index 2b89c1009..000000000 --- a/terminals/plugins/org.eclipse.tcf.te.ui.terminals.serial/src/org/eclipse/tcf/te/ui/terminals/serial/nls/Messages.properties +++ /dev/null @@ -1,46 +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. |