Login Register

Port to 0.9 core

This is the code which I had to pull from the old repository in to make Dijit work on 0.9:

Code added to dojo.*

  • dojo.date format, parse, add, plus some other things from common
  • dojo.number
  • dojo.currency
  • dojo.string (limited - pad, substitute)
  • dojo.regexp (limited - escapeString, group, buildGroupRE)

Code added to dijit.util.* (do we promote to dojo.*?)

  • BackgroundIFrame.js (from dojo.html)
  • bidi.js (isLeftToRight from dojo.html)
  • place.js (getViewport, getScroll, placeOnScreen, placeOnScreenAroundElement from dojo.html.util)
  • sniff.js (dojo.html.applyBrowserClass from dojo.html.style -- Morris' so-called csshack, now run inline to set attribute on HTML element)
  • window.js (getDocumentWindow)

Other code added to dijit.*

Local methods which perhaps should be promoted:
  • Menu uses iframeContentWindow, iframeContentDocument,
  • popupMenu uses scrollIntoView, getElementsByClass (inline)
  • TemplatedWidget uses createNodesFromText, isNode (inline)
  • BackgroundIFrame also uses isNode (inline)
  • Widget uses disableSelection (Menu also)
  • Tooltip and PopupManager use isDescendent of from dojo.dom
  • PopupManager uses overElement, getCursorPosition, and getScroll (inline)
  • FocusManager uses isCollapsed, getBookmark, moveToBookmark from dojo.html
Helper methods which probably don't belong on TemplatedWidget:
  • TemplatedWidget._addClass
  • TemplatedWidget._removeClass

Missing Code

  • dojo.html.stabile.setState and getState?  Combobox was using them so when the user pressed back, the Combobox would go back to the option the user selected.

Issues

Key handling is a problem.  Minimally, we need to expose things like dojo._keys.  We probably need to write an additional layer to enhance or replace what's in base to give Doug all the functionality he had before. removeChild and friends leak on IE.  We no longer have a quirks layer to help with this.  Do we need one?  how about dojo.browser.event.clean?

Caveats

Haven't looked at or touched widgets which have yet to be populated in dijit (e.g. TreeV3, Editor2) which are among the most complex widgets and probably have the most dependencies.