blob: 58ab4e7660a2b8a4b8718db116a09f6c5b9f9716 [file] [log] [blame]
/*******************************************************************************
* 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();
}
}