[yocto] [Refactor RFC 8/8] Fix variables hoover
Ioana Grigoropol
ioanax.grigoropol at intel.com
Tue Jun 4 08:07:48 PDT 2013
- initialize bitbake session for recipe:
- when starting a new project, the session environment variables are obtained by calling "bitbake -e"
- when a new recipe is created and edited, the session variables should be updated with the values obtained from "bitbake -e -b package" => overwrite the session with the new one
Signed-off-by: Ioana Grigoropol <ioanax.grigoropol at intel.com>
---
.../src/org/yocto/bc/bitbake/BBSession.java | 5 +++++
.../bc/ui/editors/bitbake/BBVariableTextHover.java | 12 +++++++++---
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBSession.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBSession.java
index 3becff2..714b3ab 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBSession.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBSession.java
@@ -761,6 +761,11 @@ public class BBSession implements IBBSessionListener, IModelElement, Map {
wlock.unlock();
}
}
+
+ public Map<String, String> getProperties() {
+ return (Map<String, String>) properties;
+ }
+
public ProjectInfo getProjectInfo() {
return pinfo;
}
diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BBVariableTextHover.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BBVariableTextHover.java
index 28e98d4..329ec6b 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BBVariableTextHover.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BBVariableTextHover.java
@@ -25,15 +25,21 @@ import org.yocto.bc.ui.Activator;
*/
class BBVariableTextHover implements ITextHover {
private final BBSession session;
- private volatile Map envMap;
+ private volatile Map<String, String> envMap;
public BBVariableTextHover(BBSession session, URI file) {
this.session = session;
- envMap = session;
+ envMap = getEnvironmentMap();
LoadRecipeJob loadRecipeJob = new LoadRecipeJob(getFilename(file), file);
loadRecipeJob.schedule();
}
+ private Map<String, String> getEnvironmentMap() {
+ if (envMap == null)
+ envMap = this.session.getProperties();
+ return envMap;
+ }
+
private String getFilename(URI uri) {
return uri.getPath();
}
@@ -77,7 +83,7 @@ class BBVariableTextHover implements ITextHover {
}
String key = new String(line, start + 2, i - start - 2);
- String val = (String) envMap.get(key);
+ String val = (String) getEnvironmentMap().get(key);
if (val == null) {
val = "";
--
1.7.9.5
More information about the yocto
mailing list