You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xap-commits@incubator.apache.org by mt...@apache.org on 2006/07/26 15:23:46 UTC

svn commit: r425760 - /incubator/xap/trunk/src/xap/Xap.js

Author: mturyn
Date: Wed Jul 26 08:23:45 2006
New Revision: 425760

URL: http://svn.apache.org/viewvc?rev=425760&view=rev
Log:
Debugging-load clean-up:
1.) Stopped re-creating regular expressions hundreds of times.
2.) Stopped redundant loading---very important, because if we debug-load, and then dojo-load over it, we'd probably lose track of the source.

Modified:
    incubator/xap/trunk/src/xap/Xap.js

Modified: incubator/xap/trunk/src/xap/Xap.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/src/xap/Xap.js?rev=425760&r1=425759&r2=425760&view=diff
==============================================================================
--- incubator/xap/trunk/src/xap/Xap.js (original)
+++ incubator/xap/trunk/src/xap/Xap.js Wed Jul 26 08:23:45 2006
@@ -32,17 +32,39 @@
 }
 
 
+
+// We use these repeatedly, why re-create them each time?
+Xap.trailingSlashRegexp = /^.*\/$/ ;
+Xap.allFullstopsRegexp = /\./g ;
+Xap.anyAsteriskRegexp = /\*/g ;
+
+Xap.ourLoadedClasses = new Object() ;
+
 Xap.require = function(){
+
+// Modules will have to go through Dojo:
+	var toLoad = arguments[0] ;
+	var notModule = (toLoad.search(Xap.anyAsteriskRegexp)==-1) ;
+//
+//	
+// Don't overload, don't depend on ArrayHelper being around:
+	var alreadyLoaded = (Xap.ourLoadedClasses[toLoad])?true:false ;
+	if( alreadyLoaded ){
+		Xap._logString += "Redundant load attempt: "+toLoad ;
+		return ;
+	}
+
 	
 	try {		
 		dojo.require.apply(dojo,arguments) ;
-		if ((Xap._debugAll && arguments[0].search(/\*/)==-1)
+		if ((Xap._debugAll && notModule)
 				|| 
 			(Xap._debugLoad 
 				&& (xap.util.ArrayHelper.indexOf(Xap._debuggables,arguments[0][0])>-1)
 				)
 			){
-			Xap.addDebuggables(arguments[0]) ;				
+			Xap.addDebuggables(arguments[0]) ;	
+			Xap.ourLoadedClasses[toLoad] = true ;			
 		}
 	} catch (ee) {
 		Xap._logString += '\n'+ee ;
@@ -60,15 +82,13 @@
 }
 
 
+
 Xap._loadDebuggable = function(str){
-	var path = str.replace(/\./g,"/") ;
-	// This actually creates a path like "../..//src",
-	// which is unpleasant but consistent with the
-	// rest of the usage in bootstrapZimbra() (meaning
-	// we won't repeat-load the file, since it will be
-	// found in Utils.s_pathCache, instead of looking like
-	// a new path) and doesn't hurt.
-	path = Xap._sourceRootDir +"/src/"+path +".js" ;
+	var path = str.replace(Xap.allFullstopsRegexp,"/") ;
+	if ( !Xap._sourceRootDir.match(Xap.trailingSlashRegexp)){
+		Xap._sourceRootDir +="/" ;
+	}
+	path = Xap._sourceRootDir +"src/"+path +".js" ;
 	//alert(path) ;
 	xap.util.Utils.importFile(path) ;
 }
@@ -95,9 +115,10 @@
 /**
 
 /**
+ *  @private
  *  Looks for nodes with the criteria we want
 **/  
-Xap.findAppElements = function(){
+Xap._findAppElements = function(){
 	var currentContext =   new google.ExprContext(document) ;
 // The following _should_ work, but I think google's XPath
 // is a little broken---an earlier attempt to run //*[id='anId']
@@ -112,7 +133,7 @@
 
 
 Xap.scanPage = function(){
-	var allPossibleContainerNodes = Xap.findAppElements() ;
+	var allPossibleContainerNodes = Xap._findAppElements() ;
 	for (var i =0; i<allPossibleContainerNodes.length; i++){
 		var element = allPossibleContainerNodes[i] ; 	
 		if( !element.getAttribute ){
@@ -176,10 +197,10 @@
 	
 // We've done all the "real" loading, now let's attach code to source files 
 // previously targetted for debugger-friendly (specified before we bootstrap):
-	if( Xap._debugLoad ){
-		//xap.util.Utils.interrogate(Xap._debuggables) ;
-		Xap._loadDebuggables() ;
-	}
+//Later: don't load automatically, wait for latest possible moment:
+//	if( Xap._debugLoad ){
+//		Xap._loadDebuggables() ;
+//	}
 }
 
 Xap.createSession = function( context, startPage,toolkitType , element) {
@@ -283,126 +304,131 @@
 //of these files, it gives an error on this.func being undefined.
 //That's ok as we are going to ditch these files anyway
 Xap.loadZimbra = function( sourceRootDir ) {
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/msgs/AjxMsg.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/core/AjxCore.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/core/AjxEnv.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxUtil.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxText.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/core/AjxException.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxCookie.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/soap/AjxSoapException.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/soap/AjxSoapFault.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/soap/AjxSoapDoc.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/net/AjxRpcRequest.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/net/AjxRpc.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxWindowOpener.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxVector.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxStringUtils.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/debug/AjxDebug.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/debug/AjxDebugXmlDocument.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/xml/AjxXmlDoc.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/config/data/AjxConfig.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/core/AjxEnv.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/core/AjxImg.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/core/AjxException.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxCallback.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxTimedAction.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/events/AjxEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/events/AjxEventMgr.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/events/AjxListener.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxDateUtils.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxStringUtils.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxVector.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxSelectionManager.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/net/AjxPost.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxBuffer.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/util/AjxCache.js" );
+
+	if ( !sourceRootDir.match(Xap.trailingSlashRegexp)){
+		sourceRootDir +="/" ;
+	}
+
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/msgs/AjxMsg.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/core/AjxCore.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/core/AjxEnv.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxUtil.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxText.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/core/AjxException.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxCookie.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/soap/AjxSoapException.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/soap/AjxSoapFault.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/soap/AjxSoapDoc.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/net/AjxRpcRequest.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/net/AjxRpc.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxWindowOpener.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxVector.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxStringUtils.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/debug/AjxDebug.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/debug/AjxDebugXmlDocument.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/xml/AjxXmlDoc.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/config/data/AjxConfig.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/core/AjxEnv.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/core/AjxImg.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/core/AjxException.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxCallback.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxTimedAction.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/events/AjxEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/events/AjxEventMgr.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/events/AjxListener.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxDateUtils.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxStringUtils.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxVector.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxSelectionManager.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/net/AjxPost.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxBuffer.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/util/AjxCache.js" );
 	
 	// DWT classes
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/core/DwtImg.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/core/DwtImg.js" );
 	
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/core/Dwt.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/core/DwtException.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/core/DwtDraggable.js" );
-	
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/graphics/DwtCssStyle.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/graphics/DwtPoint.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/graphics/DwtRectangle.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/graphics/DwtUnits.js" );
-	
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtEventManager.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtDateRangeEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtDisposeEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtUiEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtControlEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtKeyEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtMouseEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtMouseEventCapture.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtListViewActionEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtSelectionEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtHtmlEditorStateEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtTreeEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtHoverEvent.js" );
-	
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/dnd/DwtDragEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/dnd/DwtDragSource.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/dnd/DwtDropEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/dnd/DwtDropTarget.js" );
-	
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtHoverMgr.js" );
-	
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtControl.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtComposite.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtShell.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtColorPicker.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtBaseDialog.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtDialog.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtLabel.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtListView.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtButton.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtMenuItem.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtMenu.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtMessageDialog.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtHtmlEditor.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtInputField.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtSash.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtToolBar.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/graphics/DwtBorder.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtToolTip.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtStickyToolTip.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtTreeItem.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtTree.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtCalendar.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtPropertyPage.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtTabView.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtWizardDialog.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtSelect.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtAddRemove.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtAlert.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtText.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtIframe.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtXFormDialog.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtPropertySheet.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtGrouper.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/widgets/DwtProgressBar.js" );
-	
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/events/DwtXFormsEvent.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/xforms/XFormGlobal.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/xforms/XModel.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/xforms/XModelItem.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/xforms/XForm.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/xforms/XFormItem.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/xforms/XFormChoices.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/xforms/OSelect_XFormItem.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/js/dwt/xforms/ButtonGrid.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/zimbra/examples/tree/TreeExample.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/core/Dwt.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/core/DwtException.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/core/DwtDraggable.js" );
+	
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/graphics/DwtCssStyle.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/graphics/DwtPoint.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/graphics/DwtRectangle.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/graphics/DwtUnits.js" );
+	
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtEventManager.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtDateRangeEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtDisposeEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtUiEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtControlEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtKeyEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtMouseEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtMouseEventCapture.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtListViewActionEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtSelectionEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtHtmlEditorStateEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtTreeEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtHoverEvent.js" );
+	
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/dnd/DwtDragEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/dnd/DwtDragSource.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/dnd/DwtDropEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/dnd/DwtDropTarget.js" );
+	
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtHoverMgr.js" );
+	
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtControl.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtComposite.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtShell.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtColorPicker.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtBaseDialog.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtDialog.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtLabel.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtListView.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtButton.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtMenuItem.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtMenu.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtMessageDialog.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtHtmlEditor.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtInputField.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtSash.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtToolBar.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/graphics/DwtBorder.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtToolTip.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtStickyToolTip.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtTreeItem.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtTree.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtCalendar.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtPropertyPage.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtTabView.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtWizardDialog.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtSelect.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtAddRemove.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtAlert.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtText.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtIframe.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtXFormDialog.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtPropertySheet.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtGrouper.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/widgets/DwtProgressBar.js" );
+	
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/events/DwtXFormsEvent.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/xforms/XFormGlobal.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/xforms/XModel.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/xforms/XModelItem.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/xforms/XForm.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/xforms/XFormItem.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/xforms/XFormChoices.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/xforms/OSelect_XFormItem.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/js/dwt/xforms/ButtonGrid.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/zimbra/examples/tree/TreeExample.js" );
 	
 	//TODO this really shouldn't be here, but they rely on some zimbra stuff
 	//and are zimbra extensions
-	xap.util.Utils.importFile(  sourceRootDir + "/src/xap/components/zimbra/DwtSplitter.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/xap/components/zimbra/DwtSplitChild.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/xap/components/zimbra/DwtTablePanel.js" );
-	xap.util.Utils.importFile(  sourceRootDir + "/src/xap/components/zimbra/DwtVerticalLayoutPanel.js" );	
-	xap.util.Utils.importFile(  sourceRootDir + "/src/xap/components/zimbra/DwtHorizontalLayoutPanel.js" );	
+	xap.util.Utils.importFile(  sourceRootDir + "src/xap/components/zimbra/DwtSplitter.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/xap/components/zimbra/DwtSplitChild.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/xap/components/zimbra/DwtTablePanel.js" );
+	xap.util.Utils.importFile(  sourceRootDir + "src/xap/components/zimbra/DwtVerticalLayoutPanel.js" );	
+	xap.util.Utils.importFile(  sourceRootDir + "src/xap/components/zimbra/DwtHorizontalLayoutPanel.js" );	
 }