Loading ...
Sorry, an error occurred while loading the content.

Re: Import modules from javascript frameworks like Uize and Vegui?

Expand Messages
  • mikeizworkin
    Hi, Do you have a name I can use when answering, it feels a bit strange just saying hi every time :-) I understand the problem you re having and will go into
    Message 1 of 12 , Oct 26, 2009
    • 0 Attachment
      Hi,
      Do you have a name I can use when answering, it feels a bit strange just saying hi every time :-)

      I understand the problem you're having and will go into how to get past that but as a first step please set Ajile's script tag's src attribute to the following in your web page:

      src="js/com.iskitz.ajile.js?cloakoff,debug,mvcshareoff"

      That will do the following things:

      1. Disable Ajile's functionality that removes loaded
      scripts from the page after they're no longer needed.

      2. Turn on Ajile's debug mode. You can then use Ajile.ShowLog()
      within your code to see what's occurring as your code executes.

      3. Disable Ajile's automatic loading of the index.js file
      that may exist in the same directory as the Ajile script.

      Next, take a look at:

      http://ajile.net/docs/api/Functions.htm#Ajile.AddImportListener

      When Importing scripts from within other script files you should use Ajile.AddImportListener to trigger the code that depends on your imported scripts.

      The reason is that in browsers other than Opera, external scripts that load other scripts must complete their execution before the imported scripts can be executed. This limitation is the reason why the Ajile.AddImportListener function exists. The function allows delaying execution of logic that depends on your imported script until the imported script has been executed.

      Requesting an external script then immediately trying to use it as follows will fail without using the Ajile.AddImportListener function:

      Import ("my.cool.script");

      my.cool.script.DoSomething();

      Instead try the following:

      Import ("my.cool.script");

      Ajile.AddImportListener ("my.cool.script", function (module)
      {
      my.cool.script.DoSomething();
      });

      The listener approach guarantees that the code that depends on the imported script will only be executed after that script has been loaded *and* executed.

      If you're someone who learns by example, I recommend taking a look at: the source code for:

      http://ajile.net/examples/Examples.htm
      http://ajile.net/examples/Examples.js

      Within those files you'll see a real world example of how Ajile is used to dynamically load external script files.

      Ajile's Overview and Documentation at the following links should also provide good information:

      http://ajile.net/docs/Ajile-Overview.htm
      http://ajile.net/docs/Ajile-Help.htm

      I hope these explanations help you better understand how Ajile works and how it can be used.


      Michael


      --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@...> wrote:
      >
      > Thanks for the reply Michael, I am beginning to work my way around Ajile now. I am trying to successfully import a module but I am still experiencing a problem. I am following the import demo put forth in the documentation but after the alert telling me that the namespace has been created comes up the page seems to get stuck and does not finishing loading, ever. I know that the imported module and its functions will not be available to me until it loads, but I can't seem to reach that state. Firebug is giving me this message…
      >
      > Failed to load source for sourceFile scriptTag file://index.js script.tags( )
      >
      > Failed to load source for sourceFile scriptTag file://js/com.visualization.test.example.ImportModule.js script.tags( )
      >
      > my source code looks like this…
      >
      > <!-- index.html -->
      >
      > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
      > <html>
      > <head>
      > <title>PVT</title>
      > <script type="text/javascript" src="js/com.iskitz.ajile.js"></script>
      >
      > </head>
      > <body>
      >
      > </body>
      >
      > </html>
      >
      > /* index.js */
      >
      > Namespace ("com.visualization.test");
      >
      > var msg = typeof com.visualization.test == "undefined"
      > ? "Failed to create"
      > : "Successfully created";
      >
      > alert(msg + " the [ com.visualization.test ] namespace!");
      >
      > com.visualization.test.Test = function() {
      > document.write("I do not know why you don't work.");
      > }
      >
      >
      > Import ("com.visualization.test.example.ImportModule.*");
      >
      > function testImportModule()
      > {
      > // Test if showContents method has been imported.
      > var imported = "undefined" != typeof showContents;
      >
      > if(imported)// Test if imported showContents is ImportModule.showContents.
      > if("undefined" != typeof com.visualization.test.example.ImportModule)
      > if(showContents == com.visualization.test.example.ImportModule.showContents)
      > imported = true;
      >
      > if(imported) showContents();
      >
      > else alert( "ImportModule test was unsuccessful :-(\n\n Failed to "
      > + "Import [ com.visualization.test.example.ImportModule.* ]");
      > }
      >
      > com.visualization.test.Test();
      >
      > /* com.visualization.test.example.ImportModule.js */
      >
      > Namespace ("com.visualization.test.example.ImportModule");
      >
      > com.visualization.test.example.ImportModule = function()
      > {
      > var THIS = this;
      >
      > // Constructor :: Creates public members.
      > function $ImportModule()
      > {
      > this.aNumber = 1;
      > this.aString = "member 5";
      > this.aFunction = function(){ alert("member 1"); };
      > this.anArray = ["member3"];
      > this.anObject = { member:"member 2" };
      > this.aRegularExpression = (/member 6/);
      > this.showContents = showContents;
      > }
      >
      > function showContents()
      > {
      > var contents = ".:{ com.visualization.test.example.ImportModule }:.\n\n";
      >
      > alert(contents + (THIS.constructor.toString ? THIS.constructor : ''));
      > }
      >
      > $ImportModule();
      > };
      >
      > Does anyone see why the script tags are failing to load correctly? I have edited the path to the js files but ajile seems to locate them just fine. I am at a loss?
      >
      >
      > --- In ajile@yahoogroups.com, "iskitzdev" <yahoo@> wrote:
      > >
      > > Hi,
      > > Thanks for writing.
      > >
      > > I'm not sure what type of example you're looking for but I'll give an explanation of how Ajile works so you can decide if it will meet your needs.
      > >
      > > When Ajile's Namespace function is used it creates a set of objects linked as properties of each other. For instance:
      > >
      > > Namespace ("my.name.space");
      > >
      > > Creates a global object "my" with a property called "name". The name property points to another object called "space".
      > >
      > > The my object and the name and space properties contained within are immediately availble after calling the Namespace function.
      > >
      > > To load external script files you can use the Load, Import, ImportAs, or Include functions depending on your specific need.
      > >
      > > All of these functions will create a script tag within your HTML page when called, however the objects within the script loaded via that tag won't be available for use until the code that called the Ajile function completes. If that's confusing, consider this example:
      > >
      > > Load ("some/script.js"); // contains var a=true;
      > > alert (a); // displays "undefined"
      > >
      > > To use the contents of script.js as soon as possible either use:
      > >
      > > Ajile.AddImportListener ("a", function(){
      > > alert (a); //displays "true";
      > > }));
      > >
      > > or if your code is in a script block in the HTML page use separate script blocks for the loading and use of the external script's objects:
      > >
      > > [script]
      > > Load ("some/script.js"); // contains var a=true;
      > > [/script]
      > >
      > > [script]
      > > alert (a); // displays true
      > > [/script]
      > >
      > > Hope that gives you a better idea of how Ajile works.
      > >
      > > Michael
      > >
      > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@> wrote:
      > > >
      > > >
      > > >
      > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@> wrote:
      > > > >
      > > > > Hello,
      > > > > I have intermediate javascript skills and I am new to ajile. I am working on a project that will reference multiple javascript frameworks, such as Uize and VegUI, under one namespace to mix and match useful modules. Is it possible to use ajile to do this? If so could someone give me a quick explanation of the process or an example?
      > > > >
      > > > Sorry, I meant to include this the first time. Here is what I have so far.
      > > >
      > > > Namespace ("com.visualization.test");
      > > >
      > > > var msg = typeof com.visualization.test == "undefined"
      > > > ? "Failed to create"
      > > > : "Successfully created";
      > > >
      > > > alert(msg + " the [ com.visualization.test ] namespace!");
      > > >
      > > > document.write('You are almost there!');
      > > >
      > > > Load ("lib/UIZE_js/Uize.Widget.Calendar.js");
      > > >
      > > > function testLoad()
      > > > {
      > > > if( "undefined" != typeof Uize.Widget.Calendar) {
      > > > alert("File was successfully loaded.");
      > > > }
      > > >
      > > >
      > > > else alert( "Load test was unsuccessful :-(\n\n"
      > > > + "Failed to Load [ Uize.Widget.Calendar.js ]");
      > > > }
      > > >
      > >
      >
    • destroyer019
      Thanks Michael My name is Omar, don t know why I didn t start with that. I will try out your suggestions, you are really good at clearing things up for me.
      Message 2 of 12 , Nov 2, 2009
      • 0 Attachment
        Thanks Michael
        My name is Omar, don't know why I didn't start with that. I will try out your suggestions, you are really good at clearing things up for me.

        --- In ajile@yahoogroups.com, "mikeizworkin" <mikeizworkin@...> wrote:
        >
        > Hi,
        > Do you have a name I can use when answering, it feels a bit strange just saying hi every time :-)
        >
        > I understand the problem you're having and will go into how to get past that but as a first step please set Ajile's script tag's src attribute to the following in your web page:
        >
        > src="js/com.iskitz.ajile.js?cloakoff,debug,mvcshareoff"
        >
        > That will do the following things:
        >
        > 1. Disable Ajile's functionality that removes loaded
        > scripts from the page after they're no longer needed.
        >
        > 2. Turn on Ajile's debug mode. You can then use Ajile.ShowLog()
        > within your code to see what's occurring as your code executes.
        >
        > 3. Disable Ajile's automatic loading of the index.js file
        > that may exist in the same directory as the Ajile script.
        >
        > Next, take a look at:
        >
        > http://ajile.net/docs/api/Functions.htm#Ajile.AddImportListener
        >
        > When Importing scripts from within other script files you should use Ajile.AddImportListener to trigger the code that depends on your imported scripts.
        >
        > The reason is that in browsers other than Opera, external scripts that load other scripts must complete their execution before the imported scripts can be executed. This limitation is the reason why the Ajile.AddImportListener function exists. The function allows delaying execution of logic that depends on your imported script until the imported script has been executed.
        >
        > Requesting an external script then immediately trying to use it as follows will fail without using the Ajile.AddImportListener function:
        >
        > Import ("my.cool.script");
        >
        > my.cool.script.DoSomething();
        >
        > Instead try the following:
        >
        > Import ("my.cool.script");
        >
        > Ajile.AddImportListener ("my.cool.script", function (module)
        > {
        > my.cool.script.DoSomething();
        > });
        >
        > The listener approach guarantees that the code that depends on the imported script will only be executed after that script has been loaded *and* executed.
        >
        > If you're someone who learns by example, I recommend taking a look at: the source code for:
        >
        > http://ajile.net/examples/Examples.htm
        > http://ajile.net/examples/Examples.js
        >
        > Within those files you'll see a real world example of how Ajile is used to dynamically load external script files.
        >
        > Ajile's Overview and Documentation at the following links should also provide good information:
        >
        > http://ajile.net/docs/Ajile-Overview.htm
        > http://ajile.net/docs/Ajile-Help.htm
        >
        > I hope these explanations help you better understand how Ajile works and how it can be used.
        >
        >
        > Michael
        >
        >
        > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@> wrote:
        > >
        > > Thanks for the reply Michael, I am beginning to work my way around Ajile now. I am trying to successfully import a module but I am still experiencing a problem. I am following the import demo put forth in the documentation but after the alert telling me that the namespace has been created comes up the page seems to get stuck and does not finishing loading, ever. I know that the imported module and its functions will not be available to me until it loads, but I can't seem to reach that state. Firebug is giving me this message…
        > >
        > > Failed to load source for sourceFile scriptTag file://index.js script.tags( )
        > >
        > > Failed to load source for sourceFile scriptTag file://js/com.visualization.test.example.ImportModule.js script.tags( )
        > >
        > > my source code looks like this…
        > >
        > > <!-- index.html -->
        > >
        > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
        > > <html>
        > > <head>
        > > <title>PVT</title>
        > > <script type="text/javascript" src="js/com.iskitz.ajile.js"></script>
        > >
        > > </head>
        > > <body>
        > >
        > > </body>
        > >
        > > </html>
        > >
        > > /* index.js */
        > >
        > > Namespace ("com.visualization.test");
        > >
        > > var msg = typeof com.visualization.test == "undefined"
        > > ? "Failed to create"
        > > : "Successfully created";
        > >
        > > alert(msg + " the [ com.visualization.test ] namespace!");
        > >
        > > com.visualization.test.Test = function() {
        > > document.write("I do not know why you don't work.");
        > > }
        > >
        > >
        > > Import ("com.visualization.test.example.ImportModule.*");
        > >
        > > function testImportModule()
        > > {
        > > // Test if showContents method has been imported.
        > > var imported = "undefined" != typeof showContents;
        > >
        > > if(imported)// Test if imported showContents is ImportModule.showContents.
        > > if("undefined" != typeof com.visualization.test.example.ImportModule)
        > > if(showContents == com.visualization.test.example.ImportModule.showContents)
        > > imported = true;
        > >
        > > if(imported) showContents();
        > >
        > > else alert( "ImportModule test was unsuccessful :-(\n\n Failed to "
        > > + "Import [ com.visualization.test.example.ImportModule.* ]");
        > > }
        > >
        > > com.visualization.test.Test();
        > >
        > > /* com.visualization.test.example.ImportModule.js */
        > >
        > > Namespace ("com.visualization.test.example.ImportModule");
        > >
        > > com.visualization.test.example.ImportModule = function()
        > > {
        > > var THIS = this;
        > >
        > > // Constructor :: Creates public members.
        > > function $ImportModule()
        > > {
        > > this.aNumber = 1;
        > > this.aString = "member 5";
        > > this.aFunction = function(){ alert("member 1"); };
        > > this.anArray = ["member3"];
        > > this.anObject = { member:"member 2" };
        > > this.aRegularExpression = (/member 6/);
        > > this.showContents = showContents;
        > > }
        > >
        > > function showContents()
        > > {
        > > var contents = ".:{ com.visualization.test.example.ImportModule }:.\n\n";
        > >
        > > alert(contents + (THIS.constructor.toString ? THIS.constructor : ''));
        > > }
        > >
        > > $ImportModule();
        > > };
        > >
        > > Does anyone see why the script tags are failing to load correctly? I have edited the path to the js files but ajile seems to locate them just fine. I am at a loss?
        > >
        > >
        > > --- In ajile@yahoogroups.com, "iskitzdev" <yahoo@> wrote:
        > > >
        > > > Hi,
        > > > Thanks for writing.
        > > >
        > > > I'm not sure what type of example you're looking for but I'll give an explanation of how Ajile works so you can decide if it will meet your needs.
        > > >
        > > > When Ajile's Namespace function is used it creates a set of objects linked as properties of each other. For instance:
        > > >
        > > > Namespace ("my.name.space");
        > > >
        > > > Creates a global object "my" with a property called "name". The name property points to another object called "space".
        > > >
        > > > The my object and the name and space properties contained within are immediately availble after calling the Namespace function.
        > > >
        > > > To load external script files you can use the Load, Import, ImportAs, or Include functions depending on your specific need.
        > > >
        > > > All of these functions will create a script tag within your HTML page when called, however the objects within the script loaded via that tag won't be available for use until the code that called the Ajile function completes. If that's confusing, consider this example:
        > > >
        > > > Load ("some/script.js"); // contains var a=true;
        > > > alert (a); // displays "undefined"
        > > >
        > > > To use the contents of script.js as soon as possible either use:
        > > >
        > > > Ajile.AddImportListener ("a", function(){
        > > > alert (a); //displays "true";
        > > > }));
        > > >
        > > > or if your code is in a script block in the HTML page use separate script blocks for the loading and use of the external script's objects:
        > > >
        > > > [script]
        > > > Load ("some/script.js"); // contains var a=true;
        > > > [/script]
        > > >
        > > > [script]
        > > > alert (a); // displays true
        > > > [/script]
        > > >
        > > > Hope that gives you a better idea of how Ajile works.
        > > >
        > > > Michael
        > > >
        > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@> wrote:
        > > > >
        > > > >
        > > > >
        > > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@> wrote:
        > > > > >
        > > > > > Hello,
        > > > > > I have intermediate javascript skills and I am new to ajile. I am working on a project that will reference multiple javascript frameworks, such as Uize and VegUI, under one namespace to mix and match useful modules. Is it possible to use ajile to do this? If so could someone give me a quick explanation of the process or an example?
        > > > > >
        > > > > Sorry, I meant to include this the first time. Here is what I have so far.
        > > > >
        > > > > Namespace ("com.visualization.test");
        > > > >
        > > > > var msg = typeof com.visualization.test == "undefined"
        > > > > ? "Failed to create"
        > > > > : "Successfully created";
        > > > >
        > > > > alert(msg + " the [ com.visualization.test ] namespace!");
        > > > >
        > > > > document.write('You are almost there!');
        > > > >
        > > > > Load ("lib/UIZE_js/Uize.Widget.Calendar.js");
        > > > >
        > > > > function testLoad()
        > > > > {
        > > > > if( "undefined" != typeof Uize.Widget.Calendar) {
        > > > > alert("File was successfully loaded.");
        > > > > }
        > > > >
        > > > >
        > > > > else alert( "Load test was unsuccessful :-(\n\n"
        > > > > + "Failed to Load [ Uize.Widget.Calendar.js ]");
        > > > > }
        > > > >
        > > >
        > >
        >
      • iskitzdev
        Omar, Great to have a name ;-) Glad I could help you better understand Ajile. Best of luck, Michael
        Message 3 of 12 , Nov 7, 2009
        • 0 Attachment
          Omar,
          Great to have a name ;-)

          Glad I could help you better understand Ajile.

          Best of luck,
          Michael

          --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@...> wrote:
          >
          > Thanks Michael
          > My name is Omar, don't know why I didn't start with that. I will try out your suggestions, you are really good at clearing things up for me.
          >
          > --- In ajile@yahoogroups.com, "mikeizworkin" <mikeizworkin@> wrote:
          > >
          > > Hi,
          > > Do you have a name I can use when answering, it feels a bit strange just saying hi every time :-)
          > >
          > > I understand the problem you're having and will go into how to get past that but as a first step please set Ajile's script tag's src attribute to the following in your web page:
          > >
          > > src="js/com.iskitz.ajile.js?cloakoff,debug,mvcshareoff"
          > >
          > > That will do the following things:
          > >
          > > 1. Disable Ajile's functionality that removes loaded
          > > scripts from the page after they're no longer needed.
          > >
          > > 2. Turn on Ajile's debug mode. You can then use Ajile.ShowLog()
          > > within your code to see what's occurring as your code executes.
          > >
          > > 3. Disable Ajile's automatic loading of the index.js file
          > > that may exist in the same directory as the Ajile script.
          > >
          > > Next, take a look at:
          > >
          > > http://ajile.net/docs/api/Functions.htm#Ajile.AddImportListener
          > >
          > > When Importing scripts from within other script files you should use Ajile.AddImportListener to trigger the code that depends on your imported scripts.
          > >
          > > The reason is that in browsers other than Opera, external scripts that load other scripts must complete their execution before the imported scripts can be executed. This limitation is the reason why the Ajile.AddImportListener function exists. The function allows delaying execution of logic that depends on your imported script until the imported script has been executed.
          > >
          > > Requesting an external script then immediately trying to use it as follows will fail without using the Ajile.AddImportListener function:
          > >
          > > Import ("my.cool.script");
          > >
          > > my.cool.script.DoSomething();
          > >
          > > Instead try the following:
          > >
          > > Import ("my.cool.script");
          > >
          > > Ajile.AddImportListener ("my.cool.script", function (module)
          > > {
          > > my.cool.script.DoSomething();
          > > });
          > >
          > > The listener approach guarantees that the code that depends on the imported script will only be executed after that script has been loaded *and* executed.
          > >
          > > If you're someone who learns by example, I recommend taking a look at: the source code for:
          > >
          > > http://ajile.net/examples/Examples.htm
          > > http://ajile.net/examples/Examples.js
          > >
          > > Within those files you'll see a real world example of how Ajile is used to dynamically load external script files.
          > >
          > > Ajile's Overview and Documentation at the following links should also provide good information:
          > >
          > > http://ajile.net/docs/Ajile-Overview.htm
          > > http://ajile.net/docs/Ajile-Help.htm
          > >
          > > I hope these explanations help you better understand how Ajile works and how it can be used.
          > >
          > >
          > > Michael
          > >
          > >
          > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@> wrote:
          > > >
          > > > Thanks for the reply Michael, I am beginning to work my way around Ajile now. I am trying to successfully import a module but I am still experiencing a problem. I am following the import demo put forth in the documentation but after the alert telling me that the namespace has been created comes up the page seems to get stuck and does not finishing loading, ever. I know that the imported module and its functions will not be available to me until it loads, but I can't seem to reach that state. Firebug is giving me this message…
          > > >
          > > > Failed to load source for sourceFile scriptTag file://index.js script.tags( )
          > > >
          > > > Failed to load source for sourceFile scriptTag file://js/com.visualization.test.example.ImportModule.js script.tags( )
          > > >
          > > > my source code looks like this…
          > > >
          > > > <!-- index.html -->
          > > >
          > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
          > > > <html>
          > > > <head>
          > > > <title>PVT</title>
          > > > <script type="text/javascript" src="js/com.iskitz.ajile.js"></script>
          > > >
          > > > </head>
          > > > <body>
          > > >
          > > > </body>
          > > >
          > > > </html>
          > > >
          > > > /* index.js */
          > > >
          > > > Namespace ("com.visualization.test");
          > > >
          > > > var msg = typeof com.visualization.test == "undefined"
          > > > ? "Failed to create"
          > > > : "Successfully created";
          > > >
          > > > alert(msg + " the [ com.visualization.test ] namespace!");
          > > >
          > > > com.visualization.test.Test = function() {
          > > > document.write("I do not know why you don't work.");
          > > > }
          > > >
          > > >
          > > > Import ("com.visualization.test.example.ImportModule.*");
          > > >
          > > > function testImportModule()
          > > > {
          > > > // Test if showContents method has been imported.
          > > > var imported = "undefined" != typeof showContents;
          > > >
          > > > if(imported)// Test if imported showContents is ImportModule.showContents.
          > > > if("undefined" != typeof com.visualization.test.example.ImportModule)
          > > > if(showContents == com.visualization.test.example.ImportModule.showContents)
          > > > imported = true;
          > > >
          > > > if(imported) showContents();
          > > >
          > > > else alert( "ImportModule test was unsuccessful :-(\n\n Failed to "
          > > > + "Import [ com.visualization.test.example.ImportModule.* ]");
          > > > }
          > > >
          > > > com.visualization.test.Test();
          > > >
          > > > /* com.visualization.test.example.ImportModule.js */
          > > >
          > > > Namespace ("com.visualization.test.example.ImportModule");
          > > >
          > > > com.visualization.test.example.ImportModule = function()
          > > > {
          > > > var THIS = this;
          > > >
          > > > // Constructor :: Creates public members.
          > > > function $ImportModule()
          > > > {
          > > > this.aNumber = 1;
          > > > this.aString = "member 5";
          > > > this.aFunction = function(){ alert("member 1"); };
          > > > this.anArray = ["member3"];
          > > > this.anObject = { member:"member 2" };
          > > > this.aRegularExpression = (/member 6/);
          > > > this.showContents = showContents;
          > > > }
          > > >
          > > > function showContents()
          > > > {
          > > > var contents = ".:{ com.visualization.test.example.ImportModule }:.\n\n";
          > > >
          > > > alert(contents + (THIS.constructor.toString ? THIS.constructor : ''));
          > > > }
          > > >
          > > > $ImportModule();
          > > > };
          > > >
          > > > Does anyone see why the script tags are failing to load correctly? I have edited the path to the js files but ajile seems to locate them just fine. I am at a loss?
          > > >
          > > >
          > > > --- In ajile@yahoogroups.com, "iskitzdev" <yahoo@> wrote:
          > > > >
          > > > > Hi,
          > > > > Thanks for writing.
          > > > >
          > > > > I'm not sure what type of example you're looking for but I'll give an explanation of how Ajile works so you can decide if it will meet your needs.
          > > > >
          > > > > When Ajile's Namespace function is used it creates a set of objects linked as properties of each other. For instance:
          > > > >
          > > > > Namespace ("my.name.space");
          > > > >
          > > > > Creates a global object "my" with a property called "name". The name property points to another object called "space".
          > > > >
          > > > > The my object and the name and space properties contained within are immediately availble after calling the Namespace function.
          > > > >
          > > > > To load external script files you can use the Load, Import, ImportAs, or Include functions depending on your specific need.
          > > > >
          > > > > All of these functions will create a script tag within your HTML page when called, however the objects within the script loaded via that tag won't be available for use until the code that called the Ajile function completes. If that's confusing, consider this example:
          > > > >
          > > > > Load ("some/script.js"); // contains var a=true;
          > > > > alert (a); // displays "undefined"
          > > > >
          > > > > To use the contents of script.js as soon as possible either use:
          > > > >
          > > > > Ajile.AddImportListener ("a", function(){
          > > > > alert (a); //displays "true";
          > > > > }));
          > > > >
          > > > > or if your code is in a script block in the HTML page use separate script blocks for the loading and use of the external script's objects:
          > > > >
          > > > > [script]
          > > > > Load ("some/script.js"); // contains var a=true;
          > > > > [/script]
          > > > >
          > > > > [script]
          > > > > alert (a); // displays true
          > > > > [/script]
          > > > >
          > > > > Hope that gives you a better idea of how Ajile works.
          > > > >
          > > > > Michael
          > > > >
          > > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@> wrote:
          > > > > >
          > > > > >
          > > > > >
          > > > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@> wrote:
          > > > > > >
          > > > > > > Hello,
          > > > > > > I have intermediate javascript skills and I am new to ajile. I am working on a project that will reference multiple javascript frameworks, such as Uize and VegUI, under one namespace to mix and match useful modules. Is it possible to use ajile to do this? If so could someone give me a quick explanation of the process or an example?
          > > > > > >
          > > > > > Sorry, I meant to include this the first time. Here is what I have so far.
          > > > > >
          > > > > > Namespace ("com.visualization.test");
          > > > > >
          > > > > > var msg = typeof com.visualization.test == "undefined"
          > > > > > ? "Failed to create"
          > > > > > : "Successfully created";
          > > > > >
          > > > > > alert(msg + " the [ com.visualization.test ] namespace!");
          > > > > >
          > > > > > document.write('You are almost there!');
          > > > > >
          > > > > > Load ("lib/UIZE_js/Uize.Widget.Calendar.js");
          > > > > >
          > > > > > function testLoad()
          > > > > > {
          > > > > > if( "undefined" != typeof Uize.Widget.Calendar) {
          > > > > > alert("File was successfully loaded.");
          > > > > > }
          > > > > >
          > > > > >
          > > > > > else alert( "Load test was unsuccessful :-(\n\n"
          > > > > > + "Failed to Load [ Uize.Widget.Calendar.js ]");
          > > > > > }
          > > > > >
          > > > >
          > > >
          > >
          >
        • destroyer019
          Hello Michael, I am trying to get Ajile to pull resources from the Uize library so I can then setup a prototype class that uses some
          Message 4 of 12 , Nov 18, 2009
          • 0 Attachment
            Hello Michael,
            I am trying to get Ajile to pull resources from the Uize
            <http://www.uize.com> library so I can then setup a prototype class
            that uses some methods from Uize and some custom methods in one
            function. I have setup a namespace in the index.js file where i have
            imported a few modules from the Uize framework. As a test, I have setup
            a calender widget from the Uize example page in my index.html, which
            calls on these Uize modules. Ajile is pulling in the Uize modules but
            the calender widget is not being generated. Firebug gives me the
            following warning…

            reference to undefined property BE[BF[BD]](function(AO){var
            Ax,B,b,Z;if(typeof Ag!...,An=new AT(),AV=new AT();Ag()})("1.2.1")

            Am I wrong in using Ajile in this way? Here is the code I have
            setup…

            <!-- index.html -->
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
            "http://www.w3.org/TR/html4/strict.dtd">
            <html>
            <head>
            <title>PVT</title>
            <link rel="stylesheet" href="css/page.css"/>
            <link rel="stylesheet" href="css/page.example.css"/>
            <link rel="stylesheet" href="css/widget.calendar.css"/>

            <script type="text/javascript"
            src="js/com.iskitz.ajile.js?cloakoff,debug"></script>

            </head>
            <body>
            <script type="text/javascript">

            Uize.module ({
            required:[
            //'UizeDotCom.Page.Example.library',
            'Uize.Widget.Page',
            'Uize.Widget.Calendar',
            'Uize.Templates.Calendar'
            ],
            builder:function () {
            /*** create the example page widget ***/
            var page = window.page = new Uize.Widget.Page
            /*({evaluator:function (code) {eval (code)}})*/;

            /*** add the calendar child widget ***/
            var calendar = page.addChild (
            'calendar',
            Uize.Widget.Calendar,
            {
            built:false,
            html:Uize.Templates.Calendar
            }
            );

            /*** wire up the page widget ***/
            page.wireUi ();

            /*** some code for demonstrating the widget's programmatic
            interface ***/
            function displayCalendarState () {
            page.setNodeValue ('calendarValue',calendar.get
            ('value'));
            page.setNodeValue ('calendarMonth',calendar.get
            ('month'));
            page.setNodeValue ('calendarYear',calendar.get
            ('year'));
            }
            calendar.wire ('Changed.value',displayCalendarState);
            calendar.wire ('Changed.month',displayCalendarState);
            calendar.wire ('Changed.year',displayCalendarState);
            displayCalendarState ();
            }
            });

            </script>
            </body>
            </html>

            <!-- The index.js file -->
            Namespace ("com.newschool.piim");

            Import('Uize.Widget.Page', 'lib/UIZE_js/Uize.Widget.Page.js');

            Import('Uize.Widget.Calendar', 'lib/UIZE_js/Uize.Widget.Calendar.js');

            Import('Uize.Templates.Calendar',
            'lib/UIZE_js/Uize.Templates.Calendar.js');


            --- In ajile@yahoogroups.com, "iskitzdev" <yahoo@...> wrote:
            >
            > Omar,
            > Great to have a name ;-)
            >
            > Glad I could help you better understand Ajile.
            >
            > Best of luck,
            > Michael
            >
            > --- In ajile@yahoogroups.com, "destroyer019" omarotieku@ wrote:
            > >
            > > Thanks Michael
            > > My name is Omar, don't know why I didn't start with that. I will try
            out your suggestions, you are really good at clearing things up for me.
            > >
            > > --- In ajile@yahoogroups.com, "mikeizworkin" <mikeizworkin@> wrote:
            > > >
            > > > Hi,
            > > > Do you have a name I can use when answering, it feels a bit
            strange just saying hi every time :-)
            > > >
            > > > I understand the problem you're having and will go into how to get
            past that but as a first step please set Ajile's script tag's src
            attribute to the following in your web page:
            > > >
            > > > src="js/com.iskitz.ajile.js?cloakoff,debug,mvcshareoff"
            > > >
            > > > That will do the following things:
            > > >
            > > > 1. Disable Ajile's functionality that removes loaded
            > > > scripts from the page after they're no longer needed.
            > > >
            > > > 2. Turn on Ajile's debug mode. You can then use Ajile.ShowLog()
            > > > within your code to see what's occurring as your code
            executes.
            > > >
            > > > 3. Disable Ajile's automatic loading of the index.js file
            > > > that may exist in the same directory as the Ajile script.
            > > >
            > > > Next, take a look at:
            > > >
            > > > http://ajile.net/docs/api/Functions.htm#Ajile.AddImportListener
            > > >
            > > > When Importing scripts from within other script files you should
            use Ajile.AddImportListener to trigger the code that depends on your
            imported scripts.
            > > >
            > > > The reason is that in browsers other than Opera, external scripts
            that load other scripts must complete their execution before the
            imported scripts can be executed. This limitation is the reason why the
            Ajile.AddImportListener function exists. The function allows delaying
            execution of logic that depends on your imported script until the
            imported script has been executed.
            > > >
            > > > Requesting an external script then immediately trying to use it as
            follows will fail without using the Ajile.AddImportListener function:
            > > >
            > > > Import ("my.cool.script");
            > > >
            > > > my.cool.script.DoSomething();
            > > >
            > > > Instead try the following:
            > > >
            > > > Import ("my.cool.script");
            > > >
            > > > Ajile.AddImportListener ("my.cool.script", function (module)
            > > > {
            > > > my.cool.script.DoSomething();
            > > > });
            > > >
            > > > The listener approach guarantees that the code that depends on the
            imported script will only be executed after that script has been loaded
            *and* executed.
            > > >
            > > > If you're someone who learns by example, I recommend taking a look
            at: the source code for:
            > > >
            > > > http://ajile.net/examples/Examples.htm
            > > > http://ajile.net/examples/Examples.js
            > > >
            > > > Within those files you'll see a real world example of how Ajile is
            used to dynamically load external script files.
            > > >
            > > > Ajile's Overview and Documentation at the following links should
            also provide good information:
            > > >
            > > > http://ajile.net/docs/Ajile-Overview.htm
            > > > http://ajile.net/docs/Ajile-Help.htm
            > > >
            > > > I hope these explanations help you better understand how Ajile
            works and how it can be used.
            > > >
            > > >
            > > > Michael
            > > >
            > > >
            > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@> wrote:
            > > > >
            > > > > Thanks for the reply Michael, I am beginning to work my way
            around Ajile now. I am trying to successfully import a module but I am
            still experiencing a problem. I am following the import demo put forth
            in the documentation but after the alert telling me that the namespace
            has been created comes up the page seems to get stuck and does not
            finishing loading, ever. I know that the imported module and its
            functions will not be available to me until it loads, but I can't seem
            to reach that state. Firebug is giving me this message…
            > > > >
            > > > > Failed to load source for sourceFile scriptTag file://index.js
            script.tags( )
            > > > >
            > > > > Failed to load source for sourceFile scriptTag
            file://js/com.visualization.test.example.ImportModule.js script.tags( )
            > > > >
            > > > > my source code looks like this…
            > > > >
            > > > > <!-- index.html -->
            > > > >
            > > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
            "http://www.w3.org/TR/html4/strict.dtd">
            > > > > <html>
            > > > > <head>
            > > > > <title>PVT</title>
            > > > > <script type="text/javascript"
            src="js/com.iskitz.ajile.js"></script>
            > > > >
            > > > > </head>
            > > > > <body>
            > > > >
            > > > > </body>
            > > > >
            > > > > </html>
            > > > >
            > > > > /* index.js */
            > > > >
            > > > > Namespace ("com.visualization.test");
            > > > >
            > > > > var msg = typeof com.visualization.test == "undefined"
            > > > > ? "Failed to create"
            > > > > : "Successfully created";
            > > > >
            > > > > alert(msg + " the [ com.visualization.test ] namespace!");
            > > > >
            > > > > com.visualization.test.Test = function() {
            > > > > document.write("I do not know why you don't work.");
            > > > > }
            > > > >
            > > > >
            > > > > Import ("com.visualization.test.example.ImportModule.*");
            > > > >
            > > > > function testImportModule()
            > > > > {
            > > > > // Test if showContents method has been imported.
            > > > > var imported = "undefined" != typeof showContents;
            > > > >
            > > > > if(imported)// Test if imported showContents is
            ImportModule.showContents.
            > > > > if("undefined" != typeof
            com.visualization.test.example.ImportModule)
            > > > > if(showContents ==
            com.visualization.test.example.ImportModule.showContents)
            > > > > imported = true;
            > > > >
            > > > > if(imported) showContents();
            > > > >
            > > > > else alert( "ImportModule test was unsuccessful :-(\n\n
            Failed to "
            > > > > + "Import [
            com.visualization.test.example.ImportModule.* ]");
            > > > > }
            > > > >
            > > > > com.visualization.test.Test();
            > > > >
            > > > > /* com.visualization.test.example.ImportModule.js */
            > > > >
            > > > > Namespace ("com.visualization.test.example.ImportModule");
            > > > >
            > > > > com.visualization.test.example.ImportModule = function()
            > > > > {
            > > > > var THIS = this;
            > > > >
            > > > > // Constructor :: Creates public members.
            > > > > function $ImportModule()
            > > > > {
            > > > > this.aNumber = 1;
            > > > > this.aString = "member 5";
            > > > > this.aFunction = function(){ alert("member
            1"); };
            > > > > this.anArray = ["member3"];
            > > > > this.anObject = { member:"member 2" };
            > > > > this.aRegularExpression = (/member 6/);
            > > > > this.showContents = showContents;
            > > > > }
            > > > >
            > > > > function showContents()
            > > > > {
            > > > > var contents = ".:{
            com.visualization.test.example.ImportModule }:.\n\n";
            > > > >
            > > > > alert(contents + (THIS.constructor.toString ?
            THIS.constructor : ''));
            > > > > }
            > > > >
            > > > > $ImportModule();
            > > > > };
            > > > >
            > > > > Does anyone see why the script tags are failing to load
            correctly? I have edited the path to the js files but ajile seems to
            locate them just fine. I am at a loss?
            > > > >
            > > > >
            > > > > --- In ajile@yahoogroups.com, "iskitzdev" <yahoo@> wrote:
            > > > > >
            > > > > > Hi,
            > > > > > Thanks for writing.
            > > > > >
            > > > > > I'm not sure what type of example you're looking for but I'll
            give an explanation of how Ajile works so you can decide if it will meet
            your needs.
            > > > > >
            > > > > > When Ajile's Namespace function is used it creates a set of
            objects linked as properties of each other. For instance:
            > > > > >
            > > > > > Namespace ("my.name.space");
            > > > > >
            > > > > > Creates a global object "my" with a property called "name".
            The name property points to another object called "space".
            > > > > >
            > > > > > The my object and the name and space properties contained
            within are immediately availble after calling the Namespace function.
            > > > > >
            > > > > > To load external script files you can use the Load, Import,
            ImportAs, or Include functions depending on your specific need.
            > > > > >
            > > > > > All of these functions will create a script tag within your
            HTML page when called, however the objects within the script loaded via
            that tag won't be available for use until the code that called the Ajile
            function completes. If that's confusing, consider this example:
            > > > > >
            > > > > > Load ("some/script.js"); // contains var a=true;
            > > > > > alert (a); // displays "undefined"
            > > > > >
            > > > > > To use the contents of script.js as soon as possible either
            use:
            > > > > >
            > > > > > Ajile.AddImportListener ("a", function(){
            > > > > > alert (a); //displays "true";
            > > > > > }));
            > > > > >
            > > > > > or if your code is in a script block in the HTML page use
            separate script blocks for the loading and use of the external script's
            objects:
            > > > > >
            > > > > > [script]
            > > > > > Load ("some/script.js"); // contains var a=true;
            > > > > > [/script]
            > > > > >
            > > > > > [script]
            > > > > > alert (a); // displays true
            > > > > > [/script]
            > > > > >
            > > > > > Hope that gives you a better idea of how Ajile works.
            > > > > >
            > > > > > Michael
            > > > > >
            > > > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@>
            wrote:
            > > > > > >
            > > > > > >
            > > > > > >
            > > > > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@>
            wrote:
            > > > > > > >
            > > > > > > > Hello,
            > > > > > > > I have intermediate javascript skills and I am new to
            ajile. I am working on a project that will reference multiple javascript
            frameworks, such as Uize and VegUI, under one namespace to mix and match
            useful modules. Is it possible to use ajile to do this? If so could
            someone give me a quick explanation of the process or an example?
            > > > > > > >
            > > > > > > Sorry, I meant to include this the first time. Here is what
            I have so far.
            > > > > > >
            > > > > > > Namespace ("com.visualization.test");
            > > > > > >
            > > > > > > var msg = typeof com.visualization.test == "undefined"
            > > > > > > ? "Failed to create"
            > > > > > > : "Successfully created";
            > > > > > >
            > > > > > > alert(msg + " the [ com.visualization.test ] namespace!");
            > > > > > >
            > > > > > > document.write('You are almost there!');
            > > > > > >
            > > > > > > Load ("lib/UIZE_js/Uize.Widget.Calendar.js");
            > > > > > >
            > > > > > > function testLoad()
            > > > > > > {
            > > > > > > if( "undefined" != typeof Uize.Widget.Calendar) {
            > > > > > > alert("File was successfully loaded.");
            > > > > > > }
            > > > > > >
            > > > > > >
            > > > > > > else alert( "Load test was unsuccessful :-(\n\n"
            > > > > > > + "Failed to Load [ Uize.Widget.Calendar.js
            ]");
            > > > > > > }
            > > > > > >
            > > > > >
            > > > >
            > > >
            > >
            >



            [Non-text portions of this message have been removed]
          • mikeizworkin
            Hi Omar, Looking at the code you re using I d recommend altering your index.js file as follows: Namespace ( com.newschool.piim ); // Define the Uize
            Message 5 of 12 , Nov 19, 2009
            • 0 Attachment
              Hi Omar,

              Looking at the code you're using I'd recommend altering your index.js file as follows:

              Namespace ("com.newschool.piim");

              // Define the Uize namespace's path:
              Namespace ("Uize", "lib/UIZE_js/");

              // Import Uize modules without needing to specify each path:
              Import ("Uize.Widget.Page");
              Import ("Uize.Widget.Calendar");
              Import ("Uize.Templates.Calendar");

              If you prefer to use Import with specific paths you should only specify the directory not the full file path and filename. Your import statement should look similar to:

              Import ("Uize.Widget.Page", "lib/UIZE_js/");

              Basically you can set the default path for an entire namespace using the Namespace function with a directory path. For details see:

              http://ajile.net/docs/api/Directives.htm#Namespace

              Using Namespace in this way sets the default path for all modules within the specified namespace to the value you supplied. Later on when you use Import, Include or ImportAs without specifying a directory path, they will default to the location specified in the Namespace call.

              Hope that helps. Are you using the debug log to observe the paths being used to load the Uize modules? I find it helpful when modules don't seem to be loading as expected.


              Michael

              --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@...> wrote:
              >
              > Hello Michael,
              > I am trying to get Ajile to pull resources from the Uize
              > <http://www.uize.com> library so I can then setup a prototype class
              > that uses some methods from Uize and some custom methods in one
              > function. I have setup a namespace in the index.js file where i have
              > imported a few modules from the Uize framework. As a test, I have setup
              > a calender widget from the Uize example page in my index.html, which
              > calls on these Uize modules. Ajile is pulling in the Uize modules but
              > the calender widget is not being generated. Firebug gives me the
              > following warning…
              >
              > reference to undefined property BE[BF[BD]](function(AO){var
              > Ax,B,b,Z;if(typeof Ag!...,An=new AT(),AV=new AT();Ag()})("1.2.1")
              >
              > Am I wrong in using Ajile in this way? Here is the code I have
              > setup…
              >
              > <!-- index.html -->
              > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
              > "http://www.w3.org/TR/html4/strict.dtd">
              > <html>
              > <head>
              > <title>PVT</title>
              > <link rel="stylesheet" href="css/page.css"/>
              > <link rel="stylesheet" href="css/page.example.css"/>
              > <link rel="stylesheet" href="css/widget.calendar.css"/>
              >
              > <script type="text/javascript"
              > src="js/com.iskitz.ajile.js?cloakoff,debug"></script>
              >
              > </head>
              > <body>
              > <script type="text/javascript">
              >
              > Uize.module ({
              > required:[
              > //'UizeDotCom.Page.Example.library',
              > 'Uize.Widget.Page',
              > 'Uize.Widget.Calendar',
              > 'Uize.Templates.Calendar'
              > ],
              > builder:function () {
              > /*** create the example page widget ***/
              > var page = window.page = new Uize.Widget.Page
              > /*({evaluator:function (code) {eval (code)}})*/;
              >
              > /*** add the calendar child widget ***/
              > var calendar = page.addChild (
              > 'calendar',
              > Uize.Widget.Calendar,
              > {
              > built:false,
              > html:Uize.Templates.Calendar
              > }
              > );
              >
              > /*** wire up the page widget ***/
              > page.wireUi ();
              >
              > /*** some code for demonstrating the widget's programmatic
              > interface ***/
              > function displayCalendarState () {
              > page.setNodeValue ('calendarValue',calendar.get
              > ('value'));
              > page.setNodeValue ('calendarMonth',calendar.get
              > ('month'));
              > page.setNodeValue ('calendarYear',calendar.get
              > ('year'));
              > }
              > calendar.wire ('Changed.value',displayCalendarState);
              > calendar.wire ('Changed.month',displayCalendarState);
              > calendar.wire ('Changed.year',displayCalendarState);
              > displayCalendarState ();
              > }
              > });
              >
              > </script>
              > </body>
              > </html>
              >
              > <!-- The index.js file -->
              > Namespace ("com.newschool.piim");
              >
              > Import('Uize.Widget.Page', 'lib/UIZE_js/Uize.Widget.Page.js');
              >
              > Import('Uize.Widget.Calendar', 'lib/UIZE_js/Uize.Widget.Calendar.js');
              >
              > Import('Uize.Templates.Calendar',
              > 'lib/UIZE_js/Uize.Templates.Calendar.js');
              >
              >
              > --- In ajile@yahoogroups.com, "iskitzdev" <yahoo@> wrote:
              > >
              > > Omar,
              > > Great to have a name ;-)
              > >
              > > Glad I could help you better understand Ajile.
              > >
              > > Best of luck,
              > > Michael
              > >
              > > --- In ajile@yahoogroups.com, "destroyer019" omarotieku@ wrote:
              > > >
              > > > Thanks Michael
              > > > My name is Omar, don't know why I didn't start with that. I will try
              > out your suggestions, you are really good at clearing things up for me.
              > > >
              > > > --- In ajile@yahoogroups.com, "mikeizworkin" <mikeizworkin@> wrote:
              > > > >
              > > > > Hi,
              > > > > Do you have a name I can use when answering, it feels a bit
              > strange just saying hi every time :-)
              > > > >
              > > > > I understand the problem you're having and will go into how to get
              > past that but as a first step please set Ajile's script tag's src
              > attribute to the following in your web page:
              > > > >
              > > > > src="js/com.iskitz.ajile.js?cloakoff,debug,mvcshareoff"
              > > > >
              > > > > That will do the following things:
              > > > >
              > > > > 1. Disable Ajile's functionality that removes loaded
              > > > > scripts from the page after they're no longer needed.
              > > > >
              > > > > 2. Turn on Ajile's debug mode. You can then use Ajile.ShowLog()
              > > > > within your code to see what's occurring as your code
              > executes.
              > > > >
              > > > > 3. Disable Ajile's automatic loading of the index.js file
              > > > > that may exist in the same directory as the Ajile script.
              > > > >
              > > > > Next, take a look at:
              > > > >
              > > > > http://ajile.net/docs/api/Functions.htm#Ajile.AddImportListener
              > > > >
              > > > > When Importing scripts from within other script files you should
              > use Ajile.AddImportListener to trigger the code that depends on your
              > imported scripts.
              > > > >
              > > > > The reason is that in browsers other than Opera, external scripts
              > that load other scripts must complete their execution before the
              > imported scripts can be executed. This limitation is the reason why the
              > Ajile.AddImportListener function exists. The function allows delaying
              > execution of logic that depends on your imported script until the
              > imported script has been executed.
              > > > >
              > > > > Requesting an external script then immediately trying to use it as
              > follows will fail without using the Ajile.AddImportListener function:
              > > > >
              > > > > Import ("my.cool.script");
              > > > >
              > > > > my.cool.script.DoSomething();
              > > > >
              > > > > Instead try the following:
              > > > >
              > > > > Import ("my.cool.script");
              > > > >
              > > > > Ajile.AddImportListener ("my.cool.script", function (module)
              > > > > {
              > > > > my.cool.script.DoSomething();
              > > > > });
              > > > >
              > > > > The listener approach guarantees that the code that depends on the
              > imported script will only be executed after that script has been loaded
              > *and* executed.
              > > > >
              > > > > If you're someone who learns by example, I recommend taking a look
              > at: the source code for:
              > > > >
              > > > > http://ajile.net/examples/Examples.htm
              > > > > http://ajile.net/examples/Examples.js
              > > > >
              > > > > Within those files you'll see a real world example of how Ajile is
              > used to dynamically load external script files.
              > > > >
              > > > > Ajile's Overview and Documentation at the following links should
              > also provide good information:
              > > > >
              > > > > http://ajile.net/docs/Ajile-Overview.htm
              > > > > http://ajile.net/docs/Ajile-Help.htm
              > > > >
              > > > > I hope these explanations help you better understand how Ajile
              > works and how it can be used.
              > > > >
              > > > >
              > > > > Michael
              > > > >
              > > > >
              > > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@> wrote:
              > > > > >
              > > > > > Thanks for the reply Michael, I am beginning to work my way
              > around Ajile now. I am trying to successfully import a module but I am
              > still experiencing a problem. I am following the import demo put forth
              > in the documentation but after the alert telling me that the namespace
              > has been created comes up the page seems to get stuck and does not
              > finishing loading, ever. I know that the imported module and its
              > functions will not be available to me until it loads, but I can't seem
              > to reach that state. Firebug is giving me this message…
              > > > > >
              > > > > > Failed to load source for sourceFile scriptTag file://index.js
              > script.tags( )
              > > > > >
              > > > > > Failed to load source for sourceFile scriptTag
              > file://js/com.visualization.test.example.ImportModule.js script.tags( )
              > > > > >
              > > > > > my source code looks like this…
              > > > > >
              > > > > > <!-- index.html -->
              > > > > >
              > > > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
              > "http://www.w3.org/TR/html4/strict.dtd">
              > > > > > <html>
              > > > > > <head>
              > > > > > <title>PVT</title>
              > > > > > <script type="text/javascript"
              > src="js/com.iskitz.ajile.js"></script>
              > > > > >
              > > > > > </head>
              > > > > > <body>
              > > > > >
              > > > > > </body>
              > > > > >
              > > > > > </html>
              > > > > >
              > > > > > /* index.js */
              > > > > >
              > > > > > Namespace ("com.visualization.test");
              > > > > >
              > > > > > var msg = typeof com.visualization.test == "undefined"
              > > > > > ? "Failed to create"
              > > > > > : "Successfully created";
              > > > > >
              > > > > > alert(msg + " the [ com.visualization.test ] namespace!");
              > > > > >
              > > > > > com.visualization.test.Test = function() {
              > > > > > document.write("I do not know why you don't work.");
              > > > > > }
              > > > > >
              > > > > >
              > > > > > Import ("com.visualization.test.example.ImportModule.*");
              > > > > >
              > > > > > function testImportModule()
              > > > > > {
              > > > > > // Test if showContents method has been imported.
              > > > > > var imported = "undefined" != typeof showContents;
              > > > > >
              > > > > > if(imported)// Test if imported showContents is
              > ImportModule.showContents.
              > > > > > if("undefined" != typeof
              > com.visualization.test.example.ImportModule)
              > > > > > if(showContents ==
              > com.visualization.test.example.ImportModule.showContents)
              > > > > > imported = true;
              > > > > >
              > > > > > if(imported) showContents();
              > > > > >
              > > > > > else alert( "ImportModule test was unsuccessful :-(\n\n
              > Failed to "
              > > > > > + "Import [
              > com.visualization.test.example.ImportModule.* ]");
              > > > > > }
              > > > > >
              > > > > > com.visualization.test.Test();
              > > > > >
              > > > > > /* com.visualization.test.example.ImportModule.js */
              > > > > >
              > > > > > Namespace ("com.visualization.test.example.ImportModule");
              > > > > >
              > > > > > com.visualization.test.example.ImportModule = function()
              > > > > > {
              > > > > > var THIS = this;
              > > > > >
              > > > > > // Constructor :: Creates public members.
              > > > > > function $ImportModule()
              > > > > > {
              > > > > > this.aNumber = 1;
              > > > > > this.aString = "member 5";
              > > > > > this.aFunction = function(){ alert("member
              > 1"); };
              > > > > > this.anArray = ["member3"];
              > > > > > this.anObject = { member:"member 2" };
              > > > > > this.aRegularExpression = (/member 6/);
              > > > > > this.showContents = showContents;
              > > > > > }
              > > > > >
              > > > > > function showContents()
              > > > > > {
              > > > > > var contents = ".:{
              > com.visualization.test.example.ImportModule }:.\n\n";
              > > > > >
              > > > > > alert(contents + (THIS.constructor.toString ?
              > THIS.constructor : ''));
              > > > > > }
              > > > > >
              > > > > > $ImportModule();
              > > > > > };
              > > > > >
              > > > > > Does anyone see why the script tags are failing to load
              > correctly? I have edited the path to the js files but ajile seems to
              > locate them just fine. I am at a loss?
              > > > > >
              > > > > >
              > > > > > --- In ajile@yahoogroups.com, "iskitzdev" <yahoo@> wrote:
              > > > > > >
              > > > > > > Hi,
              > > > > > > Thanks for writing.
              > > > > > >
              > > > > > > I'm not sure what type of example you're looking for but I'll
              > give an explanation of how Ajile works so you can decide if it will meet
              > your needs.
              > > > > > >
              > > > > > > When Ajile's Namespace function is used it creates a set of
              > objects linked as properties of each other. For instance:
              > > > > > >
              > > > > > > Namespace ("my.name.space");
              > > > > > >
              > > > > > > Creates a global object "my" with a property called "name".
              > The name property points to another object called "space".
              > > > > > >
              > > > > > > The my object and the name and space properties contained
              > within are immediately availble after calling the Namespace function.
              > > > > > >
              > > > > > > To load external script files you can use the Load, Import,
              > ImportAs, or Include functions depending on your specific need.
              > > > > > >
              > > > > > > All of these functions will create a script tag within your
              > HTML page when called, however the objects within the script loaded via
              > that tag won't be available for use until the code that called the Ajile
              > function completes. If that's confusing, consider this example:
              > > > > > >
              > > > > > > Load ("some/script.js"); // contains var a=true;
              > > > > > > alert (a); // displays "undefined"
              > > > > > >
              > > > > > > To use the contents of script.js as soon as possible either
              > use:
              > > > > > >
              > > > > > > Ajile.AddImportListener ("a", function(){
              > > > > > > alert (a); //displays "true";
              > > > > > > }));
              > > > > > >
              > > > > > > or if your code is in a script block in the HTML page use
              > separate script blocks for the loading and use of the external script's
              > objects:
              > > > > > >
              > > > > > > [script]
              > > > > > > Load ("some/script.js"); // contains var a=true;
              > > > > > > [/script]
              > > > > > >
              > > > > > > [script]
              > > > > > > alert (a); // displays true
              > > > > > > [/script]
              > > > > > >
              > > > > > > Hope that gives you a better idea of how Ajile works.
              > > > > > >
              > > > > > > Michael
              > > > > > >
              > > > > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@>
              > wrote:
              > > > > > > >
              > > > > > > >
              > > > > > > >
              > > > > > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@>
              > wrote:
              > > > > > > > >
              > > > > > > > > Hello,
              > > > > > > > > I have intermediate javascript skills and I am new to
              > ajile. I am working on a project that will reference multiple javascript
              > frameworks, such as Uize and VegUI, under one namespace to mix and match
              > useful modules. Is it possible to use ajile to do this? If so could
              > someone give me a quick explanation of the process or an example?
              > > > > > > > >
              > > > > > > > Sorry, I meant to include this the first time. Here is what
              > I have so far.
              > > > > > > >
              > > > > > > > Namespace ("com.visualization.test");
              > > > > > > >
              > > > > > > > var msg = typeof com.visualization.test == "undefined"
              > > > > > > > ? "Failed to create"
              > > > > > > > : "Successfully created";
              > > > > > > >
              > > > > > > > alert(msg + " the [ com.visualization.test ] namespace!");
              > > > > > > >
              > > > > > > > document.write('You are almost there!');
              > > > > > > >
              > > > > > > > Load ("lib/UIZE_js/Uize.Widget.Calendar.js");
              > > > > > > >
              > > > > > > > function testLoad()
              > > > > > > > {
              > > > > > > > if( "undefined" != typeof Uize.Widget.Calendar) {
              > > > > > > > alert("File was successfully loaded.");
              > > > > > > > }
              > > > > > > >
              > > > > > > >
              > > > > > > > else alert( "Load test was unsuccessful :-(\n\n"
              > > > > > > > + "Failed to Load [ Uize.Widget.Calendar.js
              > ]");
              > > > > > > > }
              > > > > > > >
              > > > > > >
              > > > > >
              > > > >
              > > >
              > >
              >
              >
              >
              > [Non-text portions of this message have been removed]
              >
            • destroyer019
              Okay, so if I was to import from three other frameworks in this way, would I then create a namespace for each of them to grab specific functions from them?
              Message 6 of 12 , Nov 19, 2009
              • 0 Attachment
                Okay, so if I was to import from three other frameworks in this way,
                would I then create a namespace for each of them to grab specific
                functions from them? Then create a name space that brings them all
                together? My goal is to create one package that abstracts the use the
                other four javascript frameworks under one namespace.

                --- In ajile@yahoogroups.com, "mikeizworkin" <mikeizworkin@...> wrote:
                >
                > Hi Omar,
                >
                > Looking at the code you're using I'd recommend altering your index.js
                file as follows:
                >
                > Namespace ("com.newschool.piim");
                >
                > // Define the Uize namespace's path:
                > Namespace ("Uize", "lib/UIZE_js/");
                >
                > // Import Uize modules without needing to specify each path:
                > Import ("Uize.Widget.Page");
                > Import ("Uize.Widget.Calendar");
                > Import ("Uize.Templates.Calendar");
                >
                > If you prefer to use Import with specific paths you should only
                specify the directory not the full file path and filename. Your import
                statement should look similar to:
                >
                > Import ("Uize.Widget.Page", "lib/UIZE_js/");
                >
                > Basically you can set the default path for an entire namespace using
                the Namespace function with a directory path. For details see:
                >
                > http://ajile.net/docs/api/Directives.htm#Namespace
                >
                > Using Namespace in this way sets the default path for all modules
                within the specified namespace to the value you supplied. Later on when
                you use Import, Include or ImportAs without specifying a directory path,
                they will default to the location specified in the Namespace call.
                >
                > Hope that helps. Are you using the debug log to observe the paths
                being used to load the Uize modules? I find it helpful when modules
                don't seem to be loading as expected.
                >
                >
                > Michael
                >
                > --- In ajile@yahoogroups.com, "destroyer019" omarotieku@ wrote:
                > >
                > > Hello Michael,
                > > I am trying to get Ajile to pull resources from the Uize
                > > <http://www.uize.com> library so I can then setup a prototype
                class
                > > that uses some methods from Uize and some custom methods in one
                > > function. I have setup a namespace in the index.js file where i have
                > > imported a few modules from the Uize framework. As a test, I have
                setup
                > > a calender widget from the Uize example page in my index.html, which
                > > calls on these Uize modules. Ajile is pulling in the Uize modules
                but
                > > the calender widget is not being generated. Firebug gives me the
                > > following warning…
                > >
                > > reference to undefined property BE[BF[BD]](function(AO){var
                > > Ax,B,b,Z;if(typeof Ag!...,An=new AT(),AV=new AT();Ag()})("1.2.1")
                > >
                > > Am I wrong in using Ajile in this way? Here is the code I have
                > > setup…
                > >
                > > <!-- index.html -->
                > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                > > "http://www.w3.org/TR/html4/strict.dtd">
                > > <html>
                > > <head>
                > > <title>PVT</title>
                > > <link rel="stylesheet" href="css/page.css"/>
                > > <link rel="stylesheet" href="css/page.example.css"/>
                > > <link rel="stylesheet" href="css/widget.calendar.css"/>
                > >
                > > <script type="text/javascript"
                > > src="js/com.iskitz.ajile.js?cloakoff,debug"></script>
                > >
                > > </head>
                > > <body>
                > > <script type="text/javascript">
                > >
                > > Uize.module ({
                > > required:[
                > > //'UizeDotCom.Page.Example.library',
                > > 'Uize.Widget.Page',
                > > 'Uize.Widget.Calendar',
                > > 'Uize.Templates.Calendar'
                > > ],
                > > builder:function () {
                > > /*** create the example page widget ***/
                > > var page = window.page = new Uize.Widget.Page
                > > /*({evaluator:function (code) {eval (code)}})*/;
                > >
                > > /*** add the calendar child widget ***/
                > > var calendar = page.addChild (
                > > 'calendar',
                > > Uize.Widget.Calendar,
                > > {
                > > built:false,
                > > html:Uize.Templates.Calendar
                > > }
                > > );
                > >
                > > /*** wire up the page widget ***/
                > > page.wireUi ();
                > >
                > > /*** some code for demonstrating the widget's programmatic
                > > interface ***/
                > > function displayCalendarState () {
                > > page.setNodeValue ('calendarValue',calendar.get
                > > ('value'));
                > > page.setNodeValue ('calendarMonth',calendar.get
                > > ('month'));
                > > page.setNodeValue ('calendarYear',calendar.get
                > > ('year'));
                > > }
                > > calendar.wire ('Changed.value',displayCalendarState);
                > > calendar.wire ('Changed.month',displayCalendarState);
                > > calendar.wire ('Changed.year',displayCalendarState);
                > > displayCalendarState ();
                > > }
                > > });
                > >
                > > </script>
                > > </body>
                > > </html>
                > >
                > > <!-- The index.js file -->
                > > Namespace ("com.newschool.piim");
                > >
                > > Import('Uize.Widget.Page', 'lib/UIZE_js/Uize.Widget.Page.js');
                > >
                > > Import('Uize.Widget.Calendar',
                'lib/UIZE_js/Uize.Widget.Calendar.js');
                > >
                > > Import('Uize.Templates.Calendar',
                > > 'lib/UIZE_js/Uize.Templates.Calendar.js');
                > >
                > >
                > > --- In ajile@yahoogroups.com, "iskitzdev" <yahoo@> wrote:
                > > >
                > > > Omar,
                > > > Great to have a name ;-)
                > > >
                > > > Glad I could help you better understand Ajile.
                > > >
                > > > Best of luck,
                > > > Michael
                > > >
                > > > --- In ajile@yahoogroups.com, "destroyer019" omarotieku@ wrote:
                > > > >
                > > > > Thanks Michael
                > > > > My name is Omar, don't know why I didn't start with that. I will
                try
                > > out your suggestions, you are really good at clearing things up for
                me.
                > > > >
                > > > > --- In ajile@yahoogroups.com, "mikeizworkin" <mikeizworkin@>
                wrote:
                > > > > >
                > > > > > Hi,
                > > > > > Do you have a name I can use when answering, it feels a bit
                > > strange just saying hi every time :-)
                > > > > >
                > > > > > I understand the problem you're having and will go into how to
                get
                > > past that but as a first step please set Ajile's script tag's src
                > > attribute to the following in your web page:
                > > > > >
                > > > > > src="js/com.iskitz.ajile.js?cloakoff,debug,mvcshareoff"
                > > > > >
                > > > > > That will do the following things:
                > > > > >
                > > > > > 1. Disable Ajile's functionality that removes loaded
                > > > > > scripts from the page after they're no longer needed.
                > > > > >
                > > > > > 2. Turn on Ajile's debug mode. You can then use
                Ajile.ShowLog()
                > > > > > within your code to see what's occurring as your code
                > > executes.
                > > > > >
                > > > > > 3. Disable Ajile's automatic loading of the index.js file
                > > > > > that may exist in the same directory as the Ajile
                script.
                > > > > >
                > > > > > Next, take a look at:
                > > > > >
                > > > > >
                http://ajile.net/docs/api/Functions.htm#Ajile.AddImportListener
                > > > > >
                > > > > > When Importing scripts from within other script files you
                should
                > > use Ajile.AddImportListener to trigger the code that depends on your
                > > imported scripts.
                > > > > >
                > > > > > The reason is that in browsers other than Opera, external
                scripts
                > > that load other scripts must complete their execution before the
                > > imported scripts can be executed. This limitation is the reason why
                the
                > > Ajile.AddImportListener function exists. The function allows
                delaying
                > > execution of logic that depends on your imported script until the
                > > imported script has been executed.
                > > > > >
                > > > > > Requesting an external script then immediately trying to use
                it as
                > > follows will fail without using the Ajile.AddImportListener
                function:
                > > > > >
                > > > > > Import ("my.cool.script");
                > > > > >
                > > > > > my.cool.script.DoSomething();
                > > > > >
                > > > > > Instead try the following:
                > > > > >
                > > > > > Import ("my.cool.script");
                > > > > >
                > > > > > Ajile.AddImportListener ("my.cool.script", function
                (module)
                > > > > > {
                > > > > > my.cool.script.DoSomething();
                > > > > > });
                > > > > >
                > > > > > The listener approach guarantees that the code that depends on
                the
                > > imported script will only be executed after that script has been
                loaded
                > > *and* executed.
                > > > > >
                > > > > > If you're someone who learns by example, I recommend taking a
                look
                > > at: the source code for:
                > > > > >
                > > > > > http://ajile.net/examples/Examples.htm
                > > > > > http://ajile.net/examples/Examples.js
                > > > > >
                > > > > > Within those files you'll see a real world example of how
                Ajile is
                > > used to dynamically load external script files.
                > > > > >
                > > > > > Ajile's Overview and Documentation at the following links
                should
                > > also provide good information:
                > > > > >
                > > > > > http://ajile.net/docs/Ajile-Overview.htm
                > > > > > http://ajile.net/docs/Ajile-Help.htm
                > > > > >
                > > > > > I hope these explanations help you better understand how Ajile
                > > works and how it can be used.
                > > > > >
                > > > > >
                > > > > > Michael
                > > > > >
                > > > > >
                > > > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@>
                wrote:
                > > > > > >
                > > > > > > Thanks for the reply Michael, I am beginning to work my way
                > > around Ajile now. I am trying to successfully import a module but I
                am
                > > still experiencing a problem. I am following the import demo put
                forth
                > > in the documentation but after the alert telling me that the
                namespace
                > > has been created comes up the page seems to get stuck and does not
                > > finishing loading, ever. I know that the imported module and its
                > > functions will not be available to me until it loads, but I can't
                seem
                > > to reach that state. Firebug is giving me this message…
                > > > > > >
                > > > > > > Failed to load source for sourceFile scriptTag
                file://index.js
                > > script.tags( )
                > > > > > >
                > > > > > > Failed to load source for sourceFile scriptTag
                > > file://js/com.visualization.test.example.ImportModule.js
                script.tags( )
                > > > > > >
                > > > > > > my source code looks like this…
                > > > > > >
                > > > > > > <!-- index.html -->
                > > > > > >
                > > > > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                > > "http://www.w3.org/TR/html4/strict.dtd">
                > > > > > > <html>
                > > > > > > <head>
                > > > > > > <title>PVT</title>
                > > > > > > <script type="text/javascript"
                > > src="js/com.iskitz.ajile.js"></script>
                > > > > > >
                > > > > > > </head>
                > > > > > > <body>
                > > > > > >
                > > > > > > </body>
                > > > > > >
                > > > > > > </html>
                > > > > > >
                > > > > > > /* index.js */
                > > > > > >
                > > > > > > Namespace ("com.visualization.test");
                > > > > > >
                > > > > > > var msg = typeof com.visualization.test == "undefined"
                > > > > > > ? "Failed to create"
                > > > > > > : "Successfully created";
                > > > > > >
                > > > > > > alert(msg + " the [ com.visualization.test ]
                namespace!");
                > > > > > >
                > > > > > > com.visualization.test.Test = function() {
                > > > > > > document.write("I do not know why you don't work.");
                > > > > > > }
                > > > > > >
                > > > > > >
                > > > > > > Import ("com.visualization.test.example.ImportModule.*");
                > > > > > >
                > > > > > > function testImportModule()
                > > > > > > {
                > > > > > > // Test if showContents method has been imported.
                > > > > > > var imported = "undefined" != typeof showContents;
                > > > > > >
                > > > > > > if(imported)// Test if imported showContents is
                > > ImportModule.showContents.
                > > > > > > if("undefined" != typeof
                > > com.visualization.test.example.ImportModule)
                > > > > > > if(showContents ==
                > > com.visualization.test.example.ImportModule.showContents)
                > > > > > > imported = true;
                > > > > > >
                > > > > > > if(imported) showContents();
                > > > > > >
                > > > > > > else alert( "ImportModule test was unsuccessful
                :-(\n\n
                > > Failed to "
                > > > > > > + "Import [
                > > com.visualization.test.example.ImportModule.* ]");
                > > > > > > }
                > > > > > >
                > > > > > > com.visualization.test.Test();
                > > > > > >
                > > > > > > /* com.visualization.test.example.ImportModule.js */
                > > > > > >
                > > > > > > Namespace ("com.visualization.test.example.ImportModule");
                > > > > > >
                > > > > > > com.visualization.test.example.ImportModule = function()
                > > > > > > {
                > > > > > > var THIS = this;
                > > > > > >
                > > > > > > // Constructor :: Creates public members.
                > > > > > > function $ImportModule()
                > > > > > > {
                > > > > > > this.aNumber = 1;
                > > > > > > this.aString = "member 5";
                > > > > > > this.aFunction = function(){ alert("member
                > > 1"); };
                > > > > > > this.anArray = ["member3"];
                > > > > > > this.anObject = { member:"member 2" };
                > > > > > > this.aRegularExpression = (/member 6/);
                > > > > > > this.showContents = showContents;
                > > > > > > }
                > > > > > >
                > > > > > > function showContents()
                > > > > > > {
                > > > > > > var contents = ".:{
                > > com.visualization.test.example.ImportModule }:.\n\n";
                > > > > > >
                > > > > > > alert(contents + (THIS.constructor.toString ?
                > > THIS.constructor : ''));
                > > > > > > }
                > > > > > >
                > > > > > > $ImportModule();
                > > > > > > };
                > > > > > >
                > > > > > > Does anyone see why the script tags are failing to load
                > > correctly? I have edited the path to the js files but ajile seems to
                > > locate them just fine. I am at a loss?
                > > > > > >
                > > > > > >
                > > > > > > --- In ajile@yahoogroups.com, "iskitzdev" <yahoo@> wrote:
                > > > > > > >
                > > > > > > > Hi,
                > > > > > > > Thanks for writing.
                > > > > > > >
                > > > > > > > I'm not sure what type of example you're looking for but
                I'll
                > > give an explanation of how Ajile works so you can decide if it will
                meet
                > > your needs.
                > > > > > > >
                > > > > > > > When Ajile's Namespace function is used it creates a set
                of
                > > objects linked as properties of each other. For instance:
                > > > > > > >
                > > > > > > > Namespace ("my.name.space");
                > > > > > > >
                > > > > > > > Creates a global object "my" with a property called
                "name".
                > > The name property points to another object called "space".
                > > > > > > >
                > > > > > > > The my object and the name and space properties contained
                > > within are immediately availble after calling the Namespace
                function.
                > > > > > > >
                > > > > > > > To load external script files you can use the Load,
                Import,
                > > ImportAs, or Include functions depending on your specific need.
                > > > > > > >
                > > > > > > > All of these functions will create a script tag within
                your
                > > HTML page when called, however the objects within the script loaded
                via
                > > that tag won't be available for use until the code that called the
                Ajile
                > > function completes. If that's confusing, consider this example:
                > > > > > > >
                > > > > > > > Load ("some/script.js"); // contains var a=true;
                > > > > > > > alert (a); // displays "undefined"
                > > > > > > >
                > > > > > > > To use the contents of script.js as soon as possible
                either
                > > use:
                > > > > > > >
                > > > > > > > Ajile.AddImportListener ("a", function(){
                > > > > > > > alert (a); //displays "true";
                > > > > > > > }));
                > > > > > > >
                > > > > > > > or if your code is in a script block in the HTML page use
                > > separate script blocks for the loading and use of the external
                script's
                > > objects:
                > > > > > > >
                > > > > > > > [script]
                > > > > > > > Load ("some/script.js"); // contains var a=true;
                > > > > > > > [/script]
                > > > > > > >
                > > > > > > > [script]
                > > > > > > > alert (a); // displays true
                > > > > > > > [/script]
                > > > > > > >
                > > > > > > > Hope that gives you a better idea of how Ajile works.
                > > > > > > >
                > > > > > > > Michael
                > > > > > > >
                > > > > > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@>
                > > wrote:
                > > > > > > > >
                > > > > > > > >
                > > > > > > > >
                > > > > > > > > --- In ajile@yahoogroups.com, "destroyer019"
                <omarotieku@>
                > > wrote:
                > > > > > > > > >
                > > > > > > > > > Hello,
                > > > > > > > > > I have intermediate javascript skills and I am new to
                > > ajile. I am working on a project that will reference multiple
                javascript
                > > frameworks, such as Uize and VegUI, under one namespace to mix and
                match
                > > useful modules. Is it possible to use ajile to do this? If so could
                > > someone give me a quick explanation of the process or an example?
                > > > > > > > > >
                > > > > > > > > Sorry, I meant to include this the first time. Here is
                what
                > > I have so far.
                > > > > > > > >
                > > > > > > > > Namespace ("com.visualization.test");
                > > > > > > > >
                > > > > > > > > var msg = typeof com.visualization.test == "undefined"
                > > > > > > > > ? "Failed to create"
                > > > > > > > > : "Successfully created";
                > > > > > > > >
                > > > > > > > > alert(msg + " the [ com.visualization.test ]
                namespace!");
                > > > > > > > >
                > > > > > > > > document.write('You are almost there!');
                > > > > > > > >
                > > > > > > > > Load ("lib/UIZE_js/Uize.Widget.Calendar.js");
                > > > > > > > >
                > > > > > > > > function testLoad()
                > > > > > > > > {
                > > > > > > > > if( "undefined" != typeof Uize.Widget.Calendar) {
                > > > > > > > > alert("File was successfully loaded.");
                > > > > > > > > }
                > > > > > > > >
                > > > > > > > >
                > > > > > > > > else alert( "Load test was unsuccessful :-(\n\n"
                > > > > > > > > + "Failed to Load [
                Uize.Widget.Calendar.js
                > > ]");
                > > > > > > > > }
                > > > > > > > >
                > > > > > > >
                > > > > > >
                > > > > >
                > > > >
                > > >
                > >
                > >
                > >
                > > [Non-text portions of this message have been removed]
                > >
                >
              • destroyer019
                Hey Michael, I found my problem. I was mistakenly trying to use the Import directive for a non namespaced script. Uize uses its own method to create and
                Message 7 of 12 , Nov 23, 2009
                • 0 Attachment
                  Hey Michael,
                  I found my problem. I was mistakenly trying to use the Import directive
                  for a non namespaced script. Uize uses its own method to create and
                  associate modules. I instead had to use Load to pull the appropriate
                  scripts into my definied namespace. I can now create my prototype
                  classes.

                  Thanks for your help.

                  --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@...> wrote:
                  >
                  > Okay, so if I was to import from three other frameworks in this way,
                  > would I then create a namespace for each of them to grab specific
                  > functions from them? Then create a name space that brings them all
                  > together? My goal is to create one package that abstracts the use the
                  > other four javascript frameworks under one namespace.
                  >
                  > --- In ajile@yahoogroups.com, "mikeizworkin" mikeizworkin@ wrote:
                  > >
                  > > Hi Omar,
                  > >
                  > > Looking at the code you're using I'd recommend altering your
                  index.js
                  > file as follows:
                  > >
                  > > Namespace ("com.newschool.piim");
                  > >
                  > > // Define the Uize namespace's path:
                  > > Namespace ("Uize", "lib/UIZE_js/");
                  > >
                  > > // Import Uize modules without needing to specify each path:
                  > > Import ("Uize.Widget.Page");
                  > > Import ("Uize.Widget.Calendar");
                  > > Import ("Uize.Templates.Calendar");
                  > >
                  > > If you prefer to use Import with specific paths you should only
                  > specify the directory not the full file path and filename. Your import
                  > statement should look similar to:
                  > >
                  > > Import ("Uize.Widget.Page", "lib/UIZE_js/");
                  > >
                  > > Basically you can set the default path for an entire namespace using
                  > the Namespace function with a directory path. For details see:
                  > >
                  > > http://ajile.net/docs/api/Directives.htm#Namespace
                  > >
                  > > Using Namespace in this way sets the default path for all modules
                  > within the specified namespace to the value you supplied. Later on
                  when
                  > you use Import, Include or ImportAs without specifying a directory
                  path,
                  > they will default to the location specified in the Namespace call.
                  > >
                  > > Hope that helps. Are you using the debug log to observe the paths
                  > being used to load the Uize modules? I find it helpful when modules
                  > don't seem to be loading as expected.
                  > >
                  > >
                  > > Michael
                  > >
                  > > --- In ajile@yahoogroups.com, "destroyer019" omarotieku@ wrote:
                  > > >
                  > > > Hello Michael,
                  > > > I am trying to get Ajile to pull resources from the Uize
                  > > > <http://www.uize.com> library so I can then setup a prototype
                  > class
                  > > > that uses some methods from Uize and some custom methods in one
                  > > > function. I have setup a namespace in the index.js file where i
                  have
                  > > > imported a few modules from the Uize framework. As a test, I have
                  > setup
                  > > > a calender widget from the Uize example page in my index.html,
                  which
                  > > > calls on these Uize modules. Ajile is pulling in the Uize modules
                  > but
                  > > > the calender widget is not being generated. Firebug gives me the
                  > > > following warning…
                  > > >
                  > > > reference to undefined property BE[BF[BD]](function(AO){var
                  > > > Ax,B,b,Z;if(typeof Ag!...,An=new AT(),AV=new AT();Ag()})("1.2.1")
                  > > >
                  > > > Am I wrong in using Ajile in this way? Here is the code I have
                  > > > setup…
                  > > >
                  > > > <!-- index.html -->
                  > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                  > > > "http://www.w3.org/TR/html4/strict.dtd">
                  > > > <html>
                  > > > <head>
                  > > > <title>PVT</title>
                  > > > <link rel="stylesheet" href="css/page.css"/>
                  > > > <link rel="stylesheet" href="css/page.example.css"/>
                  > > > <link rel="stylesheet" href="css/widget.calendar.css"/>
                  > > >
                  > > > <script type="text/javascript"
                  > > > src="js/com.iskitz.ajile.js?cloakoff,debug"></script>
                  > > >
                  > > > </head>
                  > > > <body>
                  > > > <script type="text/javascript">
                  > > >
                  > > > Uize.module ({
                  > > > required:[
                  > > > //'UizeDotCom.Page.Example.library',
                  > > > 'Uize.Widget.Page',
                  > > > 'Uize.Widget.Calendar',
                  > > > 'Uize.Templates.Calendar'
                  > > > ],
                  > > > builder:function () {
                  > > > /*** create the example page widget ***/
                  > > > var page = window.page = new Uize.Widget.Page
                  > > > /*({evaluator:function (code) {eval (code)}})*/;
                  > > >
                  > > > /*** add the calendar child widget ***/
                  > > > var calendar = page.addChild (
                  > > > 'calendar',
                  > > > Uize.Widget.Calendar,
                  > > > {
                  > > > built:false,
                  > > > html:Uize.Templates.Calendar
                  > > > }
                  > > > );
                  > > >
                  > > > /*** wire up the page widget ***/
                  > > > page.wireUi ();
                  > > >
                  > > > /*** some code for demonstrating the widget's
                  programmatic
                  > > > interface ***/
                  > > > function displayCalendarState () {
                  > > > page.setNodeValue ('calendarValue',calendar.get
                  > > > ('value'));
                  > > > page.setNodeValue ('calendarMonth',calendar.get
                  > > > ('month'));
                  > > > page.setNodeValue ('calendarYear',calendar.get
                  > > > ('year'));
                  > > > }
                  > > > calendar.wire ('Changed.value',displayCalendarState);
                  > > > calendar.wire ('Changed.month',displayCalendarState);
                  > > > calendar.wire ('Changed.year',displayCalendarState);
                  > > > displayCalendarState ();
                  > > > }
                  > > > });
                  > > >
                  > > > </script>
                  > > > </body>
                  > > > </html>
                  > > >
                  > > > <!-- The index.js file -->
                  > > > Namespace ("com.newschool.piim");
                  > > >
                  > > > Import('Uize.Widget.Page', 'lib/UIZE_js/Uize.Widget.Page.js');
                  > > >
                  > > > Import('Uize.Widget.Calendar',
                  > 'lib/UIZE_js/Uize.Widget.Calendar.js');
                  > > >
                  > > > Import('Uize.Templates.Calendar',
                  > > > 'lib/UIZE_js/Uize.Templates.Calendar.js');
                  > > >
                  > > >
                  > > > --- In ajile@yahoogroups.com, "iskitzdev" <yahoo@> wrote:
                  > > > >
                  > > > > Omar,
                  > > > > Great to have a name ;-)
                  > > > >
                  > > > > Glad I could help you better understand Ajile.
                  > > > >
                  > > > > Best of luck,
                  > > > > Michael
                  > > > >
                  > > > > --- In ajile@yahoogroups.com, "destroyer019" omarotieku@ wrote:
                  > > > > >
                  > > > > > Thanks Michael
                  > > > > > My name is Omar, don't know why I didn't start with that. I
                  will
                  > try
                  > > > out your suggestions, you are really good at clearing things up
                  for
                  > me.
                  > > > > >
                  > > > > > --- In ajile@yahoogroups.com, "mikeizworkin" <mikeizworkin@>
                  > wrote:
                  > > > > > >
                  > > > > > > Hi,
                  > > > > > > Do you have a name I can use when answering, it feels a bit
                  > > > strange just saying hi every time :-)
                  > > > > > >
                  > > > > > > I understand the problem you're having and will go into how
                  to
                  > get
                  > > > past that but as a first step please set Ajile's script tag's src
                  > > > attribute to the following in your web page:
                  > > > > > >
                  > > > > > > src="js/com.iskitz.ajile.js?cloakoff,debug,mvcshareoff"
                  > > > > > >
                  > > > > > > That will do the following things:
                  > > > > > >
                  > > > > > > 1. Disable Ajile's functionality that removes loaded
                  > > > > > > scripts from the page after they're no longer needed.
                  > > > > > >
                  > > > > > > 2. Turn on Ajile's debug mode. You can then use
                  > Ajile.ShowLog()
                  > > > > > > within your code to see what's occurring as your code
                  > > > executes.
                  > > > > > >
                  > > > > > > 3. Disable Ajile's automatic loading of the index.js file
                  > > > > > > that may exist in the same directory as the Ajile
                  > script.
                  > > > > > >
                  > > > > > > Next, take a look at:
                  > > > > > >
                  > > > > > >
                  > http://ajile.net/docs/api/Functions.htm#Ajile.AddImportListener
                  > > > > > >
                  > > > > > > When Importing scripts from within other script files you
                  > should
                  > > > use Ajile.AddImportListener to trigger the code that depends on
                  your
                  > > > imported scripts.
                  > > > > > >
                  > > > > > > The reason is that in browsers other than Opera, external
                  > scripts
                  > > > that load other scripts must complete their execution before the
                  > > > imported scripts can be executed. This limitation is the reason
                  why
                  > the
                  > > > Ajile.AddImportListener function exists. The function allows
                  > delaying
                  > > > execution of logic that depends on your imported script until the
                  > > > imported script has been executed.
                  > > > > > >
                  > > > > > > Requesting an external script then immediately trying to use
                  > it as
                  > > > follows will fail without using the Ajile.AddImportListener
                  > function:
                  > > > > > >
                  > > > > > > Import ("my.cool.script");
                  > > > > > >
                  > > > > > > my.cool.script.DoSomething();
                  > > > > > >
                  > > > > > > Instead try the following:
                  > > > > > >
                  > > > > > > Import ("my.cool.script");
                  > > > > > >
                  > > > > > > Ajile.AddImportListener ("my.cool.script", function
                  > (module)
                  > > > > > > {
                  > > > > > > my.cool.script.DoSomething();
                  > > > > > > });
                  > > > > > >
                  > > > > > > The listener approach guarantees that the code that depends
                  on
                  > the
                  > > > imported script will only be executed after that script has been
                  > loaded
                  > > > *and* executed.
                  > > > > > >
                  > > > > > > If you're someone who learns by example, I recommend taking
                  a
                  > look
                  > > > at: the source code for:
                  > > > > > >
                  > > > > > > http://ajile.net/examples/Examples.htm
                  > > > > > > http://ajile.net/examples/Examples.js
                  > > > > > >
                  > > > > > > Within those files you'll see a real world example of how
                  > Ajile is
                  > > > used to dynamically load external script files.
                  > > > > > >
                  > > > > > > Ajile's Overview and Documentation at the following links
                  > should
                  > > > also provide good information:
                  > > > > > >
                  > > > > > > http://ajile.net/docs/Ajile-Overview.htm
                  > > > > > > http://ajile.net/docs/Ajile-Help.htm
                  > > > > > >
                  > > > > > > I hope these explanations help you better understand how
                  Ajile
                  > > > works and how it can be used.
                  > > > > > >
                  > > > > > >
                  > > > > > > Michael
                  > > > > > >
                  > > > > > >
                  > > > > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@>
                  > wrote:
                  > > > > > > >
                  > > > > > > > Thanks for the reply Michael, I am beginning to work my
                  way
                  > > > around Ajile now. I am trying to successfully import a module but
                  I
                  > am
                  > > > still experiencing a problem. I am following the import demo put
                  > forth
                  > > > in the documentation but after the alert telling me that the
                  > namespace
                  > > > has been created comes up the page seems to get stuck and does not
                  > > > finishing loading, ever. I know that the imported module and its
                  > > > functions will not be available to me until it loads, but I can't
                  > seem
                  > > > to reach that state. Firebug is giving me this message…
                  > > > > > > >
                  > > > > > > > Failed to load source for sourceFile scriptTag
                  > file://index.js
                  > > > script.tags( )
                  > > > > > > >
                  > > > > > > > Failed to load source for sourceFile scriptTag
                  > > > file://js/com.visualization.test.example.ImportModule.js
                  > script.tags( )
                  > > > > > > >
                  > > > > > > > my source code looks like this…
                  > > > > > > >
                  > > > > > > > <!-- index.html -->
                  > > > > > > >
                  > > > > > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                  > > > "http://www.w3.org/TR/html4/strict.dtd">
                  > > > > > > > <html>
                  > > > > > > > <head>
                  > > > > > > > <title>PVT</title>
                  > > > > > > > <script type="text/javascript"
                  > > > src="js/com.iskitz.ajile.js"></script>
                  > > > > > > >
                  > > > > > > > </head>
                  > > > > > > > <body>
                  > > > > > > >
                  > > > > > > > </body>
                  > > > > > > >
                  > > > > > > > </html>
                  > > > > > > >
                  > > > > > > > /* index.js */
                  > > > > > > >
                  > > > > > > > Namespace ("com.visualization.test");
                  > > > > > > >
                  > > > > > > > var msg = typeof com.visualization.test == "undefined"
                  > > > > > > > ? "Failed to create"
                  > > > > > > > : "Successfully created";
                  > > > > > > >
                  > > > > > > > alert(msg + " the [ com.visualization.test ]
                  > namespace!");
                  > > > > > > >
                  > > > > > > > com.visualization.test.Test = function() {
                  > > > > > > > document.write("I do not know why you don't work.");
                  > > > > > > > }
                  > > > > > > >
                  > > > > > > >
                  > > > > > > > Import ("com.visualization.test.example.ImportModule.*");
                  > > > > > > >
                  > > > > > > > function testImportModule()
                  > > > > > > > {
                  > > > > > > > // Test if showContents method has been imported.
                  > > > > > > > var imported = "undefined" != typeof showContents;
                  > > > > > > >
                  > > > > > > > if(imported)// Test if imported showContents is
                  > > > ImportModule.showContents.
                  > > > > > > > if("undefined" != typeof
                  > > > com.visualization.test.example.ImportModule)
                  > > > > > > > if(showContents ==
                  > > > com.visualization.test.example.ImportModule.showContents)
                  > > > > > > > imported = true;
                  > > > > > > >
                  > > > > > > > if(imported) showContents();
                  > > > > > > >
                  > > > > > > > else alert( "ImportModule test was unsuccessful
                  > :-(\n\n
                  > > > Failed to "
                  > > > > > > > + "Import [
                  > > > com.visualization.test.example.ImportModule.* ]");
                  > > > > > > > }
                  > > > > > > >
                  > > > > > > > com.visualization.test.Test();
                  > > > > > > >
                  > > > > > > > /* com.visualization.test.example.ImportModule.js */
                  > > > > > > >
                  > > > > > > > Namespace ("com.visualization.test.example.ImportModule");
                  > > > > > > >
                  > > > > > > > com.visualization.test.example.ImportModule =
                  function()
                  > > > > > > > {
                  > > > > > > > var THIS = this;
                  > > > > > > >
                  > > > > > > > // Constructor :: Creates public members.
                  > > > > > > > function $ImportModule()
                  > > > > > > > {
                  > > > > > > > this.aNumber = 1;
                  > > > > > > > this.aString = "member 5";
                  > > > > > > > this.aFunction = function(){
                  alert("member
                  > > > 1"); };
                  > > > > > > > this.anArray = ["member3"];
                  > > > > > > > this.anObject = { member:"member 2" };
                  > > > > > > > this.aRegularExpression = (/member 6/);
                  > > > > > > > this.showContents = showContents;
                  > > > > > > > }
                  > > > > > > >
                  > > > > > > > function showContents()
                  > > > > > > > {
                  > > > > > > > var contents = ".:{
                  > > > com.visualization.test.example.ImportModule }:.\n\n";
                  > > > > > > >
                  > > > > > > > alert(contents + (THIS.constructor.toString ?
                  > > > THIS.constructor : ''));
                  > > > > > > > }
                  > > > > > > >
                  > > > > > > > $ImportModule();
                  > > > > > > > };
                  > > > > > > >
                  > > > > > > > Does anyone see why the script tags are failing to load
                  > > > correctly? I have edited the path to the js files but ajile seems
                  to
                  > > > locate them just fine. I am at a loss?
                  > > > > > > >
                  > > > > > > >
                  > > > > > > > --- In ajile@yahoogroups.com, "iskitzdev" <yahoo@> wrote:
                  > > > > > > > >
                  > > > > > > > > Hi,
                  > > > > > > > > Thanks for writing.
                  > > > > > > > >
                  > > > > > > > > I'm not sure what type of example you're looking for but
                  > I'll
                  > > > give an explanation of how Ajile works so you can decide if it
                  will
                  > meet
                  > > > your needs.
                  > > > > > > > >
                  > > > > > > > > When Ajile's Namespace function is used it creates a set
                  > of
                  > > > objects linked as properties of each other. For instance:
                  > > > > > > > >
                  > > > > > > > > Namespace ("my.name.space");
                  > > > > > > > >
                  > > > > > > > > Creates a global object "my" with a property called
                  > "name".
                  > > > The name property points to another object called "space".
                  > > > > > > > >
                  > > > > > > > > The my object and the name and space properties
                  contained
                  > > > within are immediately availble after calling the Namespace
                  > function.
                  > > > > > > > >
                  > > > > > > > > To load external script files you can use the Load,
                  > Import,
                  > > > ImportAs, or Include functions depending on your specific need.
                  > > > > > > > >
                  > > > > > > > > All of these functions will create a script tag within
                  > your
                  > > > HTML page when called, however the objects within the script
                  loaded
                  > via
                  > > > that tag won't be available for use until the code that called the
                  > Ajile
                  > > > function completes. If that's confusing, consider this example:
                  > > > > > > > >
                  > > > > > > > > Load ("some/script.js"); // contains var a=true;
                  > > > > > > > > alert (a); // displays "undefined"
                  > > > > > > > >
                  > > > > > > > > To use the contents of script.js as soon as possible
                  > either
                  > > > use:
                  > > > > > > > >
                  > > > > > > > > Ajile.AddImportListener ("a", function(){
                  > > > > > > > > alert (a); //displays "true";
                  > > > > > > > > }));
                  > > > > > > > >
                  > > > > > > > > or if your code is in a script block in the HTML page
                  use
                  > > > separate script blocks for the loading and use of the external
                  > script's
                  > > > objects:
                  > > > > > > > >
                  > > > > > > > > [script]
                  > > > > > > > > Load ("some/script.js"); // contains var a=true;
                  > > > > > > > > [/script]
                  > > > > > > > >
                  > > > > > > > > [script]
                  > > > > > > > > alert (a); // displays true
                  > > > > > > > > [/script]
                  > > > > > > > >
                  > > > > > > > > Hope that gives you a better idea of how Ajile works.
                  > > > > > > > >
                  > > > > > > > > Michael
                  > > > > > > > >
                  > > > > > > > > --- In ajile@yahoogroups.com, "destroyer019"
                  <omarotieku@>
                  > > > wrote:
                  > > > > > > > > >
                  > > > > > > > > >
                  > > > > > > > > >
                  > > > > > > > > > --- In ajile@yahoogroups.com, "destroyer019"
                  > <omarotieku@>
                  > > > wrote:
                  > > > > > > > > > >
                  > > > > > > > > > > Hello,
                  > > > > > > > > > > I have intermediate javascript skills and I am new
                  to
                  > > > ajile. I am working on a project that will reference multiple
                  > javascript
                  > > > frameworks, such as Uize and VegUI, under one namespace to mix and
                  > match
                  > > > useful modules. Is it possible to use ajile to do this? If so
                  could
                  > > > someone give me a quick explanation of the process or an example?
                  > > > > > > > > > >
                  > > > > > > > > > Sorry, I meant to include this the first time. Here is
                  > what
                  > > > I have so far.
                  > > > > > > > > >
                  > > > > > > > > > Namespace ("com.visualization.test");
                  > > > > > > > > >
                  > > > > > > > > > var msg = typeof com.visualization.test ==
                  "undefined"
                  > > > > > > > > > ? "Failed to create"
                  > > > > > > > > > : "Successfully created";
                  > > > > > > > > >
                  > > > > > > > > > alert(msg + " the [ com.visualization.test ]
                  > namespace!");
                  > > > > > > > > >
                  > > > > > > > > > document.write('You are almost there!');
                  > > > > > > > > >
                  > > > > > > > > > Load ("lib/UIZE_js/Uize.Widget.Calendar.js");
                  > > > > > > > > >
                  > > > > > > > > > function testLoad()
                  > > > > > > > > > {
                  > > > > > > > > > if( "undefined" != typeof Uize.Widget.Calendar)
                  {
                  > > > > > > > > > alert("File was successfully loaded.");
                  > > > > > > > > > }
                  > > > > > > > > >
                  > > > > > > > > >
                  > > > > > > > > > else alert( "Load test was unsuccessful :-(\n\n"
                  > > > > > > > > > + "Failed to Load [
                  > Uize.Widget.Calendar.js
                  > > > ]");
                  > > > > > > > > > }
                  > > > > > > > > >
                  > > > > > > > >
                  > > > > > > >
                  > > > > > >
                  > > > > >
                  > > > >
                  > > >
                  > > >
                  > > >
                  > > > [Non-text portions of this message have been removed]
                  > > >
                  > >
                  >
                • iskitzdev
                  Omar, Good to hear. Glad you found the problem and solution. Good luck! Michael
                  Message 8 of 12 , Nov 24, 2009
                  • 0 Attachment
                    Omar,
                    Good to hear. Glad you found the problem and solution.

                    Good luck!
                    Michael


                    --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@...> wrote:
                    >
                    > Hey Michael,
                    > I found my problem. I was mistakenly trying to use the Import directive
                    > for a non namespaced script. Uize uses its own method to create and
                    > associate modules. I instead had to use Load to pull the appropriate
                    > scripts into my definied namespace. I can now create my prototype
                    > classes.
                    >
                    > Thanks for your help.
                    >
                    > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@> wrote:
                    > >
                    > > Okay, so if I was to import from three other frameworks in this way,
                    > > would I then create a namespace for each of them to grab specific
                    > > functions from them? Then create a name space that brings them all
                    > > together? My goal is to create one package that abstracts the use the
                    > > other four javascript frameworks under one namespace.
                    > >
                    > > --- In ajile@yahoogroups.com, "mikeizworkin" mikeizworkin@ wrote:
                    > > >
                    > > > Hi Omar,
                    > > >
                    > > > Looking at the code you're using I'd recommend altering your
                    > index.js
                    > > file as follows:
                    > > >
                    > > > Namespace ("com.newschool.piim");
                    > > >
                    > > > // Define the Uize namespace's path:
                    > > > Namespace ("Uize", "lib/UIZE_js/");
                    > > >
                    > > > // Import Uize modules without needing to specify each path:
                    > > > Import ("Uize.Widget.Page");
                    > > > Import ("Uize.Widget.Calendar");
                    > > > Import ("Uize.Templates.Calendar");
                    > > >
                    > > > If you prefer to use Import with specific paths you should only
                    > > specify the directory not the full file path and filename. Your import
                    > > statement should look similar to:
                    > > >
                    > > > Import ("Uize.Widget.Page", "lib/UIZE_js/");
                    > > >
                    > > > Basically you can set the default path for an entire namespace using
                    > > the Namespace function with a directory path. For details see:
                    > > >
                    > > > http://ajile.net/docs/api/Directives.htm#Namespace
                    > > >
                    > > > Using Namespace in this way sets the default path for all modules
                    > > within the specified namespace to the value you supplied. Later on
                    > when
                    > > you use Import, Include or ImportAs without specifying a directory
                    > path,
                    > > they will default to the location specified in the Namespace call.
                    > > >
                    > > > Hope that helps. Are you using the debug log to observe the paths
                    > > being used to load the Uize modules? I find it helpful when modules
                    > > don't seem to be loading as expected.
                    > > >
                    > > >
                    > > > Michael
                    > > >
                    > > > --- In ajile@yahoogroups.com, "destroyer019" omarotieku@ wrote:
                    > > > >
                    > > > > Hello Michael,
                    > > > > I am trying to get Ajile to pull resources from the Uize
                    > > > > <http://www.uize.com> library so I can then setup a prototype
                    > > class
                    > > > > that uses some methods from Uize and some custom methods in one
                    > > > > function. I have setup a namespace in the index.js file where i
                    > have
                    > > > > imported a few modules from the Uize framework. As a test, I have
                    > > setup
                    > > > > a calender widget from the Uize example page in my index.html,
                    > which
                    > > > > calls on these Uize modules. Ajile is pulling in the Uize modules
                    > > but
                    > > > > the calender widget is not being generated. Firebug gives me the
                    > > > > following warning…
                    > > > >
                    > > > > reference to undefined property BE[BF[BD]](function(AO){var
                    > > > > Ax,B,b,Z;if(typeof Ag!...,An=new AT(),AV=new AT();Ag()})("1.2.1")
                    > > > >
                    > > > > Am I wrong in using Ajile in this way? Here is the code I have
                    > > > > setup…
                    > > > >
                    > > > > <!-- index.html -->
                    > > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                    > > > > "http://www.w3.org/TR/html4/strict.dtd">
                    > > > > <html>
                    > > > > <head>
                    > > > > <title>PVT</title>
                    > > > > <link rel="stylesheet" href="css/page.css"/>
                    > > > > <link rel="stylesheet" href="css/page.example.css"/>
                    > > > > <link rel="stylesheet" href="css/widget.calendar.css"/>
                    > > > >
                    > > > > <script type="text/javascript"
                    > > > > src="js/com.iskitz.ajile.js?cloakoff,debug"></script>
                    > > > >
                    > > > > </head>
                    > > > > <body>
                    > > > > <script type="text/javascript">
                    > > > >
                    > > > > Uize.module ({
                    > > > > required:[
                    > > > > //'UizeDotCom.Page.Example.library',
                    > > > > 'Uize.Widget.Page',
                    > > > > 'Uize.Widget.Calendar',
                    > > > > 'Uize.Templates.Calendar'
                    > > > > ],
                    > > > > builder:function () {
                    > > > > /*** create the example page widget ***/
                    > > > > var page = window.page = new Uize.Widget.Page
                    > > > > /*({evaluator:function (code) {eval (code)}})*/;
                    > > > >
                    > > > > /*** add the calendar child widget ***/
                    > > > > var calendar = page.addChild (
                    > > > > 'calendar',
                    > > > > Uize.Widget.Calendar,
                    > > > > {
                    > > > > built:false,
                    > > > > html:Uize.Templates.Calendar
                    > > > > }
                    > > > > );
                    > > > >
                    > > > > /*** wire up the page widget ***/
                    > > > > page.wireUi ();
                    > > > >
                    > > > > /*** some code for demonstrating the widget's
                    > programmatic
                    > > > > interface ***/
                    > > > > function displayCalendarState () {
                    > > > > page.setNodeValue ('calendarValue',calendar.get
                    > > > > ('value'));
                    > > > > page.setNodeValue ('calendarMonth',calendar.get
                    > > > > ('month'));
                    > > > > page.setNodeValue ('calendarYear',calendar.get
                    > > > > ('year'));
                    > > > > }
                    > > > > calendar.wire ('Changed.value',displayCalendarState);
                    > > > > calendar.wire ('Changed.month',displayCalendarState);
                    > > > > calendar.wire ('Changed.year',displayCalendarState);
                    > > > > displayCalendarState ();
                    > > > > }
                    > > > > });
                    > > > >
                    > > > > </script>
                    > > > > </body>
                    > > > > </html>
                    > > > >
                    > > > > <!-- The index.js file -->
                    > > > > Namespace ("com.newschool.piim");
                    > > > >
                    > > > > Import('Uize.Widget.Page', 'lib/UIZE_js/Uize.Widget.Page.js');
                    > > > >
                    > > > > Import('Uize.Widget.Calendar',
                    > > 'lib/UIZE_js/Uize.Widget.Calendar.js');
                    > > > >
                    > > > > Import('Uize.Templates.Calendar',
                    > > > > 'lib/UIZE_js/Uize.Templates.Calendar.js');
                    > > > >
                    > > > >
                    > > > > --- In ajile@yahoogroups.com, "iskitzdev" <yahoo@> wrote:
                    > > > > >
                    > > > > > Omar,
                    > > > > > Great to have a name ;-)
                    > > > > >
                    > > > > > Glad I could help you better understand Ajile.
                    > > > > >
                    > > > > > Best of luck,
                    > > > > > Michael
                    > > > > >
                    > > > > > --- In ajile@yahoogroups.com, "destroyer019" omarotieku@ wrote:
                    > > > > > >
                    > > > > > > Thanks Michael
                    > > > > > > My name is Omar, don't know why I didn't start with that. I
                    > will
                    > > try
                    > > > > out your suggestions, you are really good at clearing things up
                    > for
                    > > me.
                    > > > > > >
                    > > > > > > --- In ajile@yahoogroups.com, "mikeizworkin" <mikeizworkin@>
                    > > wrote:
                    > > > > > > >
                    > > > > > > > Hi,
                    > > > > > > > Do you have a name I can use when answering, it feels a bit
                    > > > > strange just saying hi every time :-)
                    > > > > > > >
                    > > > > > > > I understand the problem you're having and will go into how
                    > to
                    > > get
                    > > > > past that but as a first step please set Ajile's script tag's src
                    > > > > attribute to the following in your web page:
                    > > > > > > >
                    > > > > > > > src="js/com.iskitz.ajile.js?cloakoff,debug,mvcshareoff"
                    > > > > > > >
                    > > > > > > > That will do the following things:
                    > > > > > > >
                    > > > > > > > 1. Disable Ajile's functionality that removes loaded
                    > > > > > > > scripts from the page after they're no longer needed.
                    > > > > > > >
                    > > > > > > > 2. Turn on Ajile's debug mode. You can then use
                    > > Ajile.ShowLog()
                    > > > > > > > within your code to see what's occurring as your code
                    > > > > executes.
                    > > > > > > >
                    > > > > > > > 3. Disable Ajile's automatic loading of the index.js file
                    > > > > > > > that may exist in the same directory as the Ajile
                    > > script.
                    > > > > > > >
                    > > > > > > > Next, take a look at:
                    > > > > > > >
                    > > > > > > >
                    > > http://ajile.net/docs/api/Functions.htm#Ajile.AddImportListener
                    > > > > > > >
                    > > > > > > > When Importing scripts from within other script files you
                    > > should
                    > > > > use Ajile.AddImportListener to trigger the code that depends on
                    > your
                    > > > > imported scripts.
                    > > > > > > >
                    > > > > > > > The reason is that in browsers other than Opera, external
                    > > scripts
                    > > > > that load other scripts must complete their execution before the
                    > > > > imported scripts can be executed. This limitation is the reason
                    > why
                    > > the
                    > > > > Ajile.AddImportListener function exists. The function allows
                    > > delaying
                    > > > > execution of logic that depends on your imported script until the
                    > > > > imported script has been executed.
                    > > > > > > >
                    > > > > > > > Requesting an external script then immediately trying to use
                    > > it as
                    > > > > follows will fail without using the Ajile.AddImportListener
                    > > function:
                    > > > > > > >
                    > > > > > > > Import ("my.cool.script");
                    > > > > > > >
                    > > > > > > > my.cool.script.DoSomething();
                    > > > > > > >
                    > > > > > > > Instead try the following:
                    > > > > > > >
                    > > > > > > > Import ("my.cool.script");
                    > > > > > > >
                    > > > > > > > Ajile.AddImportListener ("my.cool.script", function
                    > > (module)
                    > > > > > > > {
                    > > > > > > > my.cool.script.DoSomething();
                    > > > > > > > });
                    > > > > > > >
                    > > > > > > > The listener approach guarantees that the code that depends
                    > on
                    > > the
                    > > > > imported script will only be executed after that script has been
                    > > loaded
                    > > > > *and* executed.
                    > > > > > > >
                    > > > > > > > If you're someone who learns by example, I recommend taking
                    > a
                    > > look
                    > > > > at: the source code for:
                    > > > > > > >
                    > > > > > > > http://ajile.net/examples/Examples.htm
                    > > > > > > > http://ajile.net/examples/Examples.js
                    > > > > > > >
                    > > > > > > > Within those files you'll see a real world example of how
                    > > Ajile is
                    > > > > used to dynamically load external script files.
                    > > > > > > >
                    > > > > > > > Ajile's Overview and Documentation at the following links
                    > > should
                    > > > > also provide good information:
                    > > > > > > >
                    > > > > > > > http://ajile.net/docs/Ajile-Overview.htm
                    > > > > > > > http://ajile.net/docs/Ajile-Help.htm
                    > > > > > > >
                    > > > > > > > I hope these explanations help you better understand how
                    > Ajile
                    > > > > works and how it can be used.
                    > > > > > > >
                    > > > > > > >
                    > > > > > > > Michael
                    > > > > > > >
                    > > > > > > >
                    > > > > > > > --- In ajile@yahoogroups.com, "destroyer019" <omarotieku@>
                    > > wrote:
                    > > > > > > > >
                    > > > > > > > > Thanks for the reply Michael, I am beginning to work my
                    > way
                    > > > > around Ajile now. I am trying to successfully import a module but
                    > I
                    > > am
                    > > > > still experiencing a problem. I am following the import demo put
                    > > forth
                    > > > > in the documentation but after the alert telling me that the
                    > > namespace
                    > > > > has been created comes up the page seems to get stuck and does not
                    > > > > finishing loading, ever. I know that the imported module and its
                    > > > > functions will not be available to me until it loads, but I can't
                    > > seem
                    > > > > to reach that state. Firebug is giving me this message…
                    > > > > > > > >
                    > > > > > > > > Failed to load source for sourceFile scriptTag
                    > > file://index.js
                    > > > > script.tags( )
                    > > > > > > > >
                    > > > > > > > > Failed to load source for sourceFile scriptTag
                    > > > > file://js/com.visualization.test.example.ImportModule.js
                    > > script.tags( )
                    > > > > > > > >
                    > > > > > > > > my source code looks like this…
                    > > > > > > > >
                    > > > > > > > > <!-- index.html -->
                    > > > > > > > >
                    > > > > > > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                    > > > > "http://www.w3.org/TR/html4/strict.dtd">
                    > > > > > > > > <html>
                    > > > > > > > > <head>
                    > > > > > > > > <title>PVT</title>
                    > > > > > > > > <script type="text/javascript"
                    > > > > src="js/com.iskitz.ajile.js"></script>
                    > > > > > > > >
                    > > > > > > > > </head>
                    > > > > > > > > <body>
                    > > > > > > > >
                    > > > > > > > > </body>
                    > > > > > > > >
                    > > > > > > > > </html>
                    > > > > > > > >
                    > > > > > > > > /* index.js */
                    > > > > > > > >
                    > > > > > > > > Namespace ("com.visualization.test");
                    > > > > > > > >
                    > > > > > > > > var msg = typeof com.visualization.test == "undefined"
                    > > > > > > > > ? "Failed to create"
                    > > > > > > > > : "Successfully created";
                    > > > > > > > >
                    > > > > > > > > alert(msg + " the [ com.visualization.test ]
                    > > namespace!");
                    > > > > > > > >
                    > > > > > > > > com.visualization.test.Test = function() {
                    > > > > > > > > document.write("I do not know why you don't work.");
                    > > > > > > > > }
                    > > > > > > > >
                    > > > > > > > >
                    > > > > > > > > Import ("com.visualization.test.example.ImportModule.*");
                    > > > > > > > >
                    > > > > > > > > function testImportModule()
                    > > > > > > > > {
                    > > > > > > > > // Test if showContents method has been imported.
                    > > > > > > > > var imported = "undefined" != typeof showContents;
                    > > > > > > > >
                    > > > > > > > > if(imported)// Test if imported showContents is
                    > > > > ImportModule.showContents.
                    > > > > > > > > if("undefined" != typeof
                    > > > > com.visualization.test.example.ImportModule)
                    > > > > > > > > if(showContents ==
                    > > > > com.visualization.test.example.ImportModule.showContents)
                    > > > > > > > > imported = true;
                    > > > > > > > >
                    > > > > > > > > if(imported) showContents();
                    > > > > > > > >
                    > > > > > > > > else alert( "ImportModule test was unsuccessful
                    > > :-(\n\n
                    > > > > Failed to "
                    > > > > > > > > + "Import [
                    > > > > com.visualization.test.example.ImportModule.* ]");
                    > > > > > > > > }
                    > > > > > > > >
                    > > > > > > > > com.visualization.test.Test();
                    > > > > > > > >
                    > > > > > > > > /* com.visualization.test.example.ImportModule.js */
                    > > > > > > > >
                    > > > > > > > > Namespace ("com.visualization.test.example.ImportModule");
                    > > > > > > > >
                    > > > > > > > > com.visualization.test.example.ImportModule =
                    > function()
                    > > > > > > > > {
                    > > > > > > > > var THIS = this;
                    > > > > > > > >
                    > > > > > > > > // Constructor :: Creates public members.
                    > > > > > > > > function $ImportModule()
                    > > > > > > > > {
                    > > > > > > > > this.aNumber = 1;
                    > > > > > > > > this.aString = "member 5";
                    > > > > > > > > this.aFunction = function(){
                    > alert("member
                    > > > > 1"); };
                    > > > > > > > > this.anArray = ["member3"];
                    > > > > > > > > this.anObject = { member:"member 2" };
                    > > > > > > > > this.aRegularExpression = (/member 6/);
                    > > > > > > > > this.showContents = showContents;
                    > > > > > > > > }
                    > > > > > > > >
                    > > > > > > > > function showContents()
                    > > > > > > > > {
                    > > > > > > > > var contents = ".:{
                    > > > > com.visualization.test.example.ImportModule }:.\n\n";
                    > > > > > > > >
                    > > > > > > > > alert(contents + (THIS.constructor.toString ?
                    > > > > THIS.constructor : ''));
                    > > > > > > > > }
                    > > > > > > > >
                    > > > > > > > > $ImportModule();
                    > > > > > > > > };
                    > > > > > > > >
                    > > > > > > > > Does anyone see why the script tags are failing to load
                    > > > > correctly? I have edited the path to the js files but ajile seems
                    > to
                    > > > > locate them just fine. I am at a loss?
                    > > > > > > > >
                    > > > > > > > >
                    > > > > > > > > --- In ajile@yahoogroups.com, "iskitzdev" <yahoo@> wrote:
                    > > > > > > > > >
                    > > > > > > > > > Hi,
                    > > > > > > > > > Thanks for writing.
                    > > > > > > > > >
                    > > > > > > > > > I'm not sure what type of example you're looking for but
                    > > I'll
                    > > > > give an explanation of how Ajile works so you can decide if it
                    > will
                    > > meet
                    > > > > your needs.
                    > > > > > > > > >
                    > > > > > > > > > When Ajile's Namespace function is used it creates a set
                    > > of
                    > > > > objects linked as properties of each other. For instance:
                    > > > > > > > > >
                    > > > > > > > > > Namespace ("my.name.space");
                    > > > > > > > > >
                    > > > > > > > > > Creates a global object "my" with a property called
                    > > "name".
                    > > > > The name property points to another object called "space".
                    > > > > > > > > >
                    > > > > > > > > > The my object and the name and space properties
                    > contained
                    > > > > within are immediately availble after calling the Namespace
                    > > function.
                    > > > > > > > > >
                    > > > > > > > > > To load external script files you can use the Load,
                    > > Import,
                    > > > > ImportAs, or Include functions depending on your specific need.
                    > > > > > > > > >
                    > > > > > > > > > All of these functions will create a script tag within
                    > > your
                    > > > > HTML page when called, however the objects within the script
                    > loaded
                    > > via
                    > > > > that tag won't be available for use until the code that called the
                    > > Ajile
                    > > > > function completes. If that's confusing, consider this example:
                    > > > > > > > > >
                    > > > > > > > > > Load ("some/script.js"); // contains var a=true;
                    > > > > > > > > > alert (a); // displays "undefined"
                    > > > > > > > > >
                    > > > > > > > > > To use the contents of script.js as soon as possible
                    > > either
                    > > > > use:
                    > > > > > > > > >
                    > > > > > > > > > Ajile.AddImportListener ("a", function(){
                    > > > > > > > > > alert (a); //displays "true";
                    > > > > > > > > > }));
                    > > > > > > > > >
                    > > > > > > > > > or if your code is in a script block in the HTML page
                    > use
                    > > > > separate script blocks for the loading and use of the external
                    > > script's
                    > > > > objects:
                    > > > > > > > > >
                    > > > > > > > > > [script]
                    > > > > > > > > > Load ("some/script.js"); // contains var a=true;
                    > > > > > > > > > [/script]
                    > > > > > > > > >
                    > > > > > > > > > [script]
                    > > > > > > > > > alert (a); // displays true
                    > > > > > > > > > [/script]
                    > > > > > > > > >
                    > > > > > > > > > Hope that gives you a better idea of how Ajile works.
                    > > > > > > > > >
                    > > > > > > > > > Michael
                    > > > > > > > > >
                    > > > > > > > > > --- In ajile@yahoogroups.com, "destroyer019"
                    > <omarotieku@>
                    > > > > wrote:
                    > > > > > > > > > >
                    > > > > > > > > > >
                    > > > > > > > > > >
                    > > > > > > > > > > --- In ajile@yahoogroups.com, "destroyer019"
                    > > <omarotieku@>
                    > > > > wrote:
                    > > > > > > > > > > >
                    > > > > > > > > > > > Hello,
                    > > > > > > > > > > > I have intermediate javascript skills and I am new
                    > to
                    > > > > ajile. I am working on a project that will reference multiple
                    > > javascript
                    > > > > frameworks, such as Uize and VegUI, under one namespace to mix and
                    > > match
                    > > > > useful modules. Is it possible to use ajile to do this? If so
                    > could
                    > > > > someone give me a quick explanation of the process or an example?
                    > > > > > > > > > > >
                    > > > > > > > > > > Sorry, I meant to include this the first time. Here is
                    > > what
                    > > > > I have so far.
                    > > > > > > > > > >
                    > > > > > > > > > > Namespace ("com.visualization.test");
                    > > > > > > > > > >
                    > > > > > > > > > > var msg = typeof com.visualization.test ==
                    > "undefined"
                    > > > > > > > > > > ? "Failed to create"
                    > > > > > > > > > > : "Successfully created";
                    > > > > > > > > > >
                    > > > > > > > > > > alert(msg + " the [ com.visualization.test ]
                    > > namespace!");
                    > > > > > > > > > >
                    > > > > > > > > > > document.write('You are almost there!');
                    > > > > > > > > > >
                    > > > > > > > > > > Load ("lib/UIZE_js/Uize.Widget.Calendar.js");
                    > > > > > > > > > >
                    > > > > > > > > > > function testLoad()
                    > > > > > > > > > > {
                    > > > > > > > > > > if( "undefined" != typeof Uize.Widget.Calendar)
                    > {
                    > > > > > > > > > > alert("File was successfully loaded.");
                    > > > > > > > > > > }
                    > > > > > > > > > >
                    > > > > > > > > > >
                    > > > > > > > > > > else alert( "Load test was unsuccessful :-(\n\n"
                    > > > > > > > > > > + "Failed to Load [
                    > > Uize.Widget.Calendar.js
                    > > > > ]");
                    > > > > > > > > > > }
                    > > > > > > > > > >
                    > > > > > > > > >
                    > > > > > > > >
                    > > > > > > >
                    > > > > > >
                    > > > > >
                    > > > >
                    > > > >
                    > > > >
                    > > > > [Non-text portions of this message have been removed]
                    > > > >
                    > > >
                    > >
                    >
                  Your message has been successfully submitted and would be delivered to recipients shortly.