You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.5 KiB
53 lines
1.5 KiB
define(["dojo/dom", "dojo/_base/connect", "dijit/registry", "dojox/mvc"], function(dom, connect, registry, mvc){ |
|
var genmodel = null; // generate view data model |
|
var _connectResults = []; // events connect result |
|
|
|
var updateModel = function(){ |
|
dom.byId("modelArea").focus(); |
|
dom.byId("viewArea").style.display = "none"; |
|
dom.byId("outerModelArea").style.display = ""; |
|
registry.byId("modelArea").set("value", (dojo.toJson(genmodel.toPlainObject(), true))); |
|
}; |
|
|
|
var updateView = function(){ |
|
try{ |
|
var modeldata = dojo.fromJson(dom.byId("modelArea").value); |
|
genmodel = mvc.newStatefulModel({ |
|
data: modeldata |
|
}); |
|
registry.byId("view").set("ref", genmodel); |
|
dom.byId("outerModelArea").style.display = "none"; |
|
dom.byId("viewArea").style.display = ""; |
|
}catch(err){ |
|
console.error("Error parsing json from model: " + err); |
|
} |
|
}; |
|
|
|
return { |
|
init: function(){ |
|
var connectResult; |
|
|
|
connectResult = connect.connect(dom.byId('generate1'), "click", function(){ |
|
updateView(); |
|
}); |
|
_connectResults.push(connectResult); |
|
|
|
connectResult = connect.connect(dom.byId('updateModel'), "click", function(){ |
|
updateModel(); |
|
}); |
|
_connectResults.push(connectResult); |
|
}, |
|
|
|
beforeActivate: function(){ |
|
//console.log("generate view beforeActivate()"); |
|
}, |
|
|
|
destroy: function(){ |
|
var connectResult = _connectResults.pop(); |
|
while(connectResult){ |
|
connect.disconnect(connectResult); |
|
connectResult = _connectResults.pop(); |
|
} |
|
} |
|
}; |
|
});
|
|
|