Skip to content

Commit

Permalink
apply fix for FlexBE#15 to behaviors in code- and model-generator
Browse files Browse the repository at this point in the history
  • Loading branch information
ffriese committed Jan 9, 2019
1 parent bd43091 commit 2afa637
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
10 changes: 8 additions & 2 deletions src/io/io_codegenerator.js
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,10 @@ IO.CodeGenerator = new (function() {
contained_behaviors.push(states[i]);
}
for (var i=0; i<contained_behaviors.length; ++i) {
code += ws+ws+"self.add_behavior(" + contained_behaviors[i].getStateClass() + ", '" + contained_behaviors[i].getStatePath().substr(1) + "')\n";
var class_key = (!UI.Settings.isExplicitStates() && WS.Statelib.isClassUnique(contained_behaviors[i].getStateClass()))?
contained_behaviors[i].getStateClass() :
contained_behaviors[i].getStatePackage() + "__" + contained_behaviors[i].getStateClass();
code += ws+ws+"self.add_behavior(" + class_key + ", '" + contained_behaviors[i].getStatePath().substr(1) + "')\n";
}
code += "\n";
// manual
Expand Down Expand Up @@ -305,7 +308,10 @@ IO.CodeGenerator = new (function() {
}
defkeys_str = ", default_keys=[" + be_defkeys_str.join(',') + "]";
}
code += ws+ws+ws+ws+ws+ws+ws+ws+ws+ws+"self.use_behavior(" + s.getStateClass() + ", '" + s.getStatePath().substr(1) + "'" + defkeys_str + "),\n";
var class_key = (!UI.Settings.isExplicitStates() && WS.Statelib.isClassUnique(s.getStateClass()))?
s.getStateClass() :
s.getStatePackage() + "__" + s.getStateClass();
code += ws+ws+ws+ws+ws+ws+ws+ws+ws+ws+"self.use_behavior(" + class_key + ", '" + s.getStatePath().substr(1) + "'" + defkeys_str + "),\n";

} else {
var class_key = (!UI.Settings.isExplicitStates() && WS.Statelib.isClassUnique(s.getStateClass()))?
Expand Down
8 changes: 8 additions & 0 deletions src/io/io_modelgenerator.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,14 @@ IO.ModelGenerator = new (function() {
if (s_def.state_type == "container") {
s = that.buildStateMachine(s_def.state_name, s_def.state_class, sm_defs, sm_states, silent);
} else if (s_def.state_type == "behavior") {
if (s_def.state_class.includes("__")) {
var type_split = s_def.state_class.split("__");
var state_key = type_split[0] + "." + type_split[1];
var state_def = WS.Statelib.getFromLib(state_key);
if (state_def == undefined) {
s_def.state_class = type_split[1];
}
}
var state_def = WS.Behaviorlib.getByClass(s_def.state_class);
if (state_def == undefined) {
T.logError("Unable to find behavior definition for: " + s_def.state_class);
Expand Down

0 comments on commit 2afa637

Please sign in to comment.