Commits

Ralph Bean committed 582a248

Fixes for the 2.0.0 release.

  • Participants
  • Parent commits 18d2495

Comments (0)

Files changed (6)

 include README.rst
 recursive-include tw2/jit/templates *
 recursive-include tw2/jit/static *
+recursive-include tests *

File tw2/jit/samples/graph.py

         (function(domElement, node){
             domElement.innerHTML = node.name;
             domElement.onclick = function(){
-                jitwidget.onClick(node.id);
+                $$jitwidget.onClick(node.id);
             };
         })""")
     onPlaceLabel = JSSymbol(src="""
             'enable' : True,
             'onMouseEnter' : JSSymbol(src="""
             (function() { 
-                jitwidget.canvas.getElement().style.cursor = \'move\';
+                $$jitwidget.canvas.getElement().style.cursor = \'move\';
             })"""),
             'onMouseLeave' : JSSymbol(src="""
             (function() {
-                jitwidget.canvas.getElement().style.cursor = \'\';
+                $$jitwidget.canvas.getElement().style.cursor = \'\';
             })"""),
             'onDragMove' : JSSymbol(src="""
             (function(node, eventInfo, e) {
                 var pos = eventInfo.getPos();
                 node.pos.setc(pos.x, pos.y);
-                jitwidget.plot();
+                $$jitwidget.plot();
             })"""),
             'onTouchMove' : JSSymbol(src="""
             (function(node, eventInfo, e) {

File tw2/jit/samples/tree.py

         'onClick': JSSymbol(src="""
             (function(node) {  
                 if(!node) return;  
-                jitwidget.tips.hide();  
-                jitwidget.rotate(node, 'animate', {  
+                $$jitwidget.tips.hide();  
+                $$jitwidget.rotate(node, 'animate', {  
                     duration: 1000,  
                     transition: $jit.Trans.Quart.easeInOut  
                 });  
             ( function(domElement, node){
                   domElement.innerHTML = node.name;
                   $jit.util.addEvent(domElement, 'click', function () {
-                      jitwidget.onClick(node.id);
+                      $$jitwidget.onClick(node.id);
                   });
             })""")
 
             label.id = node.id;            
             label.innerHTML = node.name;
             label.onclick = function(){
-                jitwidget.onClick(node.id);
+                $$jitwidget.onClick(node.id);
             };
             var style = label.style;
             style.width = 60 + 'px';
         'onMouseEnter': JSSymbol(src="""
             (function(node) {
                 node.setData('border', '#33dddd');
-                jitwidget.fx.plotNode(node, jitwidget.canvas);
-                jitwidget.labels.plotLabel(
-                                 jitwidget.canvas,
+                $$jitwidget.fx.plotNode(node, $$jitwidget.canvas);
+                $$jitwidget.labels.plotLabel(
+                                 $$jitwidget.canvas,
                                  node,
-                                 jitwidget.controller);
+                                 $$jitwidget.controller);
             })"""),
         'onMouseLeave': JSSymbol(src="""
             (function(node) {
                 node.removeData('border');
-                jitwidget.fx.plot();
+                $$jitwidget.fx.plot();
             })"""),
         'onClick': JSSymbol(src="""
             (function(node){
                 if (node) {
-                    jitwidget.tips.hide();
-                    if(jitwidget.events.hoveredNode){
-                        this.onMouseLeave(jitwidget.events.hoveredNode);
+                    $$jitwidget.tips.hide();
+                    if($$jitwidget.events.hoveredNode){
+                        this.onMouseLeave($$jitwidget.events.hoveredNode);
                     }
-                    jitwidget.enter(node);
+                    $$jitwidget.enter(node);
                }
             })"""),
         'onRightClick': JSSymbol(src="""
             (function(){
-                jitwidget.tips.hide();
-                if(jitwidget.events.hoveredNode) {
-                    this.onMouseLeave(jitwidget.events.hoveredNode);
+                $$jitwidget.tips.hide();
+                if($$jitwidget.events.hoveredNode) {
+                    this.onMouseLeave($$jitwidget.events.hoveredNode);
                 }
-                jitwidget.out();
+                $$jitwidget.out();
             })"""),
     }
     onCreateLabel = JSSymbol(src="""

File tw2/jit/widgets/ajax.py

                     }
 
                     var hover_id = 'ajaxRadialGraph_' + node.id + '_Tip';
-                    hover_id = hover_id.replace(/\./g,'_');
-                    hover_id = hover_id.replace(/\//g, '_');
-                    hover_id = hover_id.replace(/\(/g, '_');
-                    hover_id = hover_id.replace(/\)/g, '_');
+
+                    // TODO -- this needs some fixin'
+                    //hover_id = hover_id.replace(/\./g,'_');
+                    //hover_id = hover_id.replace(/\//g, '_');
+                    //hover_id = hover_id.replace(/\(/g, '_');
+                    //hover_id = hover_id.replace(/\)/g, '_');
+                    hover_id = hover_id.replace(new RegExp('\\.', 'g'),'_');
 
                     jQuery(domElement)
                       .mouseover(

File tw2/jit/widgets/core.py

             q_str = urllib.urlencode(self.url_kw)
             self.url += '?' + q_str
 
+
+        def replacements(k, v):
+            """ Generator that yields key, value pairs where the value has had
+            all of its custom jsVariables replaced.
+
+            TODO - this could be wildly optimized.
+            """
+
+            src = v.src
+
+            for var, fun in self.jsVariables.iteritems():
+                if not var in src:
+                    continue
+                res = fun(self)
+                if not isinstance(res, basestring):
+                    res = twc.encoder.encode(res)
+
+                src = src.replace(var, res)
+
+            yield k, twc.JSSymbol(src=src)
+
         # TODO -- this should be overhauled to not use JSSymbol
         for k, v in self.attrs.iteritems():
             if type(v) in [twc.JSSymbol]:
-                for var, fun in self.jsVariables.iteritems():
-                    if not var in v.src:
-                        continue
-                    res = fun(self)
-                    if not isinstance(res, basestring):
-                        res = twc.encoder.encode(res)
+                for key_to_replace, new_value in replacements(k, v):
+                    self.attrs[key_to_replace] = new_value
 
-                    self.attrs[k] = twc.JSSymbol(
-                        src=self.attrs[k].src.replace(var, res))
+            if k == 'Events':
+                for _k, _v in v.items():
+                    if type(_v) in [twc.JSSymbol]:
+                        for key_to_replace, new_value in replacements(_k, _v):
+                            self.attrs['Events'][key_to_replace] = new_value
+
 
         setupcall = js_function('setupTW2JitWidget')(
             self.jitClassName,

File tw2/jit/widgets/tree.py

         '(dict) Of the form Options.Events in the jit docs.',
         default={
             'enable': True,
-            'onClick': JSSymbol(src='(function(node) {if (node) {jitwidget.enter(node);}})'),
-            'onRightClick': JSSymbol(src='(function() {jitwidget.out();})'),
+            'onClick': JSSymbol(src='(function(node) {if (node) {$$jitwidget.enter(node);}})'),
+            'onRightClick': JSSymbol(src='(function() {$$jitwidget.out();})'),
         }, attribute=True)
 
     # TODO - Node.Type