<div dir="ltr"><span style="font-size:12.800000190734863px">Merged to master and oxygen-master. Created oxygen/sumo as this forks compared to oxygen/rocko and earlier.</span><div style="font-size:12.800000190734863px"><br></div><div style="font-size:12.800000190734863px">Do we want a neon/sumo branch or only support oxygen for sumo (YP 2.5)?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 5, 2018 at 11:04 AM, Tim Orling <span dir="ltr"><<a href="mailto:timothy.t.orling@linux.intel.com" target="_blank">timothy.t.orling@linux.intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Reference for yocto-bsp being dropped from Documentation:<br>
<a href="https://bugzilla.yoctoproject.org/show_bug.cgi?id=12300" rel="noreferrer" target="_blank">https://bugzilla.yoctoproject.<wbr>org/show_bug.cgi?id=12300</a><br>
<div class="HOEnZb"><div class="h5"><br>
> On Jan 30, 2018, at 7:21 PM, Chin Huat Ang <<a href="mailto:chin.huat.ang@intel.com">chin.huat.ang@intel.com</a>> wrote:<br>
><br>
> Remove all wizard or UI code for yocto-bsp tool<br>
><br>
> [YOCTO #12509]<br>
><br>
> Signed-off-by: Chin Huat Ang <<a href="mailto:chin.huat.ang@intel.com">chin.huat.ang@intel.com</a>><br>
> ---<br>
> .../org/yocto/sdk/remotetools/<wbr>YoctoBspElement.java |Â 88 ----<br>
> .../sdk/remotetools/<wbr>YoctoBspPropertyElement.java  | 65 ---<br>
> .../org/yocto/sdk/remotetools/<wbr>YoctoJSONHelper.java |Â 95 ----<br>
> .../sdk/remotetools/actions/<wbr>YoctoBspHandler.java  | 38 --<br>
> .../sdk/remotetools/wizards/<wbr>bsp/BSPAction.java   | 32 --<br>
> .../remotetools/wizards/bsp/<wbr>BSPProgressDialog.java |Â 47 --<br>
> .../sdk/remotetools/wizards/<wbr>bsp/BSPThread.java   | 92 ----<br>
> .../wizards/bsp/<wbr>ErrorCollectorThread.java     | 19 -<br>
> .../remotetools/wizards/bsp/<wbr>KernelArchGetter.java | 23 -<br>
> .../wizards/bsp/<wbr>KernelBranchesGetter.java     | 28 --<br>
> .../sdk/remotetools/wizards/<wbr>bsp/MainPage.java   | 498 --------------------<br>
> .../wizards/bsp/<wbr>OutputCollectorThread.java     | 19 -<br>
> .../remotetools/wizards/bsp/<wbr>PropertiesPage.java  | 499 ---------------------<br>
> .../remotetools/wizards/bsp/<wbr>QemuArchGetter.java  | 27 --<br>
> .../remotetools/wizards/bsp/<wbr>YoctoBSPWizard.java  | 99 ----<br>
> 15 files changed, 1669 deletions(-)<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/YoctoBspElement.<wbr>java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/<wbr>YoctoBspPropertyElement.java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/YoctoJSONHelper.<wbr>java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/actions/<wbr>YoctoBspHandler.java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>BSPAction.java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>BSPProgressDialog.java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>BSPThread.java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>ErrorCollectorThread.java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>KernelArchGetter.java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>KernelBranchesGetter.java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>MainPage.java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>OutputCollectorThread.java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>PropertiesPage.java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>QemuArchGetter.java<br>
> delete mode 100644 plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>YoctoBSPWizard.java<br>
><br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/YoctoBspElement.<wbr>java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/YoctoBspElement.<wbr>java<br>
> deleted file mode 100644<br>
> index e7bf054..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/YoctoBspElement.<wbr>java<br>
> +++ /dev/null<br>
> @@ -1,88 +0,0 @@<br>
> -/****************************<wbr>******************************<wbr>*********************<br>
> - * Copyright (c) 2010 Intel Corporation.<br>
> - * All rights reserved. This program and the accompanying materials<br>
> - * are made available under the terms of the Eclipse Public License v1.0<br>
> - * which accompanies this distribution, and is available at<br>
> - * <a href="http://www.eclipse.org/legal/epl-v10.html" rel="noreferrer" target="_blank">http://www.eclipse.org/legal/<wbr>epl-v10.html</a><br>
> - *<br>
> - * Contributors:<br>
> - * Intel - initial API and implementation<br>
> - ******************************<wbr>******************************<wbr>*******************/<br>
> -package org.yocto.sdk.remotetools;<br>
> -<br>
> -public class YoctoBspElement {<br>
> -Â Â Â private String metadataLoc;<br>
> -Â Â Â private String buildLoc;<br>
> -Â Â Â private String bspName;<br>
> -Â Â Â private String bspOutLoc;<br>
> -Â Â Â private String karch;<br>
> -Â Â Â private String qarch;<br>
> -Â Â Â private boolean validPropertiesFile;<br>
> -<br>
> -Â Â Â public YoctoBspElement()<br>
> -Â Â Â {<br>
> -Â Â Â Â Â Â Â this.metadataLoc = "";<br>
> -Â Â Â Â Â Â Â this.buildLoc = "";<br>
> -Â Â Â Â Â Â Â this.bspName = "";<br>
> -Â Â Â Â Â Â Â this.bspOutLoc = "";<br>
> -Â Â Â Â Â Â Â this.karch = "";<br>
> -Â Â Â Â Â Â Â this.qarch = "";<br>
> -Â Â Â Â Â Â Â this.validPropertiesFile = false;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public String getMetadataLoc() {<br>
> -Â Â Â Â Â Â Â return metadataLoc;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setMetadataLoc(String value) {<br>
> -Â Â Â Â Â Â Â metadataLoc = value;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public String getBuildLoc() {<br>
> -Â Â Â Â Â Â Â return buildLoc;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setBuildLoc(String value) {<br>
> -Â Â Â Â Â Â Â buildLoc = value;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public String getBspName() {<br>
> -Â Â Â Â Â Â Â return bspName;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setBspName(String value) {<br>
> -Â Â Â Â Â Â Â this.bspName = value;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public String getBspOutLoc() {<br>
> -Â Â Â Â Â Â Â return bspOutLoc;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setBspOutLoc(String value) {<br>
> -Â Â Â Â Â Â Â this.bspOutLoc = value;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public String getKarch() {<br>
> -Â Â Â Â Â Â Â return karch;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setKarch(String value) {<br>
> -Â Â Â Â Â Â Â this.karch = value;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public String getQarch() {<br>
> -Â Â Â Â Â Â Â return qarch;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setQarch(String value) {<br>
> -Â Â Â Â Â Â Â this.qarch = value;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public boolean getValidPropertiesFile() {<br>
> -Â Â Â Â Â Â Â return validPropertiesFile;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setValidPropertiesFile(boolean value) {<br>
> -Â Â Â Â Â Â Â this.validPropertiesFile = value;<br>
> -Â Â Â }<br>
> -}<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/<wbr>YoctoBspPropertyElement.java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/<wbr>YoctoBspPropertyElement.java<br>
> deleted file mode 100644<br>
> index e88b4bd..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/<wbr>YoctoBspPropertyElement.java<br>
> +++ /dev/null<br>
> @@ -1,65 +0,0 @@<br>
> -/****************************<wbr>******************************<wbr>*********************<br>
> - * Copyright (c) 2010 Intel Corporation.<br>
> - * All rights reserved. This program and the accompanying materials<br>
> - * are made available under the terms of the Eclipse Public License v1.0<br>
> - * which accompanies this distribution, and is available at<br>
> - * <a href="http://www.eclipse.org/legal/epl-v10.html" rel="noreferrer" target="_blank">http://www.eclipse.org/legal/<wbr>epl-v10.html</a><br>
> - *<br>
> - * Contributors:<br>
> - * Intel - initial API and implementation<br>
> - ******************************<wbr>******************************<wbr>*******************/<br>
> -package org.yocto.sdk.remotetools;<br>
> -<br>
> -public class YoctoBspPropertyElement implements Comparable<<wbr>YoctoBspPropertyElement>{<br>
> -Â Â Â private String name;<br>
> -Â Â Â private String type;<br>
> -Â Â Â private String value;<br>
> -Â Â Â private String defaultValue;<br>
> -<br>
> -Â Â Â public YoctoBspPropertyElement()<br>
> -Â Â Â {<br>
> -Â Â Â Â Â Â Â <a href="http://this.name" rel="noreferrer" target="_blank">this.name</a> = "";<br>
> -Â Â Â Â Â Â Â this.type = "";<br>
> -Â Â Â Â Â Â Â this.value = "";<br>
> -Â Â Â Â Â Â Â this.defaultValue = "";<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public String getName() {<br>
> -Â Â Â Â Â Â Â return name;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setName(String value) {<br>
> -Â Â Â Â Â Â Â name = value;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public String getType() {<br>
> -Â Â Â Â Â Â Â return type;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setType(String value) {<br>
> -Â Â Â Â Â Â Â type = value;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public String getDefaultValue() {<br>
> -Â Â Â Â Â Â Â return defaultValue;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setDefaultValue(String value) {<br>
> -Â Â Â Â Â Â Â this.defaultValue = value;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public String getValue() {<br>
> -Â Â Â Â Â Â Â return value;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setValue(String value) {<br>
> -Â Â Â Â Â Â Â this.value = value;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â public int compareTo(<wbr>YoctoBspPropertyElement o) {<br>
> -Â Â Â Â Â Â Â return type.compareTo(o.type);<br>
> -Â Â Â }<br>
> -<br>
> -<br>
> -}<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/YoctoJSONHelper.<wbr>java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/YoctoJSONHelper.<wbr>java<br>
> deleted file mode 100644<br>
> index 36723d9..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/YoctoJSONHelper.<wbr>java<br>
> +++ /dev/null<br>
> @@ -1,95 +0,0 @@<br>
> -/****************************<wbr>******************************<wbr>*********************<br>
> - * Copyright (c) 2010 Intel Corporation.<br>
> - * All rights reserved. This program and the accompanying materials<br>
> - * are made available under the terms of the Eclipse Public License v1.0<br>
> - * which accompanies this distribution, and is available at<br>
> - * <a href="http://www.eclipse.org/legal/epl-v10.html" rel="noreferrer" target="_blank">http://www.eclipse.org/legal/<wbr>epl-v10.html</a><br>
> - *<br>
> - * Contributors:<br>
> - * Intel - initial API and implementation<br>
> - ******************************<wbr>******************************<wbr>*******************/<br>
> -package org.yocto.sdk.remotetools;<br>
> -<br>
> -import java.io.IOException;<br>
> -import java.io.FileWriter;<br>
> -import java.util.Iterator;<br>
> -import java.util.Set;<br>
> -import java.util.HashSet;<br>
> -import java.io.FileReader;<br>
> -<br>
> -import org.json.simple.JSONObject;<br>
> -import org.json.simple.JSONValue;<br>
> -<br>
> -public class YoctoJSONHelper {<br>
> -Â Â Â private static final String PROPERTIES_FILE = "/tmp/properties.json";<br>
> -Â Â Â private static final String PROPERTY_VALUE_FILE = "/tmp/propertyvalues.json";<br>
> -<br>
> -Â Â Â private static HashSet<<wbr>YoctoBspPropertyElement> properties;<br>
> -<br>
> -Â Â Â public static HashSet<<wbr>YoctoBspPropertyElement> getProperties() throws Exception {<br>
> -<br>
> -Â Â Â Â Â Â Â properties = new HashSet<<wbr>YoctoBspPropertyElement>();<br>
> -Â Â Â Â Â Â Â try {<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â JSONObject obj = (JSONObject)JSONValue.parse(<wbr>new FileReader(PROPERTIES_FILE));<br>
> -Â Â Â Â Â Â Â Â Â Â Â @SuppressWarnings("unchecked")<br>
> -Â Â Â Â Â Â Â Â Â Â Â Set<String> keys = obj.keySet();<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (!keys.isEmpty()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Iterator<String> iter = keys.iterator();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â while (iter.hasNext()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â String key = (String)iter.next();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (validKey(key)) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â JSONObject value_obj = (JSONObject)obj.get(key);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â YoctoBspPropertyElement elem = new YoctoBspPropertyElement();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â elem.setName(key);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â String type = (String)value_obj.get("type");<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â elem.setType(type);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (type.contentEquals("boolean")<wbr>) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â elem.setDefaultValue((String)<wbr>value_obj.get("default"));<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â properties.add(elem);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â } catch (Exception e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â throw e;<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â return properties;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @SuppressWarnings("unchecked")<br>
> -Â Â Â public static void createBspJSONFile(HashSet<<wbr>YoctoBspPropertyElement> properties) {<br>
> -Â Â Â Â Â Â Â try {<br>
> -Â Â Â Â Â Â Â Â Â Â Â /* should be JSONObject<String, Object> obj = new JSONObject<String, Object>();<br>
> -Â Â Â Â Â Â Â Â Â Â Â * but upstream json-simple would have to change.<br>
> -Â Â Â Â Â Â Â Â Â Â Â * See <a href="http://stackoverflow.com/questions/16415436/json-and-generics-in-java-type-safety-warning" rel="noreferrer" target="_blank">http://stackoverflow.com/<wbr>questions/16415436/json-and-<wbr>generics-in-java-type-safety-<wbr>warning</a><br>
> -Â Â Â Â Â Â Â Â Â Â Â */<br>
> -Â Â Â Â Â Â Â Â Â Â Â JSONObject obj = new JSONObject();<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (!properties.isEmpty()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Iterator<<wbr>YoctoBspPropertyElement> it = properties.iterator();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â while (it.hasNext()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â // Get property<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â YoctoBspPropertyElement propElem = (YoctoBspPropertyElement)it.<wbr>next();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â obj.put(propElem.getName(), propElem.getValue());<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â FileWriter file = new FileWriter(PROPERTY_VALUE_<wbr>FILE);<br>
> -Â Â Â Â Â Â Â Â Â Â Â file.write(obj.toJSONString())<wbr>;<br>
> -Â Â Â Â Â Â Â Â Â Â Â file.flush();<br>
> -Â Â Â Â Â Â Â Â Â Â Â file.close();<br>
> -<br>
> -Â Â Â Â Â Â Â } catch (IOException e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â e.printStackTrace();<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private static boolean validKey(String key) {<br>
> -Â Â Â Â Â Â Â if (key.contains("kernel"))<br>
> -Â Â Â Â Â Â Â Â Â Â Â return false;<br>
> -Â Â Â Â Â Â Â if (key.contentEquals("qemuarch")<wbr>)<br>
> -Â Â Â Â Â Â Â Â Â Â Â return false;<br>
> -Â Â Â Â Â Â Â return true;<br>
> -Â Â Â }<br>
> -}<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/actions/<wbr>YoctoBspHandler.java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/actions/<wbr>YoctoBspHandler.java<br>
> deleted file mode 100644<br>
> index c97afb6..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/actions/<wbr>YoctoBspHandler.java<br>
> +++ /dev/null<br>
> @@ -1,38 +0,0 @@<br>
> -/****************************<wbr>******************************<wbr>*********************<br>
> - * Copyright (c) 2010 Intel Corporation.<br>
> - * All rights reserved. This program and the accompanying materials<br>
> - * are made available under the terms of the Eclipse Public License v1.0<br>
> - * which accompanies this distribution, and is available at<br>
> - * <a href="http://www.eclipse.org/legal/epl-v10.html" rel="noreferrer" target="_blank">http://www.eclipse.org/legal/<wbr>epl-v10.html</a><br>
> - *<br>
> - * Contributors:<br>
> - * Intel - initial API and implementation<br>
> - ******************************<wbr>******************************<wbr>*******************/<br>
> -package org.yocto.sdk.remotetools.<wbr>actions;<br>
> -<br>
> -import org.eclipse.core.commands.<wbr>AbstractHandler;<br>
> -import org.eclipse.core.commands.<wbr>ExecutionEvent;<br>
> -import org.eclipse.core.commands.<wbr>ExecutionException;<br>
> -import org.eclipse.jface.wizard.<wbr>WizardDialog;<br>
> -import org.eclipse.ui.<wbr>IWorkbenchWindow;<br>
> -import org.eclipse.ui.handlers.<wbr>HandlerUtil;<br>
> -<br>
> -import org.yocto.sdk.remotetools.<wbr>wizards.bsp.YoctoBSPWizard;<br>
> -<br>
> -public class YoctoBspHandler extends AbstractHandler {<br>
> -<br>
> -Â Â Â public Object execute(ExecutionEvent event) throws ExecutionException {<br>
> -<br>
> -Â Â Â Â Â Â Â IWorkbenchWindow window = HandlerUtil.<wbr>getActiveWorkbenchWindowChecke<wbr>d(event);<br>
> -Â Â Â Â Â Â Â // Instantiates and initializes the wizard<br>
> -Â Â Â Â Â YoctoBSPWizard bspWizard = new YoctoBSPWizard();<br>
> -Â Â Â Â Â //bspWizard.init(window.<wbr>getWorkbench(), (IStructuredSelection)<wbr>selection);<br>
> -Â Â Â Â Â // Instantiates the wizard container with the wizard and opens it<br>
> -Â Â Â Â Â WizardDialog dialog = new WizardDialog(window.getShell()<wbr>, bspWizard);<br>
> -Â Â Â Â Â //dialog.create();<br>
> -Â Â Â Â Â dialog.open();<br>
> -Â Â Â Â Â Â Â //YoctoBspDialog setting=new YoctoBspDialog(window.<wbr>getShell());<br>
> -Â Â Â Â Â Â Â //setting.open();<br>
> -Â Â Â Â Â Â Â return null;<br>
> -Â Â Â }<br>
> -}<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>BSPAction.java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>BSPAction.java<br>
> deleted file mode 100644<br>
> index 171f181..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>BSPAction.java<br>
> +++ /dev/null<br>
> @@ -1,32 +0,0 @@<br>
> -package org.yocto.sdk.remotetools.<wbr>wizards.bsp;<br>
> -<br>
> -/**<br>
> - * Stores a list of items from the output of a background thread and the error message if something went wrong<br>
> - * @author ioana.grigoropol<br>
> - *<br>
> - */<br>
> -public class BSPAction {<br>
> -Â Â Â private String[] items;<br>
> -Â Â Â private String message;<br>
> -<br>
> -Â Â Â BSPAction(String[] items, String message){<br>
> -Â Â Â Â Â Â Â this.setItems(items);<br>
> -Â Â Â Â Â Â Â this.setMessage(message);<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public String[] getItems() {<br>
> -Â Â Â Â Â Â Â return items;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setItems(String[] items) {<br>
> -Â Â Â Â Â Â Â this.items = items;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public String getMessage() {<br>
> -Â Â Â Â Â Â Â return message;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setMessage(String message) {<br>
> -Â Â Â Â Â Â Â this.message = message;<br>
> -Â Â Â }<br>
> -}<br>
> \ No newline at end of file<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>BSPProgressDialog.java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>BSPProgressDialog.java<br>
> deleted file mode 100644<br>
> index 8d5864c..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>BSPProgressDialog.java<br>
> +++ /dev/null<br>
> @@ -1,47 +0,0 @@<br>
> -package org.yocto.sdk.remotetools.<wbr>wizards.bsp;<br>
> -<br>
> -import org.eclipse.core.runtime.<wbr>IProgressMonitor;<br>
> -import org.eclipse.jface.dialogs.<wbr>ProgressMonitorDialog;<br>
> -import org.eclipse.jface.operation.<wbr>IRunnableWithProgress;<br>
> -import org.eclipse.swt.widgets.Shell;<br>
> -<br>
> -/**<br>
> - * Creates a progress monitor dialog that will run in the background a BSPThread and display a custom message<br>
> - * @author ioana.grigoropol<br>
> - *<br>
> - */<br>
> -public class BSPProgressDialog extends ProgressMonitorDialog{<br>
> -Â Â Â String displayMessage;<br>
> -Â Â Â BSPThread getterThread;<br>
> -Â Â Â Shell shell;<br>
> -<br>
> -<br>
> -Â Â Â public BSPProgressDialog(Shell parent, BSPThread getterThread, String displayMessage) {<br>
> -Â Â Â Â Â Â Â super(parent);<br>
> -Â Â Â Â Â Â Â this.shell = parent;<br>
> -Â Â Â Â Â Â Â this.getterThread = getterThread;<br>
> -Â Â Â Â Â Â Â this.displayMessage = displayMessage;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void run(boolean showProgressDialog){<br>
> -Â Â Â Â Â Â Â try {<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (showProgressDialog)<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â super.run(true, true, new IRunnableWithProgress(){<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â public void run(IProgressMonitor monitor) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â monitor.beginTask(<wbr>displayMessage + " ...", 100);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â getterThread.run();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â monitor.done();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â });<br>
> -Â Â Â Â Â Â Â Â Â Â Â else<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â getterThread.run();<br>
> -Â Â Â Â Â Â Â } catch (Exception e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â getterThread.getBspAction().<wbr>setMessage(e.getMessage());<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public BSPAction getBspAction() {<br>
> -Â Â Â Â Â Â Â return getterThread.getBspAction();<br>
> -Â Â Â }<br>
> -}<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>BSPThread.java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>BSPThread.java<br>
> deleted file mode 100644<br>
> index f6b19ac..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>BSPThread.java<br>
> +++ /dev/null<br>
> @@ -1,92 +0,0 @@<br>
> -package org.yocto.sdk.remotetools.<wbr>wizards.bsp;<br>
> -<br>
> -import java.io.BufferedReader;<br>
> -import java.io.InputStreamReader;<br>
> -import java.util.ArrayList;<br>
> -<br>
> -/**<br>
> - * Receives a command to be run on a separate thread in the background<br>
> - * It contains an BSPAction object that will collect the output & error<br>
> - * Output lines are processed and collected into the items of BSPAction<br>
> - * @author ioana.grigoropol<br>
> - *<br>
> - */<br>
> -public abstract class BSPThread implements Runnable {<br>
> -Â Â Â public static final String SUCCESS = "success";<br>
> -Â Â Â public static final String ERROR = "error";<br>
> -<br>
> -Â Â Â private BSPAction bspAction;<br>
> -Â Â Â private String command;<br>
> -<br>
> -Â Â Â /**<br>
> -Â Â Â * Receives the command to be run in the background<br>
> -Â Â Â * @param command<br>
> -Â Â Â */<br>
> -Â Â Â public BSPThread(String command) {<br>
> -Â Â Â Â Â Â Â this.command = command;<br>
> -Â Â Â Â Â Â Â this.bspAction = new BSPAction(null, null);<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â public void run() {<br>
> -Â Â Â Â Â Â Â ArrayList<String> values = new ArrayList<String>();<br>
> -<br>
> -Â Â Â Â Â Â Â try {<br>
> -Â Â Â Â Â Â Â Â Â Â Â ProcessBuilder builder = new ProcessBuilder(new String[] {"bash", "-c", command});<br>
> -Â Â Â Â Â Â Â Â Â Â Â // redirect error stream to collect both output & error<br>
> -Â Â Â Â Â Â Â Â Â Â Â builder.redirectErrorStream(<wbr>true);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Process process = builder.start();<br>
> -Â Â Â Â Â Â Â Â Â Â Â BufferedReader br = new BufferedReader(new InputStreamReader(process.<wbr>getInputStream()));<br>
> -Â Â Â Â Â Â Â Â Â Â Â String line = null;<br>
> -Â Â Â Â Â Â Â Â Â Â Â String errorMessage = "";<br>
> -Â Â Â Â Â Â Â Â Â Â Â while ( (line = br.readLine()) != null) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â String[] result = processLine(line);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â String status = result[0];<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â String value = result[1];<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (status.equals(ERROR) && !value.isEmpty()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â errorMessage += value;<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â continue;<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (!value.isEmpty())<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â values.add(value);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â int exitVal = process.waitFor();<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â // if the background process did not exit with 0 code, we should set the status accordingly<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (exitVal != 0) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â bspAction.setMessage(<wbr>errorMessage);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â bspAction.setItems(null);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â } catch (Exception e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â bspAction.setMessage(e.<wbr>getMessage());<br>
> -Â Â Â Â Â Â Â Â Â Â Â bspAction.setItems(null);<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â if (!values.isEmpty()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â bspAction.setMessage(null);<br>
> -Â Â Â Â Â Â Â Â Â Â Â bspAction.setItems(values.<wbr>toArray(new String[values.size()]));<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â /**<br>
> -Â Â Â * Each command ran in the background will have a different output and a different way of processing it<br>
> -Â Â Â * @param line<br>
> -Â Â Â * @return<br>
> -Â Â Â */<br>
> -Â Â Â protected abstract String[] processLine(String line);<br>
> -<br>
> -Â Â Â public BSPAction getBspAction() {<br>
> -Â Â Â Â Â Â Â return bspAction;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setBspAction(BSPAction bspAction) {<br>
> -Â Â Â Â Â Â Â this.bspAction = bspAction;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public String getCommand() {<br>
> -Â Â Â Â Â Â Â return command;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setCommand(String command) {<br>
> -Â Â Â Â Â Â Â this.command = command;<br>
> -Â Â Â }<br>
> -}<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>ErrorCollectorThread.java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>ErrorCollectorThread.java<br>
> deleted file mode 100644<br>
> index d39ac28..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>ErrorCollectorThread.java<br>
> +++ /dev/null<br>
> @@ -1,19 +0,0 @@<br>
> -package org.yocto.sdk.remotetools.<wbr>wizards.bsp;<br>
> -<br>
> -/**<br>
> - * BSPThread that ignores the output of the process and returns an error if the process exits with non zero code<br>
> - * @author ioana.grigoropol<br>
> - *<br>
> - */<br>
> -public class ErrorCollectorThread extends BSPThread{<br>
> -<br>
> -Â Â Â public ErrorCollectorThread(String command) {<br>
> -Â Â Â Â Â Â Â super(command);<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â protected String[] processLine(String line) {<br>
> -Â Â Â Â Â Â Â return null;<br>
> -Â Â Â }<br>
> -<br>
> -}<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>KernelArchGetter.java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>KernelArchGetter.java<br>
> deleted file mode 100644<br>
> index 833057a..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>KernelArchGetter.java<br>
> +++ /dev/null<br>
> @@ -1,23 +0,0 @@<br>
> -package org.yocto.sdk.remotetools.<wbr>wizards.bsp;<br>
> -<br>
> -/**<br>
> - * BSPThread that processes the output of "yocto-bsp list karch"<br>
> - * @author ioana.grigoropol<br>
> - *<br>
> - */<br>
> -public class KernelArchGetter extends BSPThread{<br>
> -<br>
> -Â Â Â public KernelArchGetter(String command) {<br>
> -Â Â Â Â Â Â Â super(command);<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â protected String[] processLine(String line) {<br>
> -Â Â Â Â Â Â Â if (line.contains(":"))<br>
> -Â Â Â Â Â Â Â Â Â Â Â return new String[]{SUCCESS, ""};<br>
> -Â Â Â Â Â Â Â line = line.replaceAll("^\\s+", "");<br>
> -Â Â Â Â Â Â Â line = line.replaceAll("\\s+$", "");<br>
> -Â Â Â Â Â Â Â return new String[]{SUCCESS, line};<br>
> -Â Â Â }<br>
> -<br>
> -}<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>KernelBranchesGetter.java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>KernelBranchesGetter.java<br>
> deleted file mode 100644<br>
> index 4caea2c..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>KernelBranchesGetter.java<br>
> +++ /dev/null<br>
> @@ -1,28 +0,0 @@<br>
> -package org.yocto.sdk.remotetools.<wbr>wizards.bsp;<br>
> -<br>
> -/**<br>
> - * BSPThread that processes the output lines from running command "yocto-bsp list" for the selected kernel<br>
> - * @author ioana.grigoropol<br>
> - *<br>
> - */<br>
> -public class KernelBranchesGetter extends BSPThread {<br>
> -<br>
> -Â Â Â public KernelBranchesGetter(String command) {<br>
> -Â Â Â Â Â Â Â super(command);<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â protected String[] processLine(String line) {<br>
> -Â Â Â Â Â Â Â // [TODO : Ioana]: find a better way to identify error lines<br>
> -Â Â Â Â Â Â Â if (!line.startsWith("["))<br>
> -Â Â Â Â Â Â Â Â Â Â Â return new String[]{ERROR, line + "\n"};<br>
> -<br>
> -Â Â Â Â Â Â Â String[] items = line.split(",");<br>
> -<br>
> -Â Â Â Â Â Â Â String value = items[0];<br>
> -Â Â Â Â Â Â Â value = value.replace("[\"", "");<br>
> -Â Â Â Â Â Â Â value = value.replaceAll("\"$", "");<br>
> -Â Â Â Â Â Â Â return new String[]{SUCCESS, value};<br>
> -Â Â Â }<br>
> -<br>
> -}<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>MainPage.java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>MainPage.java<br>
> deleted file mode 100644<br>
> index cc3630f..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>MainPage.java<br>
> +++ /dev/null<br>
> @@ -1,498 +0,0 @@<br>
> -/****************************<wbr>******************************<wbr>*********************<br>
> - * Copyright (c) 2012 Intel Corporation.<br>
> - * All rights reserved. This program and the accompanying materials<br>
> - * are made available under the terms of the Eclipse Public License v1.0<br>
> - * which accompanies this distribution, and is available at<br>
> - * <a href="http://www.eclipse.org/legal/epl-v10.html" rel="noreferrer" target="_blank">http://www.eclipse.org/legal/<wbr>epl-v10.html</a><br>
> - *<br>
> - * Contributors:<br>
> - * Intel - initial API and implementation<br>
> - ******************************<wbr>******************************<wbr>*******************/<br>
> -package org.yocto.sdk.remotetools.<wbr>wizards.bsp;<br>
> -<br>
> -import java.io.BufferedReader;<br>
> -import java.io.File;<br>
> -import java.io.InputStream;<br>
> -import java.io.InputStreamReader;<br>
> -<br>
> -import org.eclipse.core.runtime.<wbr>IStatus;<br>
> -import org.eclipse.core.runtime.<wbr>Status;<br>
> -import org.eclipse.jface.wizard.<wbr>WizardPage;<br>
> -import org.eclipse.swt.SWT;<br>
> -import org.eclipse.swt.events.<wbr>FocusEvent;<br>
> -import org.eclipse.swt.events.<wbr>FocusListener;<br>
> -import org.eclipse.swt.events.<wbr>ModifyEvent;<br>
> -import org.eclipse.swt.events.<wbr>ModifyListener;<br>
> -import org.eclipse.swt.events.<wbr>SelectionAdapter;<br>
> -import org.eclipse.swt.events.<wbr>SelectionEvent;<br>
> -import org.eclipse.swt.layout.<wbr>GridData;<br>
> -import org.eclipse.swt.layout.<wbr>GridLayout;<br>
> -import org.eclipse.swt.widgets.<wbr>Button;<br>
> -import org.eclipse.swt.widgets.Combo;<br>
> -import org.eclipse.swt.widgets.<wbr>Composite;<br>
> -import org.eclipse.swt.widgets.<wbr>Control;<br>
> -import org.eclipse.swt.widgets.<wbr>DirectoryDialog;<br>
> -import org.eclipse.swt.widgets.Label;<br>
> -import org.eclipse.swt.widgets.Text;<br>
> -import org.eclipse.swt.widgets.<wbr>Widget;<br>
> -import org.yocto.sdk.remotetools.<wbr>YoctoBspElement;<br>
> -<br>
> -/**<br>
> - *<br>
> - * Setting up the parameters for creating the new Yocto BSP<br>
> - *<br>
> - * @author jzhang<br>
> - */<br>
> -public class MainPage extends WizardPage {<br>
> -   public static final String PAGE_NAME = "Main";<br>
> -Â Â Â private static final String KARCH_CMD = "yocto-bsp list karch";<br>
> -Â Â Â private static final String QARCH_CMD = "yocto-bsp list qemu property qemuarch";<br>
> -Â Â Â private static final String BSP_SCRIPT = "yocto-bsp";<br>
> -Â Â Â private static final String PROPERTIES_CMD_PREFIX = "yocto-bsp list ";<br>
> -Â Â Â private static final String PROPERTIES_CMD_SURFIX = " properties -o ";<br>
> -Â Â Â private static final String PROPERTIES_FILE = "/tmp/properties.json";<br>
> -<br>
> -Â Â Â private Button btnMetadataLoc;<br>
> -Â Â Â private Text textMetadataLoc;<br>
> -Â Â Â private Label labelMetadata;<br>
> -<br>
> -Â Â Â private Button btnBspOutputLoc;<br>
> -Â Â Â private Text textBspOutputLoc;<br>
> -Â Â Â private Label labelBspOutput;<br>
> -<br>
> -Â Â Â private Button btnBuildLoc;<br>
> -Â Â Â private Text textBuildLoc;<br>
> -Â Â Â private Label labelBuildLoc;<br>
> -<br>
> -Â Â Â private boolean buildDirChecked;<br>
> -Â Â Â private BuildLocationListener buildLocationListener;<br>
> -<br>
> -Â Â Â private Text textBspName;<br>
> -Â Â Â private Label labelBspName;<br>
> -<br>
> -Â Â Â private Combo comboKArch;<br>
> -Â Â Â private Label labelKArch;<br>
> -<br>
> -Â Â Â private Combo comboQArch;<br>
> -Â Â Â private Label labelQArch;<br>
> -<br>
> -Â Â Â private YoctoBspElement bspElem;<br>
> -<br>
> -Â Â Â public MainPage(YoctoBspElement element) {<br>
> -Â Â Â Â Â Â Â super(PAGE_NAME, "yocto-bsp Main page", null);<br>
> -<br>
> -Â Â Â Â Â Â Â setMessage("Enter the required fields(with *) to create new Yocto Project BSP!");<br>
> -Â Â Â Â Â Â Â this.bspElem = element;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â public void createControl(Composite parent) {<br>
> -Â Â Â Â Â Â Â setErrorMessage(null);<br>
> -Â Â Â Â Â Â Â Composite composite = new Composite(parent, SWT.NONE);<br>
> -Â Â Â Â Â Â Â GridLayout layout = new GridLayout(2, false);<br>
> -Â Â Â Â Â Â Â GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false);<br>
> -Â Â Â Â Â Â Â composite.setLayout(layout);<br>
> -Â Â Â Â Â Â Â gd.horizontalSpan = 2;<br>
> -Â Â Â Â Â Â Â composite.setLayoutData(gd);<br>
> -<br>
> -Â Â Â Â Â Â Â labelMetadata = new Label(composite, SWT.NONE);<br>
> -Â Â Â Â Â Â Â labelMetadata.setText("<wbr>Metadata location*: ");<br>
> -Â Â Â Â Â Â Â Composite textContainer = new Composite(composite, SWT.NONE);<br>
> -Â Â Â Â Â Â Â textContainer.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â textContainer.setLayoutData(<wbr>new GridData(SWT.FILL, SWT.CENTER, true, false));<br>
> -Â Â Â Â Â Â Â textMetadataLoc = (Text)addTextControl(<wbr>textContainer, "");<br>
> -Â Â Â Â Â Â Â textMetadataLoc.setEnabled(<wbr>true);<br>
> -Â Â Â Â Â Â Â textMetadataLoc.<wbr>addModifyListener(new ModifyListener() {<br>
> -Â Â Â Â Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â Â Â Â Â public void modifyText(ModifyEvent e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â controlChanged(e.widget);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â });<br>
> -Â Â Â Â Â Â Â setBtnMetadataLoc(<wbr>addFileSelectButton(<wbr>textContainer, textMetadataLoc));<br>
> -<br>
> -Â Â Â Â Â Â Â labelBuildLoc = new Label(composite, SWT.NONE);<br>
> -Â Â Â Â Â Â Â labelBuildLoc.setText("Build location: ");<br>
> -<br>
> -Â Â Â Â Â Â Â textContainer = new Composite(composite, SWT.NONE);<br>
> -Â Â Â Â Â Â Â textContainer.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â textContainer.setLayoutData(<wbr>new GridData(SWT.FILL, SWT.CENTER, true, false));<br>
> -<br>
> -Â Â Â Â Â Â Â textBuildLoc = (Text)addTextControl(<wbr>textContainer, "");<br>
> -Â Â Â Â Â Â Â buildLocationListener = new BuildLocationListener("");<br>
> -Â Â Â Â Â Â Â textBuildLoc.addFocusListener(<wbr>buildLocationListener);<br>
> -<br>
> -Â Â Â Â Â Â Â setBtnBuilddirLoc(<wbr>addFileSelectButton(<wbr>textContainer, textBuildLoc));<br>
> -<br>
> -Â Â Â Â Â Â Â labelBspName = new Label(composite, SWT.NONE);<br>
> -Â Â Â Â Â Â Â labelBspName.setText("BSP Name*: ");<br>
> -<br>
> -Â Â Â Â Â Â Â textContainer = new Composite(composite, SWT.NONE);<br>
> -Â Â Â Â Â Â Â textContainer.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â textContainer.setLayoutData(<wbr>new GridData(SWT.FILL, SWT.CENTER, true, false));<br>
> -<br>
> -Â Â Â Â Â Â Â textBspName = (Text)addTextControl(<wbr>textContainer, "");<br>
> -Â Â Â Â Â Â Â textBspName.addModifyListener(<wbr>new ModifyListener() {<br>
> -Â Â Â Â Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â Â Â Â Â public void modifyText(ModifyEvent e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â controlChanged(e.widget);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â });<br>
> -<br>
> -Â Â Â Â Â Â Â labelBspOutput = new Label(composite, SWT.NONE);<br>
> -Â Â Â Â Â Â Â labelBspOutput.setText("BSP output location: ");<br>
> -<br>
> -Â Â Â Â Â Â Â textContainer = new Composite(composite, SWT.NONE);<br>
> -Â Â Â Â Â Â Â textContainer.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â textContainer.setLayoutData(<wbr>new GridData(SWT.FILL, SWT.CENTER, true, false));<br>
> -<br>
> -Â Â Â Â Â Â Â textBspOutputLoc = (Text)addTextControl(<wbr>textContainer, "");<br>
> -Â Â Â Â Â Â Â textBspOutputLoc.<wbr>addModifyListener(new ModifyListener() {<br>
> -Â Â Â Â Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â Â Â Â Â public void modifyText(ModifyEvent e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â controlChanged(e.widget);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â });<br>
> -Â Â Â Â Â Â Â setBtnBspOutLoc(<wbr>addFileSelectButton(<wbr>textContainer, textBspOutputLoc));<br>
> -<br>
> -Â Â Â Â Â Â Â labelKArch = new Label(composite, SWT.NONE);<br>
> -Â Â Â Â Â Â Â labelKArch.setText("Kernel Architecture*: ");<br>
> -<br>
> -Â Â Â Â Â Â Â textContainer = new Composite(composite, SWT.NONE);<br>
> -Â Â Â Â Â Â Â textContainer.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â textContainer.setLayoutData(<wbr>new GridData(SWT.FILL, SWT.CENTER, true, false));<br>
> -<br>
> -Â Â Â Â Â Â Â comboKArch = new Combo(textContainer, SWT.READ_ONLY);<br>
> -Â Â Â Â Â Â Â comboKArch.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â comboKArch.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));<br>
> -Â Â Â Â Â Â Â comboKArch.setEnabled(false);<br>
> -Â Â Â Â Â Â Â comboKArch.addModifyListener(<wbr>new ModifyListener() {<br>
> -Â Â Â Â Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â Â Â Â Â public void modifyText(ModifyEvent e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â controlChanged(e.widget);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â });<br>
> -<br>
> -Â Â Â Â Â Â Â labelQArch = new Label(composite, SWT.NONE);<br>
> -Â Â Â Â Â Â Â labelQArch.setText("Qemu Architecture(* for karch as qemu): ");<br>
> -Â Â Â Â Â Â Â labelQArch.setEnabled(false);<br>
> -<br>
> -Â Â Â Â Â Â Â textContainer = new Composite(composite, SWT.NONE);<br>
> -Â Â Â Â Â Â Â textContainer.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â textContainer.setLayoutData(<wbr>new GridData(SWT.FILL, SWT.CENTER, true, false));<br>
> -<br>
> -Â Â Â Â Â Â Â comboQArch = new Combo(textContainer, SWT.READ_ONLY);<br>
> -Â Â Â Â Â Â Â comboQArch.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â comboQArch.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));<br>
> -Â Â Â Â Â Â Â comboQArch.setEnabled(false);<br>
> -Â Â Â Â Â Â Â comboQArch.addModifyListener(<wbr>new ModifyListener() {<br>
> -Â Â Â Â Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â Â Â Â Â public void modifyText(ModifyEvent e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â controlChanged(e.widget);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â });<br>
> -<br>
> -Â Â Â Â Â Â Â setControl(composite);<br>
> -Â Â Â Â Â Â Â validatePage();<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private Control addTextControl(final Composite parent, String value) {<br>
> -Â Â Â Â Â Â Â final Text text;<br>
> -<br>
> -Â Â Â Â Â Â Â text = new Text(parent, SWT.SINGLE | SWT.LEAD | SWT.BORDER);<br>
> -Â Â Â Â Â Â Â text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));<br>
> -Â Â Â Â Â Â Â text.setText(value);<br>
> -Â Â Â Â Â Â Â text.setSize(10, 150);<br>
> -<br>
> -Â Â Â Â Â Â Â return text;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private Button addFileSelectButton(final Composite parent, final Text text) {<br>
> -Â Â Â Â Â Â Â Button button = new Button(parent, SWT.PUSH | SWT.LEAD);<br>
> -Â Â Â Â Â Â Â button.setText("Browse...");<br>
> -Â Â Â Â Â Â Â button.addSelectionListener(<wbr>new SelectionAdapter() {<br>
> -Â Â Â Â Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â Â Â Â Â public void widgetSelected(SelectionEvent event) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â String dirName = new DirectoryDialog(parent.<wbr>getShell()).open();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (dirName != null) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â text.setText(dirName);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â });<br>
> -Â Â Â Â Â Â Â return button;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private void controlChanged(Widget widget) {<br>
> -Â Â Â Â Â Â Â Status status = new Status(IStatus.OK, "not_used", 0, "", null);<br>
> -Â Â Â Â Â Â Â setErrorMessage(null);<br>
> -Â Â Â Â Â Â Â String metadataLoc = textMetadataLoc.getText();<br>
> -<br>
> -Â Â Â Â Â Â Â if (widget == textMetadataLoc) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â resetKarchCombo();<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (metadataLoc.length() == 0) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â status = new Status(IStatus.ERROR, "not_used", 0, "Meta data location can't be empty!", null);<br>
> -Â Â Â Â Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â File meta_data = new File(metadataLoc);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (!meta_data.exists() || !meta_data.isDirectory()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â status = new Status(IStatus.ERROR, "not_used", 0,<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "Invalid meta data location: Make sure it exists and is a directory!", null);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â File bspScript = new File(metadataLoc + "/scripts/" + BSP_SCRIPT);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (!bspScript.exists() || !bspScript.canExecute())<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â status = new Status(IStatus.ERROR, "not_used", 0,<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "Make sure yocto-bsp exists under \"" + metadataLoc + "/scripts\" and is executable!", null);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â kernelArchesHandler();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â } else if (widget == comboKArch) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â String selection = comboKArch.getText();<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (!bspElem.getKarch().<wbr>contentEquals(selection))<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â bspElem = new YoctoBspElement();<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (selection.matches("qemu")) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â labelQArch.setEnabled(true);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â comboQArch.setEnabled(true);<br>
> -Â Â Â Â Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â labelQArch.setEnabled(false);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â comboQArch.setEnabled(false);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â String buildDir = textBuildLoc.getText();<br>
> -Â Â Â Â Â Â Â String outputDir = textBspOutputLoc.getText();<br>
> -Â Â Â Â Â Â Â String bspName = textBspName.getText();<br>
> -<br>
> -Â Â Â Â Â Â Â if (bspName.contains(" ")) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â status = new Status(IStatus.ERROR, "not_used", 0,<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "BSP name contains space which is not allowed!", null);<br>
> -Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â if (!outputDir.isEmpty()){<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (outputDir.matches(buildDir)) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â status = new Status(IStatus.ERROR, "not_used", 0,<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "You've set BSP output directory the same as build directory, please leave output directory empty for this scenario!", null);<br>
> -Â Â Â Â Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â File outputDirectory = new File(outputDir);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (outputDirectory.exists()){<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â status = new Status(IStatus.ERROR, "not_used", 0,<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "Your BSP output directory points to an existing directory!", null);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â } else if (buildDir.startsWith(<wbr>metadataLoc) && !bspName.isEmpty()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â String bspDirStr = metadataLoc + "/meta-" + bspName;<br>
> -Â Â Â Â Â Â Â Â Â Â Â File bspDir = new File(bspDirStr);<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (bspDir.exists()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â status = new Status(IStatus.ERROR, "not_used", 0,<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "Your BSP with name: " + bspName + " already exist under directory: " + bspDirStr + ", please change your bsp name!", null);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â if (status.getSeverity() == IStatus.ERROR)<br>
> -Â Â Â Â Â Â Â Â Â Â Â setErrorMessage(status.<wbr>getMessage());<br>
> -<br>
> -Â Â Â Â Â Â Â getWizard().getContainer().<wbr>updateButtons();<br>
> -Â Â Â Â Â Â Â canFlipToNextPage();<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private Status checkBuildDir() {<br>
> -<br>
> -Â Â Â Â Â Â Â String metadataLoc = textMetadataLoc.getText();<br>
> -Â Â Â Â Â Â Â String buildLoc = textBuildLoc.getText();<br>
> -<br>
> -Â Â Â Â Â Â Â if (buildLoc.isEmpty()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â buildLoc = metadataLoc + "/build";<br>
> -Â Â Â Â Â Â Â Â Â Â Â return createBuildDir(buildLoc);<br>
> -Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â File buildLocDir = new File(buildLoc);<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (!buildLocDir.exists()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â return createBuildDir(buildLoc);<br>
> -Â Â Â Â Â Â Â Â Â Â Â } else if (buildLocDir.isDirectory()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â return createBuildDir(buildLoc);<br>
> -Â Â Â Â Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â return new Status(IStatus.ERROR, "not_used", 0, "Invalid build location: Make sure the build location is a directory!", null);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private Status createBuildDir(String buildLoc) {<br>
> -Â Â Â Â Â Â Â String metadataDir = textMetadataLoc.getText();<br>
> -<br>
> -       // if we do not change the directory to metadata location the script will be looked into the directory indicated by user.dir system property<br>
> -Â Â Â Â Â Â Â // system.property usually points to the location from where eclipse was started<br>
> -Â Â Â Â Â Â Â String createBuildDirCmd = "cd " + metadataDir + ";source " + metadataDir + "/oe-init-build-env " + buildLoc;<br>
> -<br>
> -Â Â Â Â Â Â Â try {<br>
> -Â Â Â Â Â Â Â Â Â Â Â ProcessBuilder builder = new ProcessBuilder(new String[] {"bash", "-c", createBuildDirCmd});<br>
> -Â Â Â Â Â Â Â Â Â Â Â Process proc = builder.start();<br>
> -Â Â Â Â Â Â Â Â Â Â Â InputStream errorStream = proc.getErrorStream();<br>
> -Â Â Â Â Â Â Â Â Â Â Â InputStreamReader isr = new InputStreamReader(errorStream)<wbr>;<br>
> -Â Â Â Â Â Â Â Â Â Â Â BufferedReader br = new BufferedReader(isr);<br>
> -Â Â Â Â Â Â Â Â Â Â Â String line = null;<br>
> -Â Â Â Â Â Â Â Â Â Â Â String status = "";<br>
> -Â Â Â Â Â Â Â Â Â Â Â while ( (line = br.readLine()) != null) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â status += line;<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (proc.waitFor() != 0)<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â return new Status(IStatus.ERROR, "not_used", 0, status, null);;<br>
> -Â Â Â Â Â Â Â Â Â Â Â return new Status(IStatus.OK, "not_used", 0, "", null);<br>
> -Â Â Â Â Â Â Â } catch (Exception e) {<br>
> -           return new Status(IStatus.ERROR, "not_used", 0, e.getMessage(), null);<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public YoctoBspElement getBSPElement() {<br>
> -Â Â Â Â Â Â Â return this.bspElem;<br>
> -Â Â Â }<br>
> -<br>
> -<br>
> -Â Â Â private void resetKarchCombo() {<br>
> -Â Â Â Â Â Â Â comboKArch.deselectAll();<br>
> -Â Â Â Â Â Â Â comboQArch.deselectAll();<br>
> -Â Â Â Â Â Â Â comboKArch.setEnabled(false);<br>
> -Â Â Â Â Â Â Â labelQArch.setEnabled(false);<br>
> -Â Â Â Â Â Â Â comboQArch.setEnabled(false);<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private void kernelArchesHandler() {<br>
> -Â Â Â Â Â Â Â BSPAction kArchesAction = getKArches();<br>
> -Â Â Â Â Â Â Â if (kArchesAction.getMessage() == null && kArchesAction.getItems().<wbr>length != 0) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â comboKArch.setItems(<wbr>kArchesAction.getItems());<br>
> -Â Â Â Â Â Â Â Â Â Â Â comboKArch.setEnabled(true);<br>
> -Â Â Â Â Â Â Â } else if (kArchesAction.getMessage() != null){<br>
> -Â Â Â Â Â Â Â Â Â Â Â setErrorMessage(kArchesAction.<wbr>getMessage());<br>
> -Â Â Â Â Â Â Â Â Â Â Â return;<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â BSPAction qArchesAction = getQArches();<br>
> -Â Â Â Â Â Â Â if (qArchesAction.getMessage() == null && qArchesAction.getItems().<wbr>length != 0) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â comboQArch.setItems(<wbr>qArchesAction.getItems());<br>
> -Â Â Â Â Â Â Â } else if (qArchesAction.getMessage() != null)<br>
> -Â Â Â Â Â Â Â Â Â Â Â setErrorMessage(qArchesAction.<wbr>getMessage());<br>
> -<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â public boolean canFlipToNextPage(){<br>
> -Â Â Â Â Â Â Â String err = getErrorMessage();<br>
> -Â Â Â Â Â Â Â if (err != null)<br>
> -Â Â Â Â Â Â Â Â Â Â Â return false;<br>
> -Â Â Â Â Â Â Â else if (!validatePage())<br>
> -Â Â Â Â Â Â Â Â Â Â Â return false;<br>
> -Â Â Â Â Â Â Â return true;<br>
> -Â Â Â }<br>
> -<br>
> -<br>
> -Â Â Â public boolean validatePage() {<br>
> -Â Â Â Â Â Â Â String metadataLoc = textMetadataLoc.getText();<br>
> -Â Â Â Â Â Â Â String bspname = textBspName.getText();<br>
> -Â Â Â Â Â Â Â String karch = comboKArch.getText();<br>
> -Â Â Â Â Â Â Â String qarch = comboQArch.getText();<br>
> -Â Â Â Â Â Â Â if (metadataLoc.isEmpty() ||<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â bspname.isEmpty() ||<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â karch.isEmpty()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â return false;<br>
> -Â Â Â Â Â Â Â } else if (karch.matches("qemu") && qarch.isEmpty()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â return false;<br>
> -Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â bspElem.setBspName(bspname);<br>
> -Â Â Â Â Â Â Â if (!textBspOutputLoc.getText().<wbr>isEmpty())<br>
> -Â Â Â Â Â Â Â Â Â Â Â bspElem.setBspOutLoc(<wbr>textBspOutputLoc.getText());<br>
> -Â Â Â Â Â Â Â else<br>
> -Â Â Â Â Â Â Â Â Â Â Â bspElem.setBspOutLoc("");<br>
> -Â Â Â Â Â Â Â if (!textBuildLoc.getText().<wbr>isEmpty()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â checkBuildDir();<br>
> -Â Â Â Â Â Â Â Â Â Â Â bspElem.setBuildLoc(<wbr>textBuildLoc.getText());<br>
> -Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â bspElem.setBuildLoc(<wbr>metadataLoc + "/build");<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (!buildDirChecked) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â checkBuildDir();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â buildDirChecked = true;<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â bspElem.setMetadataLoc(<wbr>metadataLoc);<br>
> -Â Â Â Â Â Â Â bspElem.setKarch(karch);<br>
> -Â Â Â Â Â Â Â bspElem.setQarch(qarch);<br>
> -<br>
> -<br>
> -Â Â Â Â Â Â Â if (!bspElem.<wbr>getValidPropertiesFile()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â boolean validPropertiesFile = true;<br>
> -Â Â Â Â Â Â Â Â Â Â Â BSPAction action = createPropertiesFile();<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (action.getMessage() != null) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â validPropertiesFile = false;<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â setErrorMessage(action.<wbr>getMessage());<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â bspElem.<wbr>setValidPropertiesFile(<wbr>validPropertiesFile);<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â return true;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private BSPAction createPropertiesFile() {<br>
> -Â Â Â Â Â Â Â String createPropertiesCmd = bspElem.getMetadataLoc() + "/scripts/" +<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â PROPERTIES_CMD_PREFIX + bspElem.getKarch() +<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â PROPERTIES_CMD_SURFIX + PROPERTIES_FILE;<br>
> -       BSPProgressDialog progressDialog = new BSPProgressDialog(getShell(), new ErrorCollectorThread(<wbr>createPropertiesCmd), "Creating properties file ");<br>
> -Â Â Â Â Â Â Â progressDialog.run(false);<br>
> -Â Â Â Â Â Â Â return progressDialog.getBspAction();<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private BSPAction getKArches() {<br>
> -Â Â Â Â Â Â Â String getKArchCmd = textMetadataLoc.getText() + "/scripts/" + KARCH_CMD;<br>
> -Â Â Â Â Â Â Â BSPProgressDialog progressDialog = new BSPProgressDialog(getShell(), new KernelArchGetter(getKArchCmd), "Loading kernel architectures ");<br>
> -Â Â Â Â Â Â Â progressDialog.run(false);<br>
> -Â Â Â Â Â Â Â return progressDialog.getBspAction();<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private BSPAction getQArches() {<br>
> -Â Â Â Â Â Â Â String getQArchCmd = textMetadataLoc.getText() + "/scripts/" + QARCH_CMD;<br>
> -Â Â Â Â Â Â Â BSPProgressDialog progressDialog = new BSPProgressDialog(getShell(), new QemuArchGetter(getQArchCmd), "Loading Qemu architectures ");<br>
> -Â Â Â Â Â Â Â progressDialog.run(false);<br>
> -Â Â Â Â Â Â Â return progressDialog.getBspAction();<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public Button getBtnMetadataLoc() {<br>
> -Â Â Â Â Â Â Â return btnMetadataLoc;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setBtnMetadataLoc(Button btnMetadataLoc) {<br>
> -Â Â Â Â Â Â Â this.btnMetadataLoc = btnMetadataLoc;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public Button getBtnBspOutLoc() {<br>
> -Â Â Â Â Â Â Â return btnBspOutputLoc;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setBtnBspOutLoc(Button btnBspOutLoc) {<br>
> -Â Â Â Â Â Â Â this.btnBspOutputLoc = btnBspOutLoc;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public Button getBtnBuilddirLoc() {<br>
> -Â Â Â Â Â Â Â return btnBuildLoc;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void setBtnBuilddirLoc(Button btnBuilddirLoc) {<br>
> -Â Â Â Â Â Â Â this.btnBuildLoc = btnBuilddirLoc;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â class BuildLocationListener implements FocusListener{<br>
> -Â Â Â Â Â Â Â String value;<br>
> -Â Â Â Â Â Â Â boolean changed;<br>
> -<br>
> -Â Â Â Â Â Â Â BuildLocationListener(String value){<br>
> -Â Â Â Â Â Â Â Â Â Â Â this.value = value;<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â public void focusGained(FocusEvent e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â value = ((Text)e.getSource()).getText(<wbr>);<br>
> -Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â public void focusLost(FocusEvent e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â if(!((Text)e.getSource()).<wbr>getText().equals(value)) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â checkBuildDir();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â buildDirChecked = true;<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â }<br>
> -}<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>OutputCollectorThread.java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>OutputCollectorThread.java<br>
> deleted file mode 100644<br>
> index df5fba5..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>OutputCollectorThread.java<br>
> +++ /dev/null<br>
> @@ -1,19 +0,0 @@<br>
> -package org.yocto.sdk.remotetools.<wbr>wizards.bsp;<br>
> -<br>
> -/**<br>
> - * BSPThread that returns all the output lines of the process execution<br>
> - * @author ioana.grigoropol<br>
> - *<br>
> - */<br>
> -public class OutputCollectorThread extends BSPThread{<br>
> -<br>
> -Â Â Â public OutputCollectorThread(String command) {<br>
> -Â Â Â Â Â Â Â super(command);<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â protected String[] processLine(String line) {<br>
> -Â Â Â Â Â Â Â return new String[]{SUCCESS, line};<br>
> -Â Â Â }<br>
> -<br>
> -}<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>PropertiesPage.java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>PropertiesPage.java<br>
> deleted file mode 100644<br>
> index 58ee11f..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>PropertiesPage.java<br>
> +++ /dev/null<br>
> @@ -1,499 +0,0 @@<br>
> -/****************************<wbr>******************************<wbr>*********************<br>
> - * Copyright (c) 2012 Intel Corporation.<br>
> - * All rights reserved. This program and the accompanying materials<br>
> - * are made available under the terms of the Eclipse Public License v1.0<br>
> - * which accompanies this distribution, and is available at<br>
> - * <a href="http://www.eclipse.org/legal/epl-v10.html" rel="noreferrer" target="_blank">http://www.eclipse.org/legal/<wbr>epl-v10.html</a><br>
> - *<br>
> - * Contributors:<br>
> - * Intel - initial API and implementation<br>
> - ******************************<wbr>******************************<wbr>*******************/<br>
> -package org.yocto.sdk.remotetools.<wbr>wizards.bsp;<br>
> -<br>
> -import java.util.ArrayList;<br>
> -import java.util.Collections;<br>
> -import java.util.Enumeration;<br>
> -import java.util.HashSet;<br>
> -import java.util.Hashtable;<br>
> -import java.util.Iterator;<br>
> -<br>
> -import org.eclipse.jface.dialogs.<wbr>MessageDialog;<br>
> -import org.eclipse.jface.wizard.<wbr>WizardPage;<br>
> -import org.eclipse.swt.SWT;<br>
> -import org.eclipse.swt.custom.<wbr>ScrolledComposite;<br>
> -import org.eclipse.swt.events.<wbr>SelectionEvent;<br>
> -import org.eclipse.swt.events.<wbr>SelectionListener;<br>
> -import org.eclipse.swt.layout.<wbr>GridData;<br>
> -import org.eclipse.swt.layout.<wbr>GridLayout;<br>
> -import org.eclipse.swt.widgets.<wbr>Button;<br>
> -import org.eclipse.swt.widgets.Combo;<br>
> -import org.eclipse.swt.widgets.<wbr>Composite;<br>
> -import org.eclipse.swt.widgets.<wbr>Control;<br>
> -import org.eclipse.swt.widgets.Group;<br>
> -import org.eclipse.swt.widgets.Label;<br>
> -import org.eclipse.swt.widgets.Text;<br>
> -import org.eclipse.swt.widgets.<wbr>Widget;<br>
> -import org.yocto.sdk.remotetools.<wbr>YoctoBspElement;<br>
> -import org.yocto.sdk.remotetools.<wbr>YoctoBspPropertyElement;<br>
> -import org.yocto.sdk.remotetools.<wbr>YoctoJSONHelper;<br>
> -/**<br>
> - *<br>
> - * Setting up the parameters for creating the new Yocto BSP<br>
> - *<br>
> - * @author jzhang<br>
> - */<br>
> -public class PropertiesPage extends WizardPage {<br>
> -Â Â Â private static final String PAGE_NAME = "Properties";<br>
> -Â Â Â private static final String VALUES_CMD_PREFIX = "yocto-bsp list ";<br>
> -   private static final String VALUES_CMD_SURFIX = " property ";<br>
> -Â Â Â private static final String KERNEL_CHOICE = "kernel_choice";<br>
> -Â Â Â private static final String DEFAULT_KERNEL = "use_default_kernel";<br>
> -Â Â Â private static final String SMP_NAME = "smp";<br>
> -Â Â Â private static final String EXISTING_KBRANCH_NAME = "existing_kbranch";<br>
> -Â Â Â private static final String NEED_NEW_KBRANCH_NAME = "need_new_kbranch";<br>
> -Â Â Â private static final String NEW_KBRANCH_NAME = "new_kbranch";<br>
> -Â Â Â private static final String QARCH_NAME = "qemuarch";<br>
> -<br>
> -Â Â Â private static final String KERNEL_CHOICES = "choices";<br>
> -Â Â Â private static final String KERNEL_BRANCHES = "branches";<br>
> -<br>
> -Â Â Â private Hashtable<<wbr>YoctoBspPropertyElement, Control> propertyControlMap;<br>
> -Â Â Â HashSet<<wbr>YoctoBspPropertyElement> properties;<br>
> -<br>
> -Â Â Â private ScrolledComposite composite;<br>
> -Â Â Â private Composite controlContainer = null;<br>
> -<br>
> -Â Â Â private YoctoBspElement bspElem = null;<br>
> -Â Â Â private boolean kArchChanged = false;<br>
> -<br>
> -Â Â Â private Combo kernelCombo;<br>
> -Â Â Â private Combo branchesCombo;<br>
> -<br>
> -Â Â Â private Button newBranchButton;<br>
> -Â Â Â private Button existingBranchButton;<br>
> -<br>
> -Â Â Â private Button smpButton;<br>
> -<br>
> -Â Â Â private Group kGroup = null;<br>
> -Â Â Â private Group kbGroup = null;<br>
> -//Â Â private Group otherSettingsGroup = null;<br>
> -Â Â Â private Group propertyGroup = null;<br>
> -<br>
> -Â Â Â public PropertiesPage(YoctoBspElement element) {<br>
> -Â Â Â Â Â Â Â super(PAGE_NAME, "yocto-bsp Properties page", null);<br>
> -Â Â Â Â Â Â Â this.bspElem = element;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public void onEnterPage(YoctoBspElement element) {<br>
> -Â Â Â Â Â Â Â if (!element.<wbr>getValidPropertiesFile()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â setErrorMessage("There's no valid properties file created, please choose \"Back\" to reselect kernel architecture!");<br>
> -Â Â Â Â Â Â Â Â Â Â Â return;<br>
> -Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â if (this.bspElem == null || this.bspElem.getKarch().<wbr>isEmpty() || !this.bspElem.getKarch().<wbr>contentEquals(element.<wbr>getKarch())) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â kArchChanged = true;<br>
> -Â Â Â Â Â Â Â } else<br>
> -Â Â Â Â Â Â Â Â Â Â Â kArchChanged = false;<br>
> -<br>
> -Â Â Â Â Â Â Â this.bspElem = element;<br>
> -Â Â Â Â Â Â Â try {<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (kArchChanged) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â updateKernelValues(KERNEL_<wbr>CHOICES, KERNEL_CHOICE);<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (propertyGroup != null) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â for (Control cntrl : propertyGroup.getChildren()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â cntrl.dispose();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â properties = YoctoJSONHelper.getProperties(<wbr>);<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (!properties.isEmpty()) {<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (!element.getQarch().isEmpty()<wbr>) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â YoctoBspPropertyElement qarch_elem = new YoctoBspPropertyElement();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â qarch_elem.setName(QARCH_NAME)<wbr>;<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â qarch_elem.setValue(element.<wbr>getQarch());<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â properties.add(qarch_elem);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â propertyControlMap = new Hashtable<<wbr>YoctoBspPropertyElement, Control>();<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â ArrayList<<wbr>YoctoBspPropertyElement> propertiesList = new ArrayList<<wbr>YoctoBspPropertyElement>(<wbr>properties);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Collections.sort(<wbr>propertiesList, Collections.reverseOrder());<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Iterator<<wbr>YoctoBspPropertyElement> it = propertiesList.iterator();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Composite comp = new Composite(propertyGroup, SWT.FILL);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â GridLayout layout = new GridLayout(2, false);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â GridData data = new GridData(GridData.FILL, GridData.FILL, true, false, 2, 1);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â comp.setLayoutData(data);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â comp.setLayout(layout);<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â while (it.hasNext()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â // Get property<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â YoctoBspPropertyElement propElem = it.next();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â String type = propElem.getType();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â String name = propElem.getName();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (type.contentEquals("edit")) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â new Label (propertyGroup, SWT.FILL).setText(name + ":");<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Composite textContainer = new Composite(propertyGroup, SWT.NONE);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â textContainer.setLayout(new GridLayout(1, false));<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â textContainer.setLayoutData(<wbr>new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Text text = new Text(textContainer, SWT.BORDER | SWT.SINGLE);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â text.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â propertyControlMap.put(<wbr>propElem, text);<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â } else if (type.contentEquals("boolean")<wbr>) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â String default_value = propElem.getDefaultValue();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Composite labelContainer = new Composite(propertyGroup, SWT.NONE);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â labelContainer.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â labelContainer.setLayoutData(<wbr>new GridData(GridData.FILL_<wbr>HORIZONTAL, GridData.FILL_VERTICAL, true, false, 2, 1));<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Button button = new Button(propertyGroup, SWT.CHECK);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â button.setText(name);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (default_value.<wbr>equalsIgnoreCase("y")) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â button.setSelection(true);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â } else<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â button.setSelection(false);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â propertyControlMap.put(<wbr>propElem, button);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â } else if (type.contentEquals("<wbr>choicelist")) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â new Label (propertyGroup, SWT.NONE).setText(name + ":");<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Composite textContainer = new Composite(propertyGroup, SWT.NONE);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â textContainer.setLayout(new GridLayout(1, false));<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â textContainer.setLayoutData(<wbr>new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Combo combo = new Combo(textContainer, SWT.READ_ONLY);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â combo.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â combo.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â combo.setItems(<wbr>getBSPComboProperties(name));<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â propertyControlMap.put(<wbr>propElem, combo);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â composite.setMinSize(<wbr>controlContainer.computeSize(<wbr>SWT.DEFAULT, SWT.DEFAULT, true));<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â composite.computeSize(SWT.<wbr>DEFAULT, SWT.DEFAULT);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â controlContainer.pack();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â this.composite.layout(true, true);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â } catch (Exception e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â e.printStackTrace();<br>
> -Â Â Â Â Â Â Â }<br>
> -<br>
> -<br>
> -Â Â Â }<br>
> -<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â public void createControl(Composite parent) {<br>
> -Â Â Â Â Â Â Â this.composite = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);<br>
> -Â Â Â Â Â Â Â GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false);<br>
> -Â Â Â Â Â Â Â GridLayout layout = new GridLayout(2, true);<br>
> -Â Â Â Â Â Â Â this.composite.setLayout(<wbr>layout);<br>
> -<br>
> -Â Â Â Â Â Â Â gd= new GridData(SWT.FILL, SWT.FILL, true, false);<br>
> -Â Â Â Â Â Â Â gd.horizontalSpan = 2;<br>
> -Â Â Â Â Â Â Â this.composite.setLayoutData(<wbr>gd);<br>
> -<br>
> -Â Â Â Â Â Â Â setControl(this.composite);<br>
> -<br>
> -Â Â Â Â Â Â Â controlContainer = new Composite(composite, SWT.NONE);<br>
> -Â Â Â Â Â Â Â controlContainer.setLayout(new GridLayout(1, true));<br>
> -Â Â Â Â Â Â Â controlContainer.<wbr>setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));<br>
> -<br>
> -Â Â Â Â Â Â Â kGroup = new Group(controlContainer, SWT.FILL);<br>
> -Â Â Â Â Â Â Â kGroup.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â GridData data = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1);<br>
> -Â Â Â Â Â Â Â kGroup.setLayoutData(data);<br>
> -Â Â Â Â Â Â Â kGroup.setText("Kernel Settings:");<br>
> -<br>
> -Â Â Â Â Â Â Â new Label (kGroup, SWT.NONE).setText("Kernel:");<br>
> -Â Â Â Â Â Â Â Composite textContainer = new Composite(kGroup, SWT.NONE);<br>
> -Â Â Â Â Â Â Â textContainer.setLayout(new GridLayout(1, false));<br>
> -Â Â Â Â Â Â Â textContainer.setLayoutData(<wbr>new GridData(GridData.FILL, GridData.CENTER, true, false, 1, 1));<br>
> -<br>
> -Â Â Â Â Â Â Â kernelCombo = new Combo(textContainer, SWT.READ_ONLY);<br>
> -Â Â Â Â Â Â Â kernelCombo.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â kernelCombo.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));<br>
> -<br>
> -Â Â Â Â Â Â Â kernelCombo.<wbr>addSelectionListener(new SelectionListener() {<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â Â Â Â Â public void widgetSelected(SelectionEvent e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â controlChanged(e.widget);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â Â Â Â Â public void widgetDefaultSelected(<wbr>SelectionEvent e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â });<br>
> -<br>
> -Â Â Â Â Â Â Â kbGroup = new Group(kGroup, SWT.FILL);<br>
> -Â Â Â Â Â Â Â kbGroup.setLayout(new GridLayout(2, true));<br>
> -Â Â Â Â Â Â Â data = new GridData(SWT.FILL, SWT.FILL, true, false);<br>
> -Â Â Â Â Â Â Â data.horizontalSpan = 2;<br>
> -Â Â Â Â Â Â Â kbGroup.setLayoutData(data);<br>
> -Â Â Â Â Â Â Â kbGroup.setText("Branch Settings:");<br>
> -<br>
> -Â Â Â Â Â Â Â textContainer = new Composite(kbGroup, SWT.NONE);<br>
> -Â Â Â Â Â Â Â textContainer.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â textContainer.setLayoutData(<wbr>new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1));<br>
> -<br>
> -Â Â Â Â Â Â Â new Label(textContainer, SWT.NONE).setText("Kernel branch:");<br>
> -<br>
> -Â Â Â Â Â Â Â branchesCombo = new Combo(textContainer, SWT.READ_ONLY);<br>
> -Â Â Â Â Â Â Â branchesCombo.setLayout(new GridLayout(1, false));<br>
> -Â Â Â Â Â Â Â branchesCombo.setLayoutData(<wbr>new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));<br>
> -Â Â Â Â Â Â Â branchesCombo.<wbr>addSelectionListener(new SelectionListener() {<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â Â Â Â Â public void widgetSelected(SelectionEvent e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â controlChanged(e.widget);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â Â Â Â Â public void widgetDefaultSelected(<wbr>SelectionEvent e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â });<br>
> -Â Â Â Â Â Â Â branchesCombo.setSize(200, 200);<br>
> -<br>
> -Â Â Â Â Â Â Â newBranchButton = new Button(kbGroup, SWT.RADIO);<br>
> -Â Â Â Â Â Â Â newBranchButton.setText("<wbr>Create a new branch from an existing one");<br>
> -Â Â Â Â Â Â Â newBranchButton.setSelection(<wbr>true);<br>
> -Â Â Â Â Â Â Â newBranchButton.setLayoutData(<wbr>new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));<br>
> -Â Â Â Â Â Â Â SelectionListener listener = new SelectionListener() {<br>
> -Â Â Â Â Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â Â Â Â Â public void widgetDefaultSelected(<wbr>SelectionEvent e) {}<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â @Override<br>
> -Â Â Â Â Â Â Â Â Â Â Â public void widgetSelected(SelectionEvent e) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â controlChanged(e.widget);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â };<br>
> -<br>
> -Â Â Â Â Â Â Â newBranchButton.<wbr>addSelectionListener(listener)<wbr>;<br>
> -<br>
> -Â Â Â Â Â Â Â existingBranchButton = new Button(kbGroup, SWT.RADIO);<br>
> -Â Â Â Â Â Â Â existingBranchButton.setText("<wbr>Use existing branch");<br>
> -Â Â Â Â Â Â Â existingBranchButton.<wbr>setSelection(false);<br>
> -Â Â Â Â Â Â Â existingBranchButton.<wbr>setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));<br>
> -Â Â Â Â Â Â Â existingBranchButton.<wbr>addSelectionListener(listener)<wbr>;<br>
> -<br>
> -//Â Â Â Â Â Â otherSettingsGroup = new Group(controlContainer, SWT.FILL);<br>
> -//Â Â Â Â Â Â otherSettingsGroup.setLayout(<wbr>new GridLayout(2, true));<br>
> -//Â Â Â Â Â Â data = new GridData(SWT.FILL, SWT.FILL, true, false);<br>
> -//Â Â Â Â Â Â data.horizontalSpan = 2;<br>
> -//Â Â Â Â Â Â otherSettingsGroup.<wbr>setLayoutData(data);<br>
> -//Â Â Â Â Â Â otherSettingsGroup.setText("<wbr>Other Settings:");<br>
> -<br>
> -Â Â Â Â Â Â Â smpButton = new Button(kGroup, SWT.CHECK);<br>
> -Â Â Â Â Â Â Â smpButton.setText("Enable SMP support");<br>
> -Â Â Â Â Â Â Â smpButton.setSelection(true);<br>
> -<br>
> -Â Â Â Â Â Â Â propertyGroup = new Group(controlContainer, SWT.NONE);<br>
> -Â Â Â Â Â Â Â propertyGroup.setLayout(new GridLayout(2, false));<br>
> -Â Â Â Â Â Â Â data = new GridData(GridData.FILL, GridData.FILL, true, false, 2, 1);<br>
> -Â Â Â Â Â Â Â propertyGroup.setLayoutData(<wbr>data);<br>
> -Â Â Â Â Â Â Â propertyGroup.setText("BSP specific settings:");<br>
> -<br>
> -Â Â Â Â Â Â Â this.composite.layout(true, true);<br>
> -<br>
> -Â Â Â Â Â Â Â composite.setContent(<wbr>controlContainer);<br>
> -Â Â Â Â Â Â Â composite.setExpandHorizontal(<wbr>true);<br>
> -Â Â Â Â Â Â Â composite.setExpandVertical(<wbr>true);<br>
> -Â Â Â Â Â Â Â composite.setMinSize(<wbr>controlContainer.computeSize(<wbr>SWT.DEFAULT, SWT.DEFAULT, true));<br>
> -Â Â Â Â Â Â Â controlContainer.pack();<br>
> -Â Â Â Â Â Â Â composite.pack();<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â public boolean canFlipToNextPage() {<br>
> -Â Â Â Â Â Â Â return false;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public HashSet<<wbr>YoctoBspPropertyElement> getProperties() {<br>
> -Â Â Â Â Â Â Â String kcSelection = kernelCombo.getText();<br>
> -Â Â Â Â Â Â Â String kbSelection = branchesCombo.getText();<br>
> -Â Â Â Â Â Â Â YoctoBspPropertyElement kcElement = new YoctoBspPropertyElement();<br>
> -Â Â Â Â Â Â Â kcElement.setName(KERNEL_<wbr>CHOICE);<br>
> -Â Â Â Â Â Â Â kcElement.setValue(<wbr>kcSelection);<br>
> -Â Â Â Â Â Â Â properties.add(kcElement);<br>
> -Â Â Â Â Â Â Â YoctoBspPropertyElement defaultElement = new YoctoBspPropertyElement();<br>
> -Â Â Â Â Â Â Â defaultElement.setName(<wbr>DEFAULT_KERNEL);<br>
> -Â Â Â Â Â Â Â defaultElement.setValue("n");<br>
> -Â Â Â Â Â Â Â properties.add(defaultElement)<wbr>;<br>
> -<br>
> -Â Â Â Â Â Â Â YoctoBspPropertyElement smpElement = new YoctoBspPropertyElement();<br>
> -Â Â Â Â Â Â Â smpElement.setName(SMP_NAME);<br>
> -Â Â Â Â Â Â Â if (smpButton.getSelection())<br>
> -Â Â Â Â Â Â Â Â Â Â Â smpElement.setValue("y");<br>
> -Â Â Â Â Â Â Â else<br>
> -Â Â Â Â Â Â Â Â Â Â Â smpElement.setValue("n");<br>
> -Â Â Â Â Â Â Â properties.add(smpElement);<br>
> -<br>
> -Â Â Â Â Â Â Â YoctoBspPropertyElement newKbElement = new YoctoBspPropertyElement();<br>
> -Â Â Â Â Â Â Â YoctoBspPropertyElement kbElement = new YoctoBspPropertyElement();<br>
> -<br>
> -Â Â Â Â Â Â Â newKbElement.setName(NEED_NEW_<wbr>KBRANCH_NAME);<br>
> -Â Â Â Â Â Â Â if (newBranchButton.getSelection(<wbr>)) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â newKbElement.setValue("y");<br>
> -Â Â Â Â Â Â Â Â Â Â Â properties.add(newKbElement);<br>
> -Â Â Â Â Â Â Â Â Â Â Â kbElement.setName(NEW_KBRANCH_<wbr>NAME);<br>
> -Â Â Â Â Â Â Â Â Â Â Â kbElement.setValue(<wbr>kbSelection);<br>
> -Â Â Â Â Â Â Â Â Â Â Â properties.add(kbElement);<br>
> -Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â newKbElement.setValue("n");<br>
> -Â Â Â Â Â Â Â Â Â Â Â properties.add(newKbElement);<br>
> -Â Â Â Â Â Â Â Â Â Â Â kbElement.setName(EXISTING_<wbr>KBRANCH_NAME);<br>
> -Â Â Â Â Â Â Â Â Â Â Â kbElement.setValue(<wbr>kbSelection);<br>
> -Â Â Â Â Â Â Â Â Â Â Â properties.add(kbElement);<br>
> -Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â Â Â Â Â return properties;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â public boolean validatePage() {<br>
> -Â Â Â Â Â Â Â if (kernelCombo == null)<br>
> -Â Â Â Â Â Â Â Â Â Â Â return false;<br>
> -<br>
> -Â Â Â Â Â Â Â if ((kernelCombo != null) && (branchesCombo != null)) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â String kcSelection = kernelCombo.getText();<br>
> -Â Â Â Â Â Â Â Â Â Â Â String kbSelection = branchesCombo.getText();<br>
> -Â Â Â Â Â Â Â Â Â Â Â if ((kcSelection == null) || (kbSelection == null) || (kcSelection.isEmpty()) || (kbSelection.isEmpty())) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â setErrorMessage("Please choose a kernel and a specific branch!");<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â return false;<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â if ((propertyControlMap != null)) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (!propertyControlMap.isEmpty()<wbr>) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Enumeration<<wbr>YoctoBspPropertyElement> keys = propertyControlMap.keys();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â while (keys.hasMoreElements()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â YoctoBspPropertyElement key = keys.nextElement();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Control control = propertyControlMap.get(key);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â String type = key.getType();<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (type.contentEquals("edit")) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â String text_value = ((Text)control).getText();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (text_value == null) {<br>
> -                           setErrorMessage("Field "+ key.getName() +" is not set. All of the field on this screen must be set!");<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â return false;<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â key.setValue(text_value);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â } else if (type.contentEquals("<wbr>choicelist")) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â String choice_value = ((Combo)control).getText();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (choice_value == null) {<br>
> -                           setErrorMessage("Field "+ key.getName() +" is not set. All of the field on this screen must be set!");<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â return false;<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â key.setValue(choice_value);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â boolean button_select = ((Button)control).<wbr>getSelection();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (button_select)<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â key.setValue("y");<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â else<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â key.setValue("n");<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â updateProperties(key);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â return true;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private void updateProperties(<wbr>YoctoBspPropertyElement element) {<br>
> -Â Â Â Â Â Â Â Iterator<<wbr>YoctoBspPropertyElement> it = properties.iterator();<br>
> -<br>
> -Â Â Â Â Â Â Â while (it.hasNext()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â YoctoBspPropertyElement propElem = it.next();<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (propElem.getName().<wbr>contentEquals(element.getName(<wbr>))) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â properties.remove(propElem);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â properties.add(element);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â break;<br>
> -Â Â Â Â Â Â Â Â Â Â Â } else<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â continue;<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â }<br>
> -Â Â Â private void controlChanged(Widget widget) {<br>
> -Â Â Â Â Â Â Â setErrorMessage(null);<br>
> -<br>
> -Â Â Â Â Â Â Â String kernel_choice = kernelCombo.getText();<br>
> -Â Â Â Â Â Â Â if ((kernel_choice == null) || (kernel_choice.isEmpty())) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â setErrorMessage("Please choose kernel !");<br>
> -Â Â Â Â Â Â Â Â Â Â Â return;<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â if (widget == kernelCombo) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â updateKernelValues(KERNEL_<wbr>BRANCHES, "\\\"" + kernel_choice + "\\\"." + NEW_KBRANCH_NAME);<br>
> -Â Â Â Â Â Â Â } else if (widget == branchesCombo) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â setErrorMessage(null);<br>
> -Â Â Â Â Â Â Â Â Â Â Â branchesCombo.computeSize(SWT.<wbr>DEFAULT, SWT.DEFAULT);<br>
> -Â Â Â Â Â Â Â } else if (widget == newBranchButton || widget == existingBranchButton) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (newBranchButton.getSelection(<wbr>)) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â updateKernelValues(KERNEL_<wbr>BRANCHES, "\"" + kernel_choice + "\"." + NEW_KBRANCH_NAME);<br>
> -Â Â Â Â Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â updateKernelValues(KERNEL_<wbr>BRANCHES, "\"" + kernel_choice + "\"." + EXISTING_KBRANCH_NAME);<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â branchesCombo.deselectAll();<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â canFlipToNextPage();<br>
> -Â Â Â Â Â Â Â getWizard().getContainer().<wbr>updateButtons();<br>
> -Â Â Â Â Â Â Â this.composite.layout(true, true);<br>
> -Â Â Â Â Â Â Â composite.pack();<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private void updateKernelValues(final String value, String property) {<br>
> -Â Â Â Â Â Â Â @SuppressWarnings("unused")<br>
> -Â Â Â Â Â Â Â String build_dir = "";<br>
> -Â Â Â Â Â Â Â if ((bspElem.getBuildLoc() == null) || bspElem.getBuildLoc().isEmpty(<wbr>))<br>
> -Â Â Â Â Â Â Â Â Â Â Â build_dir = bspElem.getMetadataLoc()+"/<wbr>build";<br>
> -Â Â Â Â Â Â Â else<br>
> -Â Â Â Â Â Â Â Â Â Â Â build_dir = bspElem.getBuildLoc();<br>
> -<br>
> -Â Â Â Â Â Â Â String metadataLoc = bspElem.getMetadataLoc();<br>
> -Â Â Â Â Â Â Â String valuesCmd = "source " + metadataLoc + "/oe-init-build-env;" + metadataLoc + "/scripts/" + VALUES_CMD_PREFIX + bspElem.getKarch() + VALUES_CMD_SURFIX + property;<br>
> -       BSPProgressDialog progressDialog = new BSPProgressDialog(getShell(), new KernelBranchesGetter(<wbr>valuesCmd), "Loading Kernel " + value);<br>
> -Â Â Â Â Â Â Â if (value.equals(KERNEL_CHOICES))<br>
> -Â Â Â Â Â Â Â Â Â Â Â progressDialog.run(false);<br>
> -Â Â Â Â Â Â Â else if (value.equals(KERNEL_BRANCHES)<wbr>)<br>
> -Â Â Â Â Â Â Â Â Â Â Â progressDialog.run(true);<br>
> -<br>
> -Â Â Â Â Â Â Â BSPAction action = progressDialog.getBspAction();<br>
> -Â Â Â Â Â Â Â if (action.getItems() != null) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (value.equals(KERNEL_CHOICES)) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â kernelCombo.setItems(action.<wbr>getItems());<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â kernelCombo.pack();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â kernelCombo.deselectAll();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â branchesCombo.setEnabled(<wbr>false);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â branchesCombo.deselectAll();<br>
> -Â Â Â Â Â Â Â Â Â Â Â } else if (value.equals(KERNEL_BRANCHES)<wbr>) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â branchesCombo.setItems(action.<wbr>getItems());<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â branchesCombo.pack();<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â branchesCombo.setEnabled(true)<wbr>;<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â Â Â Â Â composite.setMinSize(<wbr>controlContainer.computeSize(<wbr>SWT.DEFAULT, SWT.DEFAULT, true));<br>
> -Â Â Â Â Â Â Â } else if (action.getMessage() != null)<br>
> -Â Â Â Â Â Â Â Â Â Â Â MessageDialog.openError(<wbr>getShell(), "Yocto-BSP", action.getMessage());<br>
> -Â Â Â Â Â Â Â composite.setMinSize(<wbr>controlContainer.computeSize(<wbr>SWT.DEFAULT, SWT.DEFAULT, true));<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private String[] getBSPComboProperties(String property) {<br>
> -Â Â Â Â Â Â Â String build_dir = "";<br>
> -Â Â Â Â Â Â Â if ((bspElem.getBuildLoc() == null) || bspElem.getBuildLoc().isEmpty(<wbr>))<br>
> -Â Â Â Â Â Â Â Â Â Â Â build_dir = bspElem.getMetadataLoc()+"/<wbr>build";<br>
> -Â Â Â Â Â Â Â else<br>
> -Â Â Â Â Â Â Â Â Â Â Â build_dir = bspElem.getBuildLoc();<br>
> -<br>
> -Â Â Â Â Â Â Â String valuesCmd = "export BUILDDIR=" + build_dir + ";" + bspElem.getMetadataLoc() + "/scripts/" + VALUES_CMD_PREFIX + bspElem.getKarch() + VALUES_CMD_SURFIX + property;<br>
> -       BSPProgressDialog progressDialog = new BSPProgressDialog(getShell(), new KernelBranchesGetter(<wbr>valuesCmd), "Loading property " + property + "values");<br>
> -Â Â Â Â Â Â Â progressDialog.run(false);<br>
> -Â Â Â Â Â Â Â BSPAction action = progressDialog.getBspAction();<br>
> -<br>
> -Â Â Â Â Â Â Â if (action.getItems() != null) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â return action.getItems();<br>
> -Â Â Â Â Â Â Â } else if (action.getMessage() != null) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â MessageDialog.openError(<wbr>getShell(), "Yocto-BSP", action.getMessage());<br>
> -Â Â Â Â Â Â Â Â Â Â Â return new String[]{};<br>
> -Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â return new String[]{};<br>
> -Â Â Â }<br>
> -}<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>QemuArchGetter.java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>QemuArchGetter.java<br>
> deleted file mode 100644<br>
> index e235695..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>QemuArchGetter.java<br>
> +++ /dev/null<br>
> @@ -1,27 +0,0 @@<br>
> -package org.yocto.sdk.remotetools.<wbr>wizards.bsp;<br>
> -<br>
> -/**<br>
> - * BSPThread that processes the output of running "yocto-bsp list qemu property qemuarch"<br>
> - * @author ioana.grigoropol<br>
> - *<br>
> - */<br>
> -public class QemuArchGetter extends BSPThread {<br>
> -<br>
> -Â Â Â public QemuArchGetter(String command) {<br>
> -Â Â Â Â Â Â Â super(command);<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â protected String[] processLine(String line) {<br>
> -Â Â Â Â Â Â Â if (!line.startsWith("["))<br>
> -Â Â Â Â Â Â Â Â Â Â Â return new String[]{ERROR, line + "\n"};<br>
> -<br>
> -Â Â Â Â Â Â Â String[] values = line.split(",");<br>
> -<br>
> -Â Â Â Â Â Â Â String value = values[0];<br>
> -Â Â Â Â Â Â Â value = value.replace("[\"", "");<br>
> -Â Â Â Â Â Â Â value = value.replaceAll("\"$", "");<br>
> -Â Â Â Â Â Â Â return new String[]{SUCCESS, value};<br>
> -Â Â Â }<br>
> -<br>
> -}<br>
> diff --git a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>YoctoBSPWizard.java b/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>YoctoBSPWizard.java<br>
> deleted file mode 100644<br>
> index 3ab24c0..0000000<br>
> --- a/plugins/org.yocto.sdk.<wbr>remotetools/src/org/yocto/sdk/<wbr>remotetools/wizards/bsp/<wbr>YoctoBSPWizard.java<br>
> +++ /dev/null<br>
> @@ -1,99 +0,0 @@<br>
> -/****************************<wbr>******************************<wbr>*********************<br>
> - * Copyright (c) 2010 Intel Corporation.<br>
> - * All rights reserved. This program and the accompanying materials<br>
> - * are made available under the terms of the Eclipse Public License v1.0<br>
> - * which accompanies this distribution, and is available at<br>
> - * <a href="http://www.eclipse.org/legal/epl-v10.html" rel="noreferrer" target="_blank">http://www.eclipse.org/legal/<wbr>epl-v10.html</a><br>
> - *<br>
> - * Contributors:<br>
> - * Intel - initial API and implementation<br>
> - ******************************<wbr>******************************<wbr>*******************/<br>
> -package org.yocto.sdk.remotetools.<wbr>wizards.bsp;<br>
> -<br>
> -import java.util.HashSet;<br>
> -<br>
> -import org.eclipse.jface.dialogs.<wbr>MessageDialog;<br>
> -import org.eclipse.jface.wizard.<wbr>IWizardPage;<br>
> -import org.eclipse.jface.wizard.<wbr>Wizard;<br>
> -import org.yocto.sdk.remotetools.<wbr>YoctoBspElement;<br>
> -import org.yocto.sdk.remotetools.<wbr>YoctoBspPropertyElement;<br>
> -import org.yocto.sdk.remotetools.<wbr>YoctoJSONHelper;<br>
> -<br>
> -/**<br>
> - * A wizard for creating Yocto BSP.<br>
> - *<br>
> - * @author jzhang<br>
> - *<br>
> - */<br>
> -public class YoctoBSPWizard extends Wizard {<br>
> -Â Â Â private static final String CREATE_CMD = "/scripts/yocto-bsp create ";<br>
> -Â Â Â private static final String PROPERTY_VALUE_FILE = "/tmp/propertyvalues.json";<br>
> -<br>
> -Â Â Â private MainPage mainPage;<br>
> -Â Â Â private PropertiesPage propertiesPage;<br>
> -Â Â Â private final YoctoBspElement bspElem;<br>
> -<br>
> -Â Â Â public YoctoBSPWizard() {<br>
> -Â Â Â Â Â Â Â super();<br>
> -Â Â Â Â Â Â Â bspElem = new YoctoBspElement();<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â public IWizardPage getNextPage(IWizardPage page) {<br>
> -Â Â Â Â Â Â Â propertiesPage.onEnterPage(<wbr>mainPage.getBSPElement());<br>
> -Â Â Â Â Â Â Â return propertiesPage;<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â public void addPages() {<br>
> -Â Â Â Â Â Â Â mainPage = new MainPage(bspElem);<br>
> -Â Â Â Â Â Â Â addPage(mainPage);<br>
> -Â Â Â Â Â Â Â propertiesPage = new PropertiesPage(bspElem);<br>
> -Â Â Â Â Â Â Â addPage(propertiesPage);<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â private BSPAction createBSP(){<br>
> -Â Â Â Â Â Â Â YoctoBspElement element = mainPage.getBSPElement();<br>
> -Â Â Â Â Â Â Â String createBspCmd = element.getMetadataLoc() + CREATE_CMD +<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â element.getBspName() + " " + element.getKarch();<br>
> -<br>
> -Â Â Â Â Â Â Â if (!element.getBspOutLoc().<wbr>isEmpty())<br>
> -Â Â Â Â Â Â Â Â Â Â Â createBspCmd = createBspCmd + " -o " + element.getBspOutLoc();<br>
> -Â Â Â Â Â Â Â else<br>
> -Â Â Â Â Â Â Â Â Â Â Â createBspCmd = createBspCmd + " -o " + element.getMetadataLoc() + "/meta-" + element.getBspName();<br>
> -Â Â Â Â Â Â Â createBspCmd = createBspCmd + " -i " + PROPERTY_VALUE_FILE;<br>
> -<br>
> -       BSPProgressDialog progressDialog = new BSPProgressDialog(getShell(), new OutputCollectorThread(<wbr>createBspCmd), "Creating BSP ");<br>
> -Â Â Â Â Â Â Â progressDialog.run(true);<br>
> -Â Â Â Â Â Â Â return progressDialog.getBspAction();<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â public boolean performFinish() {<br>
> -Â Â Â Â Â Â Â if (propertiesPage.validatePage()<wbr>) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â HashSet<<wbr>YoctoBspPropertyElement> properties = propertiesPage.getProperties()<wbr>;<br>
> -Â Â Â Â Â Â Â Â Â Â Â YoctoJSONHelper.<wbr>createBspJSONFile(properties);<br>
> -<br>
> -Â Â Â Â Â Â Â Â Â Â Â BSPAction createBSPAction = createBSP();<br>
> -Â Â Â Â Â Â Â Â Â Â Â if (createBSPAction.getMessage() !=Â null && !createBSPAction.getMessage().<wbr>isEmpty()) {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â MessageDialog.openError(<wbr>getShell(),"Yocto-BSP", createBSPAction.getMessage());<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â return false;<br>
> -Â Â Â Â Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â String message = "";<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â for (String item : createBSPAction.getItems())<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â message += item + "\n";<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â MessageDialog.openInformation(<wbr>getShell(), "Yocto-BSP", message);<br>
> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â return true;<br>
> -Â Â Â Â Â Â Â Â Â Â Â }<br>
> -Â Â Â Â Â Â Â } else {<br>
> -Â Â Â Â Â Â Â Â Â Â Â MessageDialog.openError(<wbr>getShell(), "Yocto-BSP", "Property settings contains error!");<br>
> -Â Â Â Â Â Â Â Â Â Â Â return false;<br>
> -Â Â Â Â Â Â Â }<br>
> -<br>
> -Â Â Â }<br>
> -<br>
> -Â Â Â @Override<br>
> -Â Â Â public boolean canFinish() {<br>
> -Â Â Â Â Â Â Â return (mainPage.validatePage() && propertiesPage.validatePage())<wbr>;<br>
> -Â Â Â }<br>
> -}<br>
> --<br>
> 2.7.4<br>
><br>
> ______________________________<wbr>_________________<br>
> eclipse-poky mailing list<br>
> <a href="mailto:eclipse-poky@yoctoproject.org">eclipse-poky@yoctoproject.org</a><br>
> <a href="https://lists.yoctoproject.org/listinfo/eclipse-poky" rel="noreferrer" target="_blank">https://lists.yoctoproject.<wbr>org/listinfo/eclipse-poky</a><br>
<br>
______________________________<wbr>_________________<br>
eclipse-poky mailing list<br>
<a href="mailto:eclipse-poky@yoctoproject.org">eclipse-poky@yoctoproject.org</a><br>
<a href="https://lists.yoctoproject.org/listinfo/eclipse-poky" rel="noreferrer" target="_blank">https://lists.yoctoproject.<wbr>org/listinfo/eclipse-poky</a><br>
</div></div></blockquote></div><br></div>