Dave Draper | 24 Jul 17:10 2014

Dojo 1.10.0 on Maven?

Hi,

I don't seem to be able to download Dojo 1.10.0 via Maven (see:
http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.dojotoolkit%22%20AND%20a%3A%22dojo%22)

Any idea when it's going to be available?

Many thanks,
Dave

--
View this message in context: http://dojo-toolkit.33424.n3.nabble.com/Dojo-1-10-0-on-Maven-tp4003108.html
Sent from the Dojo Toolkit mailing list archive at Nabble.com.
--

-- 
Dojo Toolkit: http://dojotoolkit.org/
Tutorials: http://dojotoolkit.org/documentation/

Dojo-interest <at> mail.dojotoolkit.org
To unsubscribe, visit: http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest

tadufre | 23 Jul 23:27 2014
Picon

gridx scroll to end after adding row to store


I'm trying to scroll to the end of a gridx grid after inserting a new row in
the store.  I'm using gridx/modules/VScroller.

here's my attempt:

function add_row(){
  var row = grid.store.data.length;
  grid.store.add({id: row+1, order: row+1, name: 'ROW_' + (row +1) );
  grid.vScroller.scrollToRow(row+1);
}

however, scrollToRow is executed before the new row is in the DOM, so it
does not work.

any ideas on how to implement this feature?

Thanks in advance.

--
View this message in context: http://dojo-toolkit.33424.n3.nabble.com/gridx-scroll-to-end-after-adding-row-to-store-tp4003100.html
Sent from the Dojo Toolkit mailing list archive at Nabble.com.
--

-- 
Dojo Toolkit: http://dojotoolkit.org/
Tutorials: http://dojotoolkit.org/documentation/

Dojo-interest <at> mail.dojotoolkit.org
To unsubscribe, visit: http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest

(Continue reading)

Craig Ching | 23 Jul 19:59 2014
Picon

BorderContainer differences 1.9.1 -> 1.10.0

Hi all,

I'm moving to dojo 1.10.0 from dojo 1.9.1 and finding that BorderContainers now have a 5px padding on them that wasn't there before.  On inspection in Chrome, it appears the structure of the CSS is different and maybe styles that weren't being included in 1.9.1 are now being included in 1.10.0 (I'm using a -src distribution to check these).  The weird thing is, the padding seems to be overridden when inspecting, but it seems that at parse time the 5px padding is being taken into account and then I'm getting the padding in the result.

Does this sound familiar to anyone?  I have an example, what's the best way to share that?

In the meantime I'm overriding the BorderContainer padding (and border) with the following:

    .tundra .dijitBorderContainer {
        padding: 0;
    }
    .tundra .dijitSplitContainer-dijitContentPane,
    .tundra .dijitBorderContainer-dijitContentPane {
        background-color: #fff;        /* override background-color setting on parent .dijitBorderContainer */
        padding: 0;
    }
    .tundra .dijitSplitContainer-child,
    .tundra .dijitBorderContainer-child {
        border: none;
    }

Is this a common thing to have to do?  Been using dojo for a looooong time now and never had to hack anything like this before ;-)

I appreciate any help!

Cheers,
Craig
--

-- 
Dojo Toolkit: http://dojotoolkit.org/
Tutorials: http://dojotoolkit.org/documentation/

Dojo-interest <at> mail.dojotoolkit.org
To unsubscribe, visit: http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest
rmanvel | 23 Jul 14:55 2014
Picon

dojox.form.Uploader to create a new CsvStore from an Excel csv file

I'm trying to upload an Excel csv file into a CsvStore and cannot seem to
find a way to actually get the data that is in the specified file. I can
browse to select the file (file mask doesn't work, but that is a known
issue), but that's it. If I actually fire the f0.Upload() command after
having found a file, I get this error:
"Error parsing server result:" SyntaxError: JSON.parse: unexpected character
at line 1 column 1 of the JSON data
Stack trace:
.createXhr/_d.onreadystatechange< <at> http://localhost:17675/Scripts/dojo-release-1.9.1/dojox/form/uploader/_HTML5.js:76:1
.cache["dojo/_base/lang"]/</lang.hitch/&lt; <at> http://localhost:17675/Scripts/dojo-release-1.9.1/dojo/dojo.js:15:110891
BuildBtns/mySubmitExcel&lt;.onClick <at> http://localhost:17675/Scripts/Item/InventoryAdjustments.js:1168:1
_5&lt;._onClick <at> http://localhost:17675/Scripts/dojo-release-1.9.1/dijit/form/_ButtonMixin.js:16:1
.cache[&quot;dojo/_base/lang&quot;]/&lt;/lang.hitch/&lt; <at> http://localhost:17675/Scripts/dojo-release-1.9.1/dojo/dojo.js:15:110815
_5&lt;.__onClick <at> http://localhost:17675/Scripts/dojo-release-1.9.1/dijit/form/_ButtonMixin.js:7:1
.cache[&quot;dojo/_base/lang&quot;]/&lt;/lang.hitch/&lt; <at> http://localhost:17675/Scripts/dojo-release-1.9.1/dojo/dojo.js:15:110815

My actual screen does a bunch of stuff, but the Uploader related code has
been placed in JS Fiddle and that code is as follows:

require([
      &quot;dojo/dom&quot;, &quot;dojo/dom-construct&quot;, 'dojo/parser',
&quot;dojo/store/Memory&quot;, &quot;dijit/Menu&quot;,
&quot;dijit/MenuItem&quot;, &quot;dijit/MenuSeparator&quot;,
&quot;dijit/CheckedMenuItem&quot;,
      &quot;dojo/date/locale&quot;, &quot;dijit/_Widget&quot;,
&quot;dijit/_TemplatedMixin&quot;,
&quot;dijit/_WidgetsInTemplateMixin&quot;, &quot;gridx/Grid&quot;,
&quot;gridx/core/model/cache/Async&quot;,
      'gridx/allModules', 'gridx/modules/extendedSelect/Row',
&quot;dijit/layout/TabContainer&quot;, &quot;dijit/layout/ContentPane&quot;,
&quot;dojo/on&quot;, &quot;dojox/timing&quot;,
      &quot;app/PhraseTrans&quot;, &quot;app/EsmDateHandler&quot;,
&quot;app/HbStore&quot;, &quot;dijit/form/TextBox&quot;,
&quot;dijit/form/Textarea&quot;, &quot;dijit/form/FilteringSelect&quot;,
      &quot;dijit/form/Button&quot;, &quot;dijit/Dialog&quot;,
&quot;dijit/ProgressBar&quot;,
      &quot;dojo/hash&quot;, &quot;dojo/topic&quot;,
&quot;dojo/io-query&quot;, &quot;dojo/request&quot;,
&quot;dijit/form/DateTextBox&quot;, &quot;dijit/form/TimeTextBox&quot;,
      &quot;dijit/form/RadioButton&quot;, &quot;dojox/widget/Standby&quot;,
&quot;dojo/dnd/source&quot;, &quot;dijit/form/NumberTextBox&quot;,
      &quot;dijit/layout/BorderContainer&quot;, &quot;dojo/number&quot;,
&quot;dijit/form/CheckBox&quot;,
      &quot;dijit/CalendarLite&quot;, &quot;dojo/_base/array&quot;,
&quot;dojo/json&quot;, &quot;dojox/data/CsvStore&quot;,
&quot;dojox/form/Uploader&quot;,
      &quot;dojox/embed/Flash&quot;,
&quot;dojox/form/uploader/FileList&quot;, &quot;dojo/request/xhr&quot;,
&quot;dojo/domReady!&quot;],

  function (dom, domConstruct, parser, Memory,
  menu, MenuItem, MenuSeparator, CheckedMenuItem, locale,
  _Widget, _TemplatedMixin, _WidgetsInTemplateMixin,
  Grid, Cache, mods,
  extendedSelectRow, TabContainer,
  ContentPane, on, Timer, Phrase,
  DateHandler, HbStore, TextBox, Textarea,
  FilteringSelect, Button, Dialog, ProgressBar,
  hash, topic, ioQuery,
  request, DateTextBox, TimeTextBox,
  RadioButton, Standby, Source, NumberTextBox, BorderContainer, number,
CheckBox,
  Calendar, array, JSON, CsvStore, Uploader,
  Flash, FileList, xhr) {

      // send our uploaded Excel file to our controller for processing...
      var uploadUrl = &quot;my upload url location&quot;;

      // only upload Excel type files
      var myfileMask = [&quot;Excel File&quot;,
&quot;*.xlsx;*.xls;*.cvs&quot;];
      var selectMultipleFiles = false;
      var forceNoFlash = false;

      dojo.addOnLoad(function () {

          var qs = window.location.href.split(&quot;?&quot;);
          if (qs.length > 1) {
              qs = qs[1];
              if (qs.indexOf("forceNoFlash") > -1) {
                  forceNoFlash = true;
              }
              if (qs.indexOf("multiMode") > -1) {
                  selectMultipleFiles = true;
              }
          }

          // functions for uploading the Excel file....
          var f0 = new dojox.form.Uploader({
              id: 'fileUploader',
              degradable: true,
              uploadUrl: uploadUrl,
              uploadOnChange: false,
              selectMultipleFiles: selectMultipleFiles,
              fileMask: myfileMask,
              fileListId: "hFiles",
              isDebug: true,
              devMode: true
          }, "FindExcel");

          doUpload = function () {
              // if I actually have a file that I've picked... then do the
upload
              if (dom.byId("FindExcel").files[0]) {
                  if (dom.byId("FindExcel").files[0].name.length > 0) {
                      console.log("doUpload has been fired");
                      dojo.byId("hFiles").innerHTML = "uploading...";
                      f0.upload();
                  } else {
                      console.log("No file yet & doUpload has been fired");
                  }
              }
          };

          dojo.connect(f0, "onChange", function (data) {
              // console.log("DATA:", data);           
          });

          dojo.connect(f0, "onProgress", function (data) {
              //    console.warn("onProgress", data);
              dojo.byId("hFiles").value = "";
              dojo.forEach(data, function (d) {
                  dojo.byId("hFiles").value += "(" + d.percent + "%) " +
d.name + " \n";

              });
          });

          dojo.connect(f0, "onComplete", function (data) {

              console.log("onComplete has fired");
          });

          f0.startup();

          // end upload related section

      });
      // end dojo.addOnLoad()

      function BuildBtns() {

          domConstruct.place("<label id='lbltemp4'  type='label'>" + "OR " +
Phrase.Get("IMPORT_ADJUSTMENTS", parseInt(dom.byId('Locale').value, radix))
+ "</label>", "mainTableR1C2Row2");
          domConstruct.place("<input type='file' id='FindExcel'
multiple='false' dojoType='dojox.form.Uploader'
onClick='doUpload()'></input>", "mainTableR1C2Row2");
          domConstruct.place("<label id='lbltemp4'  type='label'>" + "       
" + "</label>", "mainTableR1C2Row2");
          domConstruct.place("<div  class='field' id='hFiles'
dojoType='dojox.form.Uploader.FileList'></div>", "mainTableR1C2Row2");
          domConstruct.place("<scan id='submitexcel'><button
id='btnSubmitExcel' dojoType='dijit/form/Button' style='button'>" +
Phrase.Get("Update M2M from Excel...", parseInt(dom.byId('Locale').value,
radix)) + "</button></scan>", "mainTableR1C2Row2");

          var mySubmitExcel = new Button({
              id: "btnSubmitExcel",
              href: "#",
              onClick: function () {
                  var cFileName;
                  cFileName = dom.byId("FindExcel").files[0].name;

                  var ctypeoffile;
                  ctypeoffile = dom.byId("FindExcel").files[0].type;

                  var dPostingDate2 =
locale.format(dijit.byId("calPicker").currentFocus, "short");
                  var dTestDate2 =
locale.format(dijit.byId("calPicker").currentFocus, {
                      datePattern: "MM/dd/yyyy",
                      selector: "date"
                  });

                  var isOktoPost2 = true;

                  if (testCoNo(dijit.byId("cboM2MCompany").get("value"))) {
                      // Co Id is O.K.
                  } else {
                      // issue error... co id is invalid  testPostDate
                      Alert("Invaild M2M Company! You must select a valid
M2M Company");
                      isOktoPost2 = false;
                  }
                  var dToday2 = locale.format(new Date(), {
                      datePattern: "MM/dd/yyyy",
                      selector: "date"
                  });

                  if (dToday2 < dTestDate2) {
                      alert("You may not use a future date for the
Adjustment posting date!");
                      isOktoPost2 = false;
                  } else {
                      if (testPostDate(dTestDate2)) {
                          // posting date is O.K.
                      } else {
                          // issue error... invalid posting date: error
message in called function
                          isOktoPost2 = false;
                      }
                  }

                  if (ctypeoffile === "application/vnd.ms-excel") {

                      if (isOktoPost2 === true) {
                          // proceed...
                          // like to do the upload now, after I've confirmed
that the selected file is O.K.
                          doUpload();

                          var oTestFiles = dom.byId("hFiles");
                          // above is there, but is empty at this point
                          // find Excel object contains the information
about the file we wish to download/use

                          var userconfirmed2 = confirm("Are you sure that
you want to post the Excel File [" + cFileName + "] to M2M on " + dTestDate2
+ " ?");

                          if (userconfirmed2 === true) {
                              // proceed... user confirmed the request....
                              // this call seems to work, but there is no
data in the object
                              var myCsvStore = new CsvStore({
                                  data: dom.byId("FindExcel").files[0]
                              });
                              otest = myCsvStore;

                          }
                      } else {
                          alert("Selected file is not an Excel type. Please
pick a valid Excel input file");
                          $("body").css("cursor", "default");
                      }

                      dojo.stopEvent(evt);
                  }
              }

          },
              "btnSubmitExcel");
      }
      // End BuildBtns()

  }); // End of InventoryAdjustments.js //

If someone could help me out here it will be very much appreciated. I'm not
finding anything much from existing posts where someone is uploading files
other than images... 

--
View this message in context: http://dojo-toolkit.33424.n3.nabble.com/dojox-form-Uploader-to-create-a-new-CsvStore-from-an-Excel-csv-file-tp4003094.html
Sent from the Dojo Toolkit mailing list archive at Nabble.com.
--

-- 
Dojo Toolkit: http://dojotoolkit.org/
Tutorials: http://dojotoolkit.org/documentation/

Dojo-interest <at> mail.dojotoolkit.org
To unsubscribe, visit: http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest

vtsuper | 23 Jul 07:29 2014
Picon

create object base on dynamic class name

I know that the following code is not correct, but what I want to do is
create* dynamic object base on dynamic class name*. So is it possible to do
that??

--
View this message in context: http://dojo-toolkit.33424.n3.nabble.com/create-object-base-on-dynamic-class-name-tp4003086.html
Sent from the Dojo Toolkit mailing list archive at Nabble.com.
--

-- 
Dojo Toolkit: http://dojotoolkit.org/
Tutorials: http://dojotoolkit.org/documentation/

Dojo-interest <at> mail.dojotoolkit.org
To unsubscribe, visit: http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest

muet | 23 Jul 07:22 2014

dynamic or 2-phase package definition / registration

The first phase uses the dojoConfig and defines packages whose names and
locations are fixed and therefore known upfront. These packages include code
that processes device and application configuration info which produce
dynamically package information for the second phase of device dependent
packages registration and usage. The 'require' for 2-phase registered
packages are collected and deferred just up to before parsing. The
collection and deferral logic before parsing removes duplicates, emits the
require with all deferred module names including the parser, and parses on
ready state.

This approach allows to keep the same require / module names for the source
code but pull different (responsive web design with server adaption / RESS)
implementations for different device types / real estate form factors. The
same source code allows builds.

Since registering of modules is deprecated for 1.7+, any dynamic or 2-phase
package definition / registration is not possible anymore.

The attempt to hold on to a packageInformation place holder and update the
location after dojo.js / AMD-loader loading fails because of the mix in of
the packageInformation into a new, resulting object, which then is used to
for further processing, and finally stored in the packs (as a property with
name of the package name).

    
After dojo.js load and device detection, the following code (attempts to)
update(s) the place holder:

Unfortunately, the mix in load and execution of dojo.js renders the
reference to the package information useless:

The following code (hack/patch) keeps the reference reusable by adding the 
newly created object as pimd attribute (p-ackage i-nfo m-ixe-d) to the
origin
packageInfo object:

...and the packageInfo update-able:

I'm absolutely aware of the fact that this is a bad hack, and the hack is
not verified against
the other options of the packages definitions, such as mapping. Therefore,
I'm looking for
an alternatives of implementation of dynamic package
registration/definitions that would 
preserve the 1.7+ style and options.

What are my   options (other than put into every require 
a dynamically constructed module name and with that loosing the build
option)?

--
View this message in context: http://dojo-toolkit.33424.n3.nabble.com/dynamic-or-2-phase-package-definition-registration-tp4003085.html
Sent from the Dojo Toolkit mailing list archive at Nabble.com.
--

-- 
Dojo Toolkit: http://dojotoolkit.org/
Tutorials: http://dojotoolkit.org/documentation/

Dojo-interest <at> mail.dojotoolkit.org
To unsubscribe, visit: http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest

chiranjeevireddy | 23 Jul 06:03 2014
Picon

Reading properties file in to .js file

Hi Team,

 i want to read properties file into xxx.js file.actually this thing doing
in (ICN)navigator by using dojo script.
Thanks in advance

Regars
-----------
ACReddy

-----
regard's
---------
Reddy
--
View this message in context: http://dojo-toolkit.33424.n3.nabble.com/Reading-properties-file-in-to-js-file-tp4003083.html
Sent from the Dojo Toolkit mailing list archive at Nabble.com.
--

-- 
Dojo Toolkit: http://dojotoolkit.org/
Tutorials: http://dojotoolkit.org/documentation/

Dojo-interest <at> mail.dojotoolkit.org
To unsubscribe, visit: http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest

Mustafa AlKubaisi | 22 Jul 21:24 2014
Picon

EnhancedGrid remove row

Hi,
Is there any function that removes a single row in EnhancedGrid without
having to refresh?
I found removeSelectedRows, but this one only removes the selected rows, in
my case i need to perform the remove in context menu, where unselected rows
need to be deleted.
Any help or hint will be highly appreciated.
Thanks

--
View this message in context: http://dojo-toolkit.33424.n3.nabble.com/EnhancedGrid-remove-row-tp4003081.html
Sent from the Dojo Toolkit mailing list archive at Nabble.com.
--

-- 
Dojo Toolkit: http://dojotoolkit.org/
Tutorials: http://dojotoolkit.org/documentation/

Dojo-interest <at> mail.dojotoolkit.org
To unsubscribe, visit: http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest

Phil Lep | 22 Jul 20:36 2014

dGrid columnset styling : mouse-over highlight not working

Hello,
I have a really simple dGrid with 2 columnsets. The first one has a set size
so the other columns can scroll while the left-set stays put - like you
would freeze columns in Excel.

I styled the first columnset with some colour just to contrast enough to
find the bottom scroll-bar more easily. Styling with the form:
.dgrid-column-set-0 {
   background-color : <some color>
}

Alternatively, I tried (removing the css above and) using the JavaScript
command:
gridHandle.styleColumnSet(0,"background-color:<someColor>")

In both cases, what happens is that the columnset does indeed get colored,
but then the mouse-over-highlighting disappears.

Is this a bug or intentional? Is there a way to make the coloured set
highlight on mouse over?
Thanks

--
View this message in context: http://dojo-toolkit.33424.n3.nabble.com/dGrid-columnset-styling-mouse-over-highlight-not-working-tp4003080.html
Sent from the Dojo Toolkit mailing list archive at Nabble.com.
--

-- 
Dojo Toolkit: http://dojotoolkit.org/
Tutorials: http://dojotoolkit.org/documentation/

Dojo-interest <at> mail.dojotoolkit.org
To unsubscribe, visit: http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest

focode | 22 Jul 19:25 2014
Picon

how to get events from infowindow of google map

I am not able to call method btnHit() from infowindow placed on google marker
in google maps, I am getting

"ReferenceError: btnHit is not defined" in mozilla firefox, below is the
source code of the widget

define([
    "dojo/_base/declare",
    "dijit/_WidgetBase",
    "dijit/_OnDijitClickMixin",
    "dijit/_TemplatedMixin",
    "dojo/text!./templats/subscribermap.html",
    "dojo/on",
    "dojo/dom",
    "dojo/_base/lang"

], function(declare, _WidgetBase, _OnDijitClickMixin, _TemplatedMixin,
        template, on, dom, lang) {

    var map;
    var geocoder;
    var popup;
    return declare([_WidgetBase, _OnDijitClickMixin, _TemplatedMixin], {
        templateString: template,
        postCreate: function() {

            this.refreshMap();
            on(this.addressTypeButton, 'click', lang.hitch(this,
function(event) {
                console.log("from addressTypeButton");
            }));
            google.maps.event.addDomListener(window, 'load', initMap);
        },
        refreshMap: function() {

            this.initMap();
        },
        initMap: function() {
            //initialize geocoder object
            geocoder = new google.maps.Geocoder();
            //initialize info popup window
            popup = new google.maps.InfoWindow();
            //Enabling new cartography and themes
            google.maps.visualRefresh = true;
            //Setting starting options of map
            var mapOptions = {
                center: new google.maps.LatLng(39.9078, 32.8252),
                zoom: 10,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            //Creating a map with DOM element which is just obtained
            map = new google.maps.Map(this.googleMap, mapOptions);
            //creating drawingManager
            var drawingManager = new google.maps.drawing.DrawingManager({
                //initial drawing tool to be enabled
                drawingMode: null,
                //enable the drawingControl to be seen in the UI
                drawingControl: true,
                //select which drawing modes to be seen in the
drawingControl and position them
                drawingControlOptions: {
                    //select a position in the UI
                    position: google.maps.ControlPosition.TOP_CENTER,
                    //selected drawing modes to be seen in the control
                    drawingModes: [
                        google.maps.drawing.OverlayType.MARKER
                    ]
                }
            });
            //enable drawing functionality
            drawingManager.setMap(map);
            //add event listener for completion of your marker
            google.maps.event.addListener(drawingManager, 'markercomplete',
function(marker) {

                //get the LatLng object of the marker, it is necessary for
the geocoder
                var markerPosition = marker.getPosition();
                //reverse geocode the LatLng object to return the addresses
                geocoder.geocode({'latLng': markerPosition},
function(results, status) {
                    //if the service is working properly...
                    if (status == google.maps.GeocoderStatus.OK) {
                        //Array of results will return if everything is OK
                        if (results) {
                            //infowindow stuff
                            showAddressOfResult(results[0], marker);
                        }
                    }
                    //if the service is not working, deal with it
                    else {
                        alert("Reverse Geocoding failed because: " +
status);
                    }
                });

            });
            //function for displaying the address on the infowindow
            function showAddressOfResult(result, marker) {
                map.setCenter(marker.getPosition());
                map.setZoom(13);

                var html = '<div id="info_content">here your content <button
id = "btn" onclick="btnHit()">Submit</button></div>';
                var popupContent = '*Address: * ' + result.formatted_address
+ html;
                popup.setContent(popupContent);
                popup.open(map, marker);
                google.maps.event.addListener(popup, 'domready', function()
{

                    function btnHit() {

                        alert('it works');
                    }
                    ;
                });
            }

        }

    });
});

--
View this message in context: http://dojo-toolkit.33424.n3.nabble.com/how-to-get-events-from-infowindow-of-google-map-tp4003079.html
Sent from the Dojo Toolkit mailing list archive at Nabble.com.
--

-- 
Dojo Toolkit: http://dojotoolkit.org/
Tutorials: http://dojotoolkit.org/documentation/

Dojo-interest <at> mail.dojotoolkit.org
To unsubscribe, visit: http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest

bartonjd | 22 Jul 18:32 2014
Picon

Dojo Mobile App View Controller

I have several views and need certain functions to be called each time the
view is activated. I am using MVC and the config.json configuration method.
How do I go about writing the appropriate controller for my view? I have
searched through the forums and haven't found anything, google has also
yielded no results. Thanks in advance!

--
View this message in context: http://dojo-toolkit.33424.n3.nabble.com/Dojo-Mobile-App-View-Controller-tp4003078.html
Sent from the Dojo Toolkit mailing list archive at Nabble.com.
--

-- 
Dojo Toolkit: http://dojotoolkit.org/
Tutorials: http://dojotoolkit.org/documentation/

Dojo-interest <at> mail.dojotoolkit.org
To unsubscribe, visit: http://mail.dojotoolkit.org/mailman/listinfo/dojo-interest


Gmane