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

Import modules from javascript frameworks like Uize and Vegui?

Expand Messages
  • destroyer019
    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
    Message 1 of 12 , Oct 23, 2009
    • 0 Attachment
      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?
    • destroyer019
      ... 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 ==
      Message 2 of 12 , Oct 23, 2009
      • 0 Attachment
        --- 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
        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
        Message 3 of 12 , Oct 23, 2009
        • 0 Attachment
          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 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
          Message 4 of 12 , Oct 24, 2009
          • 0 Attachment
            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 ]");
            > > }
            > >
            >
          • 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 5 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 6 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 7 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 8 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 9 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 10 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 11 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 12 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.