//>>built define(["dojo","dijit","dojox","dojo/require!dijit/Tree,dijit/Dialog,dijit/Menu,dijit/form/ValidationTextBox,dijit/form/Textarea,dijit/form/Button,dijit/form/RadioButton,dijit/form/FilteringSelect"],function(c,e,v){c.provide("dojox.data.ItemExplorer");c.require("dijit.Tree");c.require("dijit.Dialog");c.require("dijit.Menu");c.require("dijit.form.ValidationTextBox");c.require("dijit.form.Textarea");c.require("dijit.form.Button");c.require("dijit.form.RadioButton");c.require("dijit.form.FilteringSelect"); (function(){var p=function(b,a,c){var d=b.getValues(a,c);2>d.length&&(d=b.getValue(a,c));return d};c.declare("dojox.data.ItemExplorer",e.Tree,{useSelect:!1,refSelectSearchAttr:null,constructor:function(b){c.mixin(this,b);var a=this,g={},d=this.rootModelNode={value:g,id:"root"};this._modelNodeIdMap={};this._modelNodePropMap={};var f=1;this.model={getRoot:function(a){a(d)},mayHaveChildren:function(a){return a.value&&"object"==typeof a.value&&!(a.value instanceof Date)},getChildren:function(b,c,d){function l(){if(n)f= a.store.getAttributes(h),e=h;else if(h&&"object"==typeof h){e=b.value;f=[];for(var d in h)h.hasOwnProperty(d)&&"__id"!=d&&"__clientId"!=d&&f.push(d)}if(f){for(var g=0;d=f[g++];)q.push({property:d,value:n?p(a.store,h,d):h[d],parent:e});q.push({addNew:!0,parent:e,parentNode:b})}c(q)}var f,e,h=b.value,q=[];if(h==g)c([]);else{var n=a.store&&a.store.isItem(h,!0);n&&!a.store.isItemLoaded(h)?a.store.loadItem({item:h,onItem:function(a){h=a;l()}}):l()}},getIdentity:function(b){if(!b.id&&(b.addNew&&(b.property= "--addNew"),b.id=f++,a.store)){if(a.store.isItem(b.value)){var c=a.store.getIdentity(b.value);(a._modelNodeIdMap[c]=a._modelNodeIdMap[c]||[]).push(b)}b.parent&&(c=a.store.getIdentity(b.parent)+"."+b.property,(a._modelNodePropMap[c]=a._modelNodePropMap[c]||[]).push(b))}return b.id},getLabel:function(a){return a===d?"Object Properties":a.addNew?a.parent instanceof Array?"Add new value":"Add new property":a.property+": "+(a.value instanceof Array?"("+a.value.length+" elements)":a.value)},onChildrenChange:function(a){}, onChange:function(a){}}},postCreate:function(){this.inherited(arguments);c.connect(this,"onClick",function(a,b){this.lastFocused=b;a.addNew?this._addProperty():this._editProperty()});var b=new e.Menu({targetNodeIds:[this.rootNode.domNode],id:"contextMenu"});c.connect(b,"_openMyself",this,function(a){if(a=e.getEnclosingWidget(a.target)){var g=a.item;this.store.isItem(g.value,!0)&&!g.parent?(c.forEach(b.getChildren(),function(a){a.attr("disabled","Add"!=a.label)}),this.lastFocused=a):!g.value||"object"!= typeof g.value||g.value instanceof Date?g.property&&0<=c.indexOf(this.store.getIdentityAttributes(),g.property)?(this.focusNode(a),alert("Cannot modify an Identifier node.")):g.addNew?this.focusNode(a):(c.forEach(b.getChildren(),function(a){a.attr("disabled","Edit"!=a.label&&"Delete"!=a.label)}),this.lastFocused=a):(c.forEach(b.getChildren(),function(a){a.attr("disabled","Add"!=a.label&&"Delete"!=a.label)}),this.lastFocused=a)}});b.addChild(new e.MenuItem({label:"Add",onClick:c.hitch(this,"_addProperty")})); b.addChild(new e.MenuItem({label:"Edit",onClick:c.hitch(this,"_editProperty")}));b.addChild(new e.MenuItem({label:"Delete",onClick:c.hitch(this,"_destroyProperty")}));b.startup()},store:null,setStore:function(b){this.store=b;var a=this;this._editDialog&&(this._editDialog.destroyRecursive(),delete this._editDialog);c.connect(b,"onSet",function(b,c,f,e){var d=a.store.getIdentity(b);if((b=a._modelNodeIdMap[d])&&(void 0===f||void 0===e||f instanceof Array||e instanceof Array||"object"==typeof f||"object"== typeof e))for(f=0;f