/******************************************************************************* | |
* Copyright (c) 2017 QNX Software Systems 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.cdt.launch.serial.ui.internal; | |
import java.io.IOException; | |
import org.eclipse.cdt.launch.serial.SerialFlashLaunchTargetProvider; | |
import org.eclipse.cdt.serial.SerialPort; | |
import org.eclipse.core.runtime.IStatus; | |
import org.eclipse.core.runtime.Status; | |
import org.eclipse.jface.wizard.WizardPage; | |
import org.eclipse.launchbar.core.target.ILaunchTarget; | |
import org.eclipse.swt.SWT; | |
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; | |
public class NewSerialFlashTargetWizardPage extends WizardPage { | |
private ILaunchTarget launchTarget; | |
private Text nameText; | |
private Text osText; | |
private Text archText; | |
private Combo serialPortCombo; | |
public NewSerialFlashTargetWizardPage(ILaunchTarget launchTarget) { | |
super(NewSerialFlashTargetWizardPage.class.getName()); | |
this.launchTarget = launchTarget; | |
setTitle(Messages.NewSerialFlashTargetWizardPage_Title); | |
setDescription(Messages.NewSerialFlashTargetWizardPage_Description); | |
} | |
@Override | |
public void createControl(Composite parent) { | |
Composite comp = new Composite(parent, SWT.NONE); | |
comp.setLayout(new GridLayout(2, false)); | |
setControl(comp); | |
Label label = new Label(comp, SWT.NONE); | |
label.setText(Messages.NewSerialFlashTargetWizardPage_Name); | |
nameText = new Text(comp, SWT.BORDER); | |
nameText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); | |
if (launchTarget != null) { | |
nameText.setText(launchTarget.getId()); | |
} | |
label = new Label(comp, SWT.NONE); | |
label.setText(Messages.NewSerialFlashTargetWizardPage_OperatingSystem); | |
osText = new Text(comp, SWT.BORDER); | |
osText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); | |
if (launchTarget != null) { | |
String os = launchTarget.getAttribute(ILaunchTarget.ATTR_OS, null); | |
if (os != null) { | |
osText.setText(os); | |
} | |
} | |
label = new Label(comp, SWT.NONE); | |
label.setText(Messages.NewSerialFlashTargetWizardPage_CPUArchitecture); | |
archText = new Text(comp, SWT.BORDER); | |
archText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); | |
if (launchTarget != null) { | |
String arch = launchTarget.getAttribute(ILaunchTarget.ATTR_ARCH, null); | |
if (arch != null) { | |
archText.setText(arch); | |
} | |
} | |
label = new Label(comp, SWT.NONE); | |
label.setText(Messages.NewSerialFlashTargetWizardPage_SerialPort); | |
serialPortCombo = new Combo(comp, SWT.NONE); | |
try { | |
String[] ports = SerialPort.list(); | |
for (String port : ports) { | |
serialPortCombo.add(port); | |
} | |
if (serialPortCombo.getItemCount() > 0) { | |
if (launchTarget != null) { | |
String targetPort = launchTarget.getAttribute(SerialFlashLaunchTargetProvider.ATTR_SERIAL_PORT, | |
null); | |
if (targetPort != null) { | |
int i = 0; | |
for (String port : ports) { | |
if (port.equals(targetPort)) { | |
serialPortCombo.select(i); | |
break; | |
} | |
} | |
} | |
} | |
if (serialPortCombo.getSelectionIndex() < 0) { | |
serialPortCombo.select(0); | |
} | |
} | |
} catch (IOException e) { | |
Activator.log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, Messages.NewSerialFlashTargetWizardPage_Fetching, e)); | |
} | |
} | |
public String getTargetName() { | |
return nameText.getText(); | |
} | |
public String getOS() { | |
return osText.getText(); | |
} | |
public String getArch() { | |
return archText.getText(); | |
} | |
public String getSerialPortName() { | |
return serialPortCombo.getText(); | |
} | |
} |