Changeset View
Changeset View
Standalone View
Standalone View
webroot/rsrc/js/application/files/behavior-document-engine.js
- This file was added.
/** | |||||
* @provides javelin-behavior-document-engine | |||||
* @requires javelin-behavior | |||||
* javelin-dom | |||||
* javelin-stratcom | |||||
*/ | |||||
JX.behavior('document-engine', function() { | |||||
function onmenu(e) { | |||||
var node = e.getNode('document-engine-view-dropdown'); | |||||
var data = JX.Stratcom.getData(node); | |||||
if (data.menu) { | |||||
return; | |||||
} | |||||
e.prevent(); | |||||
var menu = new JX.PHUIXDropdownMenu(node); | |||||
var list = new JX.PHUIXActionListView(); | |||||
var view; | |||||
for (var ii = 0; ii < data.views.length; ii++) { | |||||
var spec = data.views[ii]; | |||||
view = new JX.PHUIXActionView() | |||||
.setName(spec.name) | |||||
.setIcon(spec.icon) | |||||
.setHref(spec.engineURI); | |||||
view.setHandler(JX.bind(null, function(spec, e) { | |||||
if (!e.isNormalClick()) { | |||||
return; | |||||
} | |||||
e.prevent(); | |||||
menu.close(); | |||||
onview(data, spec); | |||||
}, spec)); | |||||
list.addItem(view); | |||||
} | |||||
menu.setContent(list.getNode()); | |||||
data.menu = menu; | |||||
menu.open(); | |||||
} | |||||
function onview(data, spec) { | |||||
var handler = JX.bind(null, onrender, data); | |||||
new JX.Request(spec.engineURI, handler) | |||||
.send(); | |||||
} | |||||
function onrender(data, r) { | |||||
var viewport = JX.$(data.viewportID); | |||||
JX.DOM.setContent(viewport, JX.$H(r.markup)); | |||||
} | |||||
JX.Stratcom.listen('click', 'document-engine-view-dropdown', onmenu); | |||||
}); |