From c7da892cb23d50d4d85746c9a0b6b14bf570989d Mon Sep 17 00:00:00 2001 From: Adrian Dudau Date: Thu, 26 Jun 2014 13:23:09 +0200 Subject: initial commit for Enea Linux 4.0 Migrated from the internal git server on the daisy-enea branch Signed-off-by: Adrian Dudau --- .../remotetools/wizards/bsp/YoctoBSPWizard.java | 99 ++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/wizards/bsp/YoctoBSPWizard.java (limited to 'plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/wizards/bsp/YoctoBSPWizard.java') diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/wizards/bsp/YoctoBSPWizard.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/wizards/bsp/YoctoBSPWizard.java new file mode 100644 index 0000000..3ab24c0 --- /dev/null +++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/wizards/bsp/YoctoBSPWizard.java @@ -0,0 +1,99 @@ +/******************************************************************************* + * Copyright (c) 2010 Intel Corporation. + * 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: + * Intel - initial API and implementation + *******************************************************************************/ +package org.yocto.sdk.remotetools.wizards.bsp; + +import java.util.HashSet; + +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.wizard.IWizardPage; +import org.eclipse.jface.wizard.Wizard; +import org.yocto.sdk.remotetools.YoctoBspElement; +import org.yocto.sdk.remotetools.YoctoBspPropertyElement; +import org.yocto.sdk.remotetools.YoctoJSONHelper; + +/** + * A wizard for creating Yocto BSP. + * + * @author jzhang + * + */ +public class YoctoBSPWizard extends Wizard { + private static final String CREATE_CMD = "/scripts/yocto-bsp create "; + private static final String PROPERTY_VALUE_FILE = "/tmp/propertyvalues.json"; + + private MainPage mainPage; + private PropertiesPage propertiesPage; + private final YoctoBspElement bspElem; + + public YoctoBSPWizard() { + super(); + bspElem = new YoctoBspElement(); + } + + @Override + public IWizardPage getNextPage(IWizardPage page) { + propertiesPage.onEnterPage(mainPage.getBSPElement()); + return propertiesPage; + } + + @Override + public void addPages() { + mainPage = new MainPage(bspElem); + addPage(mainPage); + propertiesPage = new PropertiesPage(bspElem); + addPage(propertiesPage); + } + + private BSPAction createBSP(){ + YoctoBspElement element = mainPage.getBSPElement(); + String createBspCmd = element.getMetadataLoc() + CREATE_CMD + + element.getBspName() + " " + element.getKarch(); + + if (!element.getBspOutLoc().isEmpty()) + createBspCmd = createBspCmd + " -o " + element.getBspOutLoc(); + else + createBspCmd = createBspCmd + " -o " + element.getMetadataLoc() + "/meta-" + element.getBspName(); + createBspCmd = createBspCmd + " -i " + PROPERTY_VALUE_FILE; + + BSPProgressDialog progressDialog = new BSPProgressDialog(getShell(), new OutputCollectorThread(createBspCmd), "Creating BSP "); + progressDialog.run(true); + return progressDialog.getBspAction(); + } + + @Override + public boolean performFinish() { + if (propertiesPage.validatePage()) { + HashSet properties = propertiesPage.getProperties(); + YoctoJSONHelper.createBspJSONFile(properties); + + BSPAction createBSPAction = createBSP(); + if (createBSPAction.getMessage() != null && !createBSPAction.getMessage().isEmpty()) { + MessageDialog.openError(getShell(),"Yocto-BSP", createBSPAction.getMessage()); + return false; + } else { + String message = ""; + for (String item : createBSPAction.getItems()) + message += item + "\n"; + MessageDialog.openInformation(getShell(), "Yocto-BSP", message); + return true; + } + } else { + MessageDialog.openError(getShell(), "Yocto-BSP", "Property settings contains error!"); + return false; + } + + } + + @Override + public boolean canFinish() { + return (mainPage.validatePage() && propertiesPage.validatePage()); + } +} -- cgit v1.2.3-54-g00ecf