
/*
	"Hemi" JavaScript Framework
	Engine for Web Applications 3.1
	Composite file "hemi.comp.js" release: 3.1.9
	Copyright 2002 - 2010. All Rights Reserved.
	Author: Stephen W. Cote
	Email: sw.cote@gmail.com
	Project: http://www.whitefrost.com/Hemi/
	BSD License: http://www.whitefrost.com/Hemi.license.txt
*/
(function(){H.include("hemi.event");H.include("hemi.data.io");H.namespace("framework.io.provider",H,{service:null,serviceImpl:
function(){var t=this;H.prepareObject("hemi_framework_io_provider","3.1.9",1,t,1);H.util.logger.addLogger(t,"Hemi Framework IO Provider","Hemi Framework IO Provider","660");Hemi.event.addScopeBuffer(t);t.scopeHandler("loadxml",0,0,1);t.handle_io_register=function(sv){this.getProperties().useRegisteredApi=1;this.implement("Catalog","List");this.implement("Action","Read");};t.handle_io_request=function(sv,sj,rq,rp){this.getProperties().request=1;return 0;};t.handleRequestAction=function(sv,sj,rq,rp,a){n=rq.requestName;if(!n)n=rq.requestId;t.log("handleRequestAction:"+a+":"+Hemi.hemi_base+rq.requestContext+"/"+n);return Hemi.xml[(rq.mimeType&&rq.mimeType.match(/^text/)?"getText":"getXml")](rq.requestContext+"/"+n,(rq.async?this._prehandle_loadxml:0),rq.async,rq.id);};t.requestActionRead=function(sv,sj,rq,rp){this.log("ActionRead-"+rq.application+"/"+rq.requestContext+"/"+rq.requestCatalog+"/"+rq.requestName+" [#"+rq.requestId+"]/"+rq.requestAction);var oR=this.handleRequestAction(sv,sj,rq,rp,"Read");if(rq.async)return 0;this.writeRawData(rq,rp,v.xdom,rp.responseData);return 1;};t.requestCatalogList=function(sv,sj,rq,rp){var _ra=rq.requestApplication;if(_ra!="DWAC"&&_ra!="HemiFramework"&&_ra!="Explorer"){this.logDebug("Skip Request:"+rq.requestApplication);return 1;}var b=0,a,r=H.data.io.service.newPolicy(),ctx=rq.requestContext;r.read=1;t.log("Catalog:"+_ra+"/"+ctx+"/"+rq.requestCatalog+" [#"+rq.requestId+"]");switch(rq.requestCatalog){case "Components":case "Fragments":case "Modules":case "Tests":case "Templates":case "Workers":case "Projects":case "Pub":case "Framework":case "Tasks":if(ctx=="Directory")t.RenderGroup(rp,rq.requestCatalog,r);else if(ctx=="Data"){try{if(t["RenderData"+rq.requestCatalog])t["RenderData"+rq.requestCatalog](rp,r);}catch(e){t.logError((e.message?e.message:e.description));}}b=1;break;case "Examples":var g=H.data.io.service.newGroup();g.name="Examples";g.path=g.name;g.populated=1;rp.writeGroup(g,r);rp.writeGroupArray(t.getHemiExampleGroups(r,"/"+rq.requestCatalog+"/"),t,g.groups,sv.getBusType().STATIC);b=1;break;case "Hemi":case "DWAC":var g=H.data.io.service.newGroup();g.name="DWAC";g.path=g.name;g.populated=1;rp.writeGroup(g,r);rp.writeGroupArray(t.getHemiGroups(r,"/"+rq.requestCatalog+"/"),t,g.groups,sv.getBusType().STATIC);b=1;break;}if(!b){this.logWarning("Unhandled Request Catalog:"+rq.requestCatalog);b=1;}return b;};t._handle_loadxml=function(s,v){try{var rq=Hemi.data.io.service.getRequestByName(v.id),rp;if(!rq){this.logError("Invalid request for id "+v.id);return;}rp=Hemi.data.io.service.getResponseByName(rq.responseId);if(!rp){this.logError("Invalid response for id "+v.id);return;}if(rq.requestAction=="Read")this.writeRawData(rq,rp,(v.xdom?v.xdom:v.text),rp.responseData);Hemi.data.io.service.continueRequest(rq,this,true);}catch(e){alert(e.name+"\n"+e.number+"\n"+e.description+"\n"+e.message);}};t.writeRawData=function(rq,rp,x,a){var o=Hemi.data.io.service.newData(),p=H.data.io.service.newPolicy();var s=D.TO(x)?escape(Hemi.xml.serialize(x.documentElement)):x;p.read=1;o.name=(rq.requestName?rq.requestName:rq.requestId);o.path=rq.requestContext+"/"+o.name;o.id=rq.requestId;o.group=rq.requestContext;o.size=s.length;o.description=0;o.createdDate="3.1.9";o.modifiedDate=0;o.detailsOnly=0;o.hash=0;o.mimeType="text/xml";o.value=s;o.policies.push(p);rp.writeData(o,t,a,Hemi.data.io.service.getBusType().STATIC);return o;};t.RenderDataFramework=function(rp,y){t.RenderDataList(rp,t.getFrameworkData(y));};t.RenderDataComponents=function(rp,y){t.RenderDataList(rp,t.getComponentData(y));};t.RenderDataModules=function(rp,y){t.RenderDataList(rp,t.getModuleData(y));};t.RenderDataTemplates=function(rp,y){t.RenderDataList(rp,t.getTemplateData(y));};t.RenderDataFragments=function(rp,y){t.RenderDataList(rp,t.getFragmentData(y));};t.RenderDataTests=function(rp,y){t.RenderDataList(rp,t.getTestData(y));};t.RenderDataList=function(rp,a){if(rp.instruction.paginate){rp.instruction.totalCount=a.length;a=a.slice(rp.instruction.startRecord,rp.instruction.startRecord+rp.instruction.recordCount);}for(var i=0;i<a.length;i++){a[i].createdDate="3.1.9";a[i].modifiedDate="3.1.9";}rp.writeDataArray(a,t,0,Hemi.data.io.service.getBusType().STATIC);};t.RenderGroup=function(rp,n,y){var g=H.data.io.service.newGroup();g.name=n;g.path=g.name;g.populated=1;rp.writeGroup(g,y);return g;};t.getHemiExampleGroups=function(o,p){return H.data.io.service.arrayToGroup([ "Framework","Fragments","Templates","Projects","Tasks","Tests","Spaces","Components","Modules" ],o,p);};t.getHemiGroups=function(o,p){return H.data.io.service.arrayToGroup([ "Components","Fragments","Modules","Projects","Pub","Tasks","Tests","Templates","Workers" ],o,p);};t.getFrameworkData=function(o){return H.data.io.service.arrayToData([	"setup.examples","framework.object.new","framework.object.hook","framework.object.prepare" ],o);};t.getComponentData=function(o){return H.data.io.service.arrayToData([	"component.canvas.xml","component.content_viewer.xml","component.draggable.xml","component.dragtracker.xml","component.manager.xml","component.session.xml","component.steps.xml","component.tabstrip.xml","component.tree.xml","component.tree_context.xml","component.tree_decorator.xml","component.wideselect.xml","component.window.xml"	].sort(),o);};t.getFragmentData=function(o){return H.data.io.service.arrayToData([	"ActiveSource.xml","BuilderControls.xml","EngineStats.xml","FrameworkAPIBrowser.xml","FunMonInject.xml","IOGrid.xml","JavaScriptProfilerInject.xml","MemberModelTools.xml","RichSelect.xml","RuntimeContainer.xml","ScopeViewer.xml","ScriptProfiler.xml","TabTools.xml","TestSuite.xml"	].sort(),o);};t.getModuleData=function(o){return H.data.io.service.arrayToData([	"console.output.js","module.template.js","module.debug.js","dwac.offline.helper.js"	].sort(),o);};t.getTemplateData=function(o){return H.data.io.service.arrayToData([	"ActiveSource.xml","ComponentBuilder.xml","DWACDesigner.xml","FragmentBuilder.xml","FrameworkAPIBrowser.xml","FrameworkDesigner.xml","FrameworkProfiler.xml","FVTs.xml","IOGridTemplate.xml","LogViewer.xml","NewComponent.xml","NewFragment.xml","NewProject.xml","NewTask.xml","NewTaskList.xml","NewTemplate.xml","Picker.xml","ProjectBuilder.xml","RichSelectTemplate.xml","RuntimeContainer.xml","TaskBuilder.xml","TemplateBuilder.xml","TemplateTools.xml","TestSuite.xml","TextViewer.xml","XslTransformer.xml"	].sort(),o);};t.getTestData=function(o){return H.data.io.service.arrayToData([	"test.app.comp.js","test.app.comp.altdata.js","test.app.space.js","test.data.form.js","test.data.io.js","test.data.io.offline.js","test.data.validator.js","test.framework.io.provider.js","test.graphics.canvas.js","test.message.js","test.module.js","test.monitor.js","test.object.js","test.object.xhtml.js","test.storage.js","test.task.js","test.transaction.js","test.xml.js","test.worker.js"	].sort(),o);};t.r=4;H.data.io.service.register(t,Hemi.data.io.service.getBusType().STATIC);}},1);}());
/* End Hemi Framework 3.1 */

