Revision: 4879
          http://sourceforge.net/p/vexi/code/4879
Author:   mkpg2
Date:     2016-08-12 09:24:15 +0000 (Fri, 12 Aug 2016)
Log Message:
-----------
Fix regressions. Date widgets needed to be updated to use KeyTyped.

Modified Paths:
--------------
    
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/datefield.t
    
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/datepicker.t
    
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/monthfield.t
    
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/quarterfield.t
    
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/timefield.t
    
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/weekfield.t
    
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/yearfield.t
    branches/vexi3/org.vexi-vexi.widgets/src_poke/poke/widgets/datetime.t
    branches/vexi3/org.vexi-vexi.widgets/src_poke/poke/widgets/timefield.t

Modified: 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/datefield.t
===================================================================
--- 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/datefield.t
    2016-08-07 16:04:12 UTC (rev 4878)
+++ 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/datefield.t
    2016-08-12 09:24:15 UTC (rev 4879)
@@ -170,24 +170,23 @@
             $dateview.maxheight = v ? 0 : vexi.ui.maxdim;
         }
         
+        $edit.v_edit.KeyTyped ++= function(v) {
+            var x = v.charCodeAt(0);
+            if ((65>x or x>90) and (97>x or x>122)) {
+                // accept all non-alpha character presses
+                cascade = v;
+            }
+        };
+        
+        
         $edit.v_edit.KeyPressed ++= function(v) {
-            if (v.length>1) {
-                if (v == "escape") {
-                    $editview.display = false;
-                } else if (v == "enter") {
-                    editToValue();
-                } else {
-                    cascade = v;
-                }
+            if (v == "escape") {
+                $editview.display = false;
+            } else if (v == "enter") {
+                editToValue();
             } else {
-                var x = v.charCodeAt(0);
-                if ((65>x or x>90) and (97>x or x>122)) {
-                    // accept all non-alpha character presses
-                    cascade = v;
-                }
+                cascade = v;
             }
-            // cascades already decided
-            return;
         }
         
         thisbox.enterRight = function(){
@@ -195,6 +194,24 @@
                thisbox.selected = $dateview[$dateview.numchildren-1];       
         };
         
+        thisbox.KeyTyped ++= function(v) {
+                       if (popped) {
+                // delegate to datepicker if it's open
+                $datepicker.KeyTyped = v;
+                return;
+            }
+            if ($editview.display) {
+                // delegate to editview if it's open
+                $edit.v_edit.KeyTyped = v;
+                return;
+            }
+               var x = v.charCodeAt(0);
+            if (x>47 and 58>x) {
+                $editview.display = true;
+                $edit.v_edit.KeyTyped = v;
+            }
+               };
+
         
         thisbox.KeyPressed ++= function(v) {
             if (popped) {
@@ -207,58 +224,49 @@
                 $edit.v_edit.KeyPressed = v;
                 return;
             }
-            if (v.length>1) {
-                // timeview still on display
-                if(selected==null){
-                       selected = $dateview[si-2];
-                       return;
+            // timeview still on display
+            if(selected==null){
+               selected = $dateview[si-2];
+               return;
+            }
+            
+            var si = dateview.indexof(selected);
+            switch(v) {
+            case "left":
+                if (si>0) {
+                    selected = $dateview[si-2];
                 }
-                
-                var si = dateview.indexof(selected);
-                switch(v) {
-                case "left":
-                    if (si>0) {
-                        selected = $dateview[si-2];
-                    }
-                    break;
-                case "right":
-                    if (4>si) {
-                        selected = $dateview[si+2];
-                    }else{
-                       if(exitRight){
-                               exitRight();
-                       }
-                    }
-                    break;
-                case "up":
-                    $more.action = true;
-                    break;
-                case "down":
-                    $less.action = true;
-                    break;
-                case "space":
-                    $select.action = true;
-                    break;
-                case "enter":
-                    if (value==null) {
-                        setDefault();
-                    } else {
-                        value = value;
-                    }
-                    break;
-                case "back_space":
-                case "delete":
-                    value = null;
-                    break;
+                break;
+            case "right":
+                if (4>si) {
+                    selected = $dateview[si+2];
+                }else{
+                       if(exitRight){
+                               exitRight();
+                       }
                 }
-            } else {
-                var x = v.charCodeAt(0);
-                if (x>47 and 58>x) {
-                    $editview.display = true;
-                    $edit.v_edit.KeyPressed = v;
+                break;
+            case "up":
+                $more.action = true;
+                break;
+            case "down":
+                $less.action = true;
+                break;
+            case "space":
+                $select.action = true;
+                break;
+            case "enter":
+                if (value==null) {
+                    setDefault();
+                } else {
+                    value = value;
                 }
-                return;
-            }
+                break;
+            case "back_space":
+            case "delete":
+                value = null;
+                break;
+            }            
         }
         
         // initialize

Modified: 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/datepicker.t
===================================================================
--- 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/datepicker.t
   2016-08-07 16:04:12 UTC (rev 4878)
+++ 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/datepicker.t
   2016-08-12 09:24:15 UTC (rev 4879)
@@ -108,7 +108,7 @@
         
         /** test and return whether date v represents the current date */
         const isCurrent = function(v) {
-            return date.day!=null and year==showyear and month==showmonth and 
day==v;
+            return date?.day!=null and year==showyear and month==showmonth and 
day==v;
         }
         
         var today; // vexi.js.Date

Modified: 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/monthfield.t
===================================================================
--- 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/monthfield.t
   2016-08-07 16:04:12 UTC (rev 4878)
+++ 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/monthfield.t
   2016-08-12 09:24:15 UTC (rev 4879)
@@ -137,26 +137,43 @@
             $dateview.maxheight = v ? 0 : vexi.ui.maxdim;
         }
         
+        $edit.v_edit.KeyTyped ++= function(v) {
+            var x = v.charCodeAt(0);
+            if ((65>x or x>90) and (97>x or x>122)) {
+                // accept all non-alpha character presses
+                cascade = v;
+            }
+        }
+        
         $edit.v_edit.KeyPressed ++= function(v) {
-            if (v.length>1) {
-                if (v == "escape") {
-                    $editview.display = false;
-                } else if (v == "enter") {
-                    editToValue();
-                } else {
-                    cascade = v;
-                }
+            if (v == "escape") {
+                $editview.display = false;
+            } else if (v == "enter") {
+                editToValue();
             } else {
-                var x = v.charCodeAt(0);
-                if ((65>x or x>90) and (97>x or x>122)) {
-                    // accept all non-alpha character presses
-                    cascade = v;
-                }
+                cascade = v;
             }
-            // cascades already decided
-            return;
+        };
+        
+        thisbox.KeyTyped ++= function(v) {
+            if (popped) {
+                // delegate to datepicker if it's open
+                $datepicker.KeyTyped = v;
+                return;
+            }
+            if ($editview.display) {
+                // delegate to editview if it's open
+                $edit.v_edit.KeyTyped = v;
+                return;
+            }
+           var x = v.charCodeAt(0);
+            if (x>47 and 58>x) {
+                $editview.display = true;
+                $edit.v_edit.KeyTyped = v;
+            }
+         
         }
-        
+                
         thisbox.KeyPressed ++= function(v) {
             if (popped) {
                 // delegate to datepicker if it's open
@@ -168,50 +185,41 @@
                 $edit.v_edit.KeyPressed = v;
                 return;
             }
-            if (v.length>1) {
-                if(selected==null) return;
-                // timeview still on display
-                var si = dateview.indexof(selected);
-                switch(v) {
-                case "left":
-                    if (si>0) {
-                        selected = $dateview[si-2];
-                    }
-                    break;
-                case "right":
-                    if (2>si) {
-                        selected = $dateview[si+2];
-                    }
-                    break;
-                case "up":
-                    $more.action = true;
-                    break;
-                case "down":
-                    $less.action = true;
-                    break;
-                case "space":
-                    $select.action = true;
-                    break;
-                case "enter":
-                    if (value==null) {
-                        value = vexi.js.Date.today.as("YM");
-                    } else {
-                        value = value;
-                    }
-                    break;
-                case "back_space":
-                case "delete":
-                    value = null;
-                    break;
+            if(selected==null) return;
+            // timeview still on display
+            var si = dateview.indexof(selected);
+            switch(v) {
+            case "left":
+                if (si>0) {
+                    selected = $dateview[si-2];
                 }
-            } else {
-                var x = v.charCodeAt(0);
-                if (x>47 and 58>x) {
-                    $editview.display = true;
-                    $edit.v_edit.KeyPressed = v;
+                break;
+            case "right":
+                if (2>si) {
+                    selected = $dateview[si+2];
                 }
-                return;
-            }
+                break;
+            case "up":
+                $more.action = true;
+                break;
+            case "down":
+                $less.action = true;
+                break;
+            case "space":
+                $select.action = true;
+                break;
+            case "enter":
+                if (value==null) {
+                    value = vexi.js.Date.today.as("YM");
+                } else {
+                    value = value;
+                }
+                break;
+            case "back_space":
+            case "delete":
+                value = null;
+                break;
+            }            
         }
         
         // initialize

Modified: 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/quarterfield.t
===================================================================
--- 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/quarterfield.t
 2016-08-07 16:04:12 UTC (rev 4878)
+++ 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/quarterfield.t
 2016-08-12 09:24:15 UTC (rev 4879)
@@ -137,26 +137,46 @@
             $dateview.maxheight = v ? 0 : vexi.ui.maxdim;
         }
         
+        $edit.v_edit.KeyTyped ++= function(v) {        
+            var x = v.charCodeAt(0);
+            if ((65>x or x>90) and (97>x or x>122)) {
+                // accept all non-alpha character presses
+                cascade = v;
+            }
+            var text = $edit.v_edit.text;
+            if(v=="q" and text.indexOf(v)==-1){
+                cascade = v;
+            }   
+        }
+        
         $edit.v_edit.KeyPressed ++= function(v) {
-            if (v.length>1) {
-                if (v == "escape") {
-                    $editview.display = false;
-                } else if (v == "enter") {
-                    editToValue();
-                } else {
-                    cascade = v;
-                }
+            if (v == "escape") {
+                $editview.display = false;
+            } else if (v == "enter") {
+                editToValue();
             } else {
-                var x = v.charCodeAt(0);
-                if ((65>x or x>90) and (97>x or x>122)) {
-                    // accept all non-alpha character presses
-                    cascade = v;
-                }
+                cascade = v;
             }
-            // cascades already decided
-            return;
         }
         
+        thisbox.KeyTyped ++= function(v) {
+            if (popped) {
+                // delegate to datepicker if it's open
+                $datepicker.KeyTyped = v;
+                return;
+            }
+            if ($editview.display) {
+                // delegate to editview if it's open
+                $edit.v_edit.KeyTyped = v;
+                return;
+            }
+            var x = v.charCodeAt(0);
+            if (x>47 and 58>x) {
+                $editview.display = true;
+                $edit.v_edit.KeyTyped = v;
+            }
+        }
+
         thisbox.KeyPressed ++= function(v) {
             if (popped) {
                 // delegate to datepicker if it's open
@@ -168,51 +188,43 @@
                 $edit.v_edit.KeyPressed = v;
                 return;
             }
-            if (v.length>1) {
-                if(selected==null) return;
-                // timeview still on display
-                var si = dateview.indexof(selected);
-                switch(v) {
-                case "left":
-                    if (si>0) {
-                        selected = $dateview[si-2];
-                    }
-                    break;
-                case "right":
-                    if (2>si) {
-                        selected = $dateview[si+2];
-                    }
-                    break;
-                case "up":
-                    $more.action = true;
-                    break;
-                case "down":
-                    $less.action = true;
-                    break;
-                case "space":
-                    $select.action = true;
-                    break;
-                case "enter":
-                    if (value==null) {
-                        value = vexi.js.Date.today.as("YQ");
-                    } else {
-                        value = value;
-                    }
-                    break;
-                case "back_space":
-                case "delete":
-                    value = null;
-                    break;
+            if(selected==null) return;
+            // timeview still on display
+            var si = dateview.indexof(selected);
+            switch(v) {
+            case "left":
+                if (si>0) {
+                    selected = $dateview[si-2];
                 }
-            } else {
-                var x = v.charCodeAt(0);
-                if (x>47 and 58>x) {
-                    $editview.display = true;
-                    $edit.v_edit.KeyPressed = v;
+                break;
+            case "right":
+                if (2>si) {
+                    selected = $dateview[si+2];
                 }
-                return;
-            }
+                break;
+            case "up":
+                $more.action = true;
+                break;
+            case "down":
+                $less.action = true;
+                break;
+            case "space":
+                $select.action = true;
+                break;
+            case "enter":
+                if (value==null) {
+                    value = vexi.js.Date.today.as("YQ");
+                } else {
+                    value = value;
+                }
+                break;
+            case "back_space":
+            case "delete":
+                value = null;
+                break;
+            }            
         }
+
         
         // initialize
         thisbox.selected = $quarter;

Modified: 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/timefield.t
===================================================================
--- 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/timefield.t
    2016-08-07 16:04:12 UTC (rev 4878)
+++ 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/timefield.t
    2016-08-12 09:24:15 UTC (rev 4879)
@@ -390,82 +390,84 @@
             $timeview.maxheight = v ? 0 : vexi.ui.maxdim;
         }
         
+        $edit.v_edit.KeyTyped ++= function(v) {
+            var x = v.charCodeAt(0);
+            if (x>47 and 58>x) {
+                // accept numbers
+                cascade = v;
+            } else if (v=='p' or v=='P') {
+                // set PM period using p/P
+                $editperiod.text = "PM";
+            } else if (v=='a' or v=='A') {
+                // set AM period using a/A
+                $editperiod.text = "AM";
+            } else if ((65>x or x>90) and (97>x or x>122)) {
+                // accept all other alpha-character presses
+                cascade = v;
+            }    
+        };
+        
         $edit.v_edit.KeyPressed ++= function(v) {
-            if (v.length>1) {
-                if (v == "escape") {
-                    $editview.display = false;
-                } else if (v == "enter") {
-                    editToValue();
-                } else {
-                    cascade = v;
-                }
+            if (v == "escape") {
+                $editview.display = false;
+            } else if (v == "enter") {
+                editToValue();
             } else {
-                var x = v.charCodeAt(0);
-                if (x>47 and 58>x) {
-                    // accept numbers
-                    cascade = v;
-                } else if (v=='p' or v=='P') {
-                    // set PM period using p/P
-                    $editperiod.text = "PM";
-                } else if (v=='a' or v=='A') {
-                    // set AM period using a/A
-                    $editperiod.text = "AM";
-                } else if ((65>x or x>90) and (97>x or x>122)) {
-                    // accept all other alpha-character presses
-                    cascade = v;
-                }
+                cascade = v;
             }
-            // cascade only occurs 
-            return;
         }
         
+        thisbox.KeyTyped ++= function(v) {
+               if ($editview.display) {
+                // delegate to editview if it's open
+                $edit.v_edit.KeyTyped = v;
+                return;
+            }
+            $editview.display = true;
+            var x = v.charCodeAt(0);
+            if (x>47 and 58>x or v=='.' or v==':') {
+                $edit.v_edit.KeyTyped = v;
+            } else if (v=='p' or v=='P') {
+                $editperiod.text = "PM";
+            } else if (v=='a' or v=='A') {
+                $editperiod.text = "AM";
+            }
+        };
+        
         thisbox.KeyPressed ++= function(v) {
             if ($editview.display) {
                 // delegate to editview if it's open
                 $edit.v_edit.KeyPressed = v;
                 return;
             }
-            if (v.length>1) {
-                // timeview still on display
-                switch(v) {
-                case "left":
-                       if(selected==$hours and exitLeft){
-                               exitLeft();
-                       }else{
-                       selected = (selected==$period?$mins:$hours);
-                    }
-                    break;
-                case "right":
-                    selected = (selected==$hours?$mins:$period);
-                    break;
-                case "up":
-                    $more.action = true;
-                    break;
-                case "down":
-                    $less.action = true;
-                    break;
-                case "enter":
-                    if (value==null) {
-                       setDefault();
-                    }
-                    break;
-                case "back_space":
-                case "delete":
-                    value = null;
-                    break;
+            // timeview still on display
+            switch(v) {
+            case "left":
+               if(selected==$hours and exitLeft){
+                       exitLeft();
+               }else{
+                       selected = (selected==$period?$mins:$hours);
                 }
-            } else {
-                $editview.display = true;
-                var x = v.charCodeAt(0);
-                if (x>47 and 58>x or v=='.' or v==':') {
-                    $edit.v_edit.KeyPressed = v;
-                } else if (v=='p' or v=='P') {
-                    $editperiod.text = "PM";
-                } else if (v=='a' or v=='A') {
-                    $editperiod.text = "AM";
+                break;
+            case "right":
+                selected = (selected==$hours?$mins:$period);
+                break;
+            case "up":
+                $more.action = true;
+                break;
+            case "down":
+                $less.action = true;
+                break;
+            case "enter":
+                if (value==null) {
+                       setDefault();
                 }
-                return;
-            }
+                break;
+            case "back_space":
+            case "delete":
+                value = null;
+                break;
+            }            
         }
         
         // initialize

Modified: 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/weekfield.t
===================================================================
--- 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/weekfield.t
    2016-08-07 16:04:12 UTC (rev 4878)
+++ 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/weekfield.t
    2016-08-12 09:24:15 UTC (rev 4879)
@@ -48,7 +48,20 @@
         thisbox.v_textbox = false;
         
         thisbox.text ++= .datefield..textRead;
-        thisbox.text ++= function(v){ 
+        thisbox.text ++= function(v){
+               trace(v);       
+               if(3>v.length){
+                       var i=0;
+                       var digits = true;
+                       for (var i=0; v.length>i; i++){
+                               var c = c = v.charCodeAt(i);
+                               trace(c);
+                               digits = digits and c>47 and 58>c; 
+                       } 
+                       if(digits){
+                               v = vexi.js.Date.today.year+"wk"+v;
+                       }
+               }               
             trapee.value = Date.tryParseString(v, "YW");
         };
         
@@ -149,31 +162,48 @@
             }
             $dateview.maxheight = v ? 0 : vexi.ui.maxdim;
         }
+
+        $edit.v_edit.KeyTyped ++= function(v) {
+            var x = v.charCodeAt(0);
+            if ((65>x or x>90) and (97>x or x>122)) {
+                // accept all non-alpha character presses
+                cascade = v;
+            }
+            var text = $edit.v_edit.text;
+            if(v=="w" || v=="k" and text.indexOf(v)==-1){
+                cascade = v;
+            }        
+        };
+
         
         $edit.v_edit.KeyPressed ++= function(v) {
-            if (v.length>1) {
-                if (v == "escape") {
-                    $editview.display = false;
-                } else if (v == "enter") {
-                    editToValue();
-                } else {
-                    cascade = v;
-                }
+            if (v == "escape") {
+                $editview.display = false;
+            } else if (v == "enter") {
+                editToValue();
             } else {
-                var x = v.charCodeAt(0);
-                if ((65>x or x>90) and (97>x or x>122)) {
-                    // accept all non-alpha character presses
-                    cascade = v;
-                }
-                var text = $edit.v_edit.text;
-                if(v=="w" || v=="k" and text.indexOf(v)==-1){
-                    cascade = v;
-                }
+                cascade = v;
             }
-            // cascades already decided
-            return;
         }
         
+        thisbox.KeyTyped ++= function(v) {
+            if (popped) {
+                // delegate to datepicker if it's open
+                $datepicker.KeyTyped = v;
+                return;
+            }
+            if ($editview.display) {
+                // delegate to editview if it's open
+                $edit.v_edit.KeyTyped = v;
+                return;
+            }
+            var x = v.charCodeAt(0);
+            if (x>47 and 58>x) {
+                $editview.display = true;
+                $edit.v_edit.KeyTyped = v;
+            }
+        };
+       
         thisbox.KeyPressed ++= function(v) {
             if (popped) {
                 // delegate to datepicker if it's open
@@ -185,50 +215,42 @@
                 $edit.v_edit.KeyPressed = v;
                 return;
             }
-            if (v.length>1) {
-                // timeview still on display
-                var si = dateview.indexof(selected);
-                switch(v) {
-                case "left":
-                    if (si>0) {
-                        selected = $dateview[si-2];
-                    }
-                    break;
-                case "right":
-                    if (2>si) {
-                        selected = $dateview[si+2];
-                    }
-                    break;
-                case "up":
-                    $more.action = true;
-                    break;
-                case "down":
-                    $less.action = true;
-                    break;
-                case "space":
-                    $select.action = true;
-                    break;
-                case "enter":
-                    if (value==null) {
-                        value = vexi.js.Date.today.as("YW");
-                    } else {
-                        value = value;
-                    }
-                    break;
-                case "back_space":
-                case "delete":
-                    value = null;
-                    break;
+            // timeview still on display
+            var si = dateview.indexof(selected);
+            switch(v) {
+            case "left":
+                if (si>0) {
+                    selected = $dateview[si-2];
                 }
-            } else {
-                var x = v.charCodeAt(0);
-                if (x>47 and 58>x) {
-                    $editview.display = true;
-                    $edit.v_edit.KeyPressed = v;
+                break;
+            case "right":
+                if (2>si) {
+                    selected = $dateview[si+2];
                 }
-                return;
-            }
+                break;
+            case "up":
+                $more.action = true;
+                break;
+            case "down":
+                $less.action = true;
+                break;
+            case "space":
+                $select.action = true;
+                break;
+            case "enter":
+                if (value==null) {
+                    value = vexi.js.Date.today.as("YW");
+                } else {
+                    value = value;
+                }
+                break;
+            case "back_space":
+            case "delete":
+                value = null;
+                break;
+            }            
         }
+       
         
         // initialize
         thisbox.selected = $year;

Modified: 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/yearfield.t
===================================================================
--- 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/yearfield.t
    2016-08-07 16:04:12 UTC (rev 4878)
+++ 
branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/yearfield.t
    2016-08-12 09:24:15 UTC (rev 4879)
@@ -44,8 +44,8 @@
         thisbox.v_popbox  = $popbox;
         thisbox.v_textbox = false;
         
-        thisbox.text ++= .datefield..textRead;
-        thisbox.text ++= .datefield..textWrite;
+        thisbox.text ++= static.textRead;
+        thisbox.text ++= static.textWrite;
         
         thisbox.value; ///> vexi.js.Date
 
@@ -131,26 +131,42 @@
             }
             $dateview.maxheight = v ? 0 : vexi.ui.maxdim;
         }
-        
+
+        $edit.v_edit.KeyTyped ++= function(v) {
+            var x = v.charCodeAt(0);
+            if ((65>x or x>90) and (97>x or x>122)) {
+                // accept all non-alpha character presses
+                cascade = v;
+            }            
+        };
+
         $edit.v_edit.KeyPressed ++= function(v) {
-            if (v.length>1) {
-                if (v == "escape") {
-                    $editview.display = false;
-                } else if (v == "enter") {
-                    editToValue();
-                } else {
-                    cascade = v;
-                }
+            if (v == "escape") {
+                $editview.display = false;
+            } else if (v == "enter") {
+                editToValue();
             } else {
-                var x = v.charCodeAt(0);
-                if ((65>x or x>90) and (97>x or x>122)) {
-                    // accept all non-alpha character presses
-                    cascade = v;
-                }
+                cascade = v;
+            }            
+        }
+
+        thisbox.KeyTyped ++= function(v) {
+            if (popped) {
+                // delegate to datepicker if it's open
+                $datepicker.KeyTyped = v;
+                return;
             }
-            // cascades already decided
-            return;
-        }
+            if ($editview.display) {
+                // delegate to editview if it's open
+                $edit.v_edit.KeyTyped = v;
+                return;
+            }
+            var x = v.charCodeAt(0);
+            if (x>47 and 58>x) {
+                $editview.display = true;
+                $edit.v_edit.KeyTyped = v;
+            }            
+        };
         
         thisbox.KeyPressed ++= function(v) {
             if (popped) {
@@ -163,49 +179,40 @@
                 $edit.v_edit.KeyPressed = v;
                 return;
             }
-            if (v.length>1) {
-                if(selected==null) return;
-                // timeview still on display
-                var si = dateview.indexof(selected);
-                switch(v) {
-                case "left":
-                    if (si>0) {
-                        selected = $dateview[si-2];
-                    }
-                    break;
-                case "right":
-                    if (2>si) {
-                        selected = $dateview[si+2];
-                    }
-                    break;
-                case "up":
-                    $more.action = true;
-                    break;
-                case "down":
-                    $less.action = true;
-                    break;
-                case "space":
-                    $select.action = true;
-                    break;
-                case "enter":
-                    if (value==null) {
-                        value = vexi.js.Date.today.as("Y");
-                    } else {
-                        value = value;
-                    }
-                    break;
-                case "back_space":
-                case "delete":
-                    value = null;
-                    break;
+            if(selected==null) return;
+            // timeview still on display
+            var si = dateview.indexof(selected);
+            switch(v) {
+            case "left":
+                if (si>0) {
+                    selected = $dateview[si-2];
                 }
-            } else {
-                var x = v.charCodeAt(0);
-                if (x>47 and 58>x) {
-                    $editview.display = true;
-                    $edit.v_edit.KeyPressed = v;
+                break;
+            case "right":
+                if (2>si) {
+                    selected = $dateview[si+2];
                 }
-                return;
+                break;
+            case "up":
+                $more.action = true;
+                break;
+            case "down":
+                $less.action = true;
+                break;
+            case "space":
+                $select.action = true;
+                break;
+            case "enter":
+                if (value==null) {
+                    value = vexi.js.Date.today.as("Y");
+                } else {
+                    value = value;
+                }
+                break;
+            case "back_space":
+            case "delete":
+                value = null;
+                break;
             }
         }
         
@@ -250,8 +257,7 @@
     }
     
     static.textWrite = function(v) {
-        var d = new vexi.js.Date();
-        trapee.value = d.tryParseString(v);
+        trapee.value = vexi.js.Date.tryParseString(v, "Y");
     }
     
 </vexi>

Modified: branches/vexi3/org.vexi-vexi.widgets/src_poke/poke/widgets/datetime.t
===================================================================
--- branches/vexi3/org.vexi-vexi.widgets/src_poke/poke/widgets/datetime.t       
2016-08-07 16:04:12 UTC (rev 4878)
+++ branches/vexi3/org.vexi-vexi.widgets/src_poke/poke/widgets/datetime.t       
2016-08-12 09:24:15 UTC (rev 4879)
@@ -18,14 +18,14 @@
                 <w:quarterfield fill="#ffff99" />
                        <w:yearfield fill="#ffff99" />
             </ui:box>
-            <ui:box id="set2" orient="vertical">
+            <ui:box id="set2" orient="vertical">-->
                 <w:timefield />
                 <w:datefield />
                 <w:weekfield />
                 <w:datetime />
                 <w:monthfield />
                 <w:quarterfield />
-                <w:yearfield />-->
+                <w:yearfield />
             </ui:box>
         </ui:box>
         <ui:box>
@@ -51,10 +51,11 @@
         
         var printValueTrap = function(v){
             cascade = v;
-            vexi.trace([typeof v, v]);
-            if(v!=null and (typeof v)!="instant"){
-               trace(new vexi.js.Exception());
-            }
+            trace(v);
+//            vexi.trace([typeof v, v]);
+//            if(v!=null and (typeof v)!="instant"){
+//             trace(new vexi.js.Exception());
+//            }
         };
         
         for (var i,b in $set1)

Modified: branches/vexi3/org.vexi-vexi.widgets/src_poke/poke/widgets/timefield.t
===================================================================
--- branches/vexi3/org.vexi-vexi.widgets/src_poke/poke/widgets/timefield.t      
2016-08-07 16:04:12 UTC (rev 4878)
+++ branches/vexi3/org.vexi-vexi.widgets/src_poke/poke/widgets/timefield.t      
2016-08-12 09:24:15 UTC (rev 4879)
@@ -3,11 +3,16 @@
 <vexi xmlns:ui="vexi://ui" xmlns:w="vexi.widget">
     <w:surface />
     <ui:box orient="vertical">
+       
        <ui:Box shrink="true">
                <w:timefield id="time1" />
                <ui:Box shrink="true" id="value1"/>
         </ui:Box>
-        
+        $time1.value ++= function(v){
+               cascade = v; $value1.text = v; 
+        };
+                
+<!--        
         <ui:Box shrink="true">
                <w:timefield id="time2" default="00:00" loop="false"/>
                <ui:Box shrink="true" id="value2"/>
@@ -28,18 +33,15 @@
                <ui:Box shrink="true" id="value5"/>
         </ui:Box>
                 
-        $time1.value ++= function(v){
-               trace(new vexi.js.Exception(v)); 
-               cascade = v; $value1.text = v; 
-        };
+        
         $time2.value ++= function(v){ cascade = v; $value2.text = v; };
         $time3.value ++= function(v){ cascade = v; $value3.text = v; };
         $time4.value ++= function(v){ cascade = v; $value4.text = v; };
         $time5.value ++= function(v){ cascade = v; $value5.text = v; };
         
+-->        
         
         
-        
         vexi.ui.frame = thisbox;
         
     </ui:box>

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. http://sdm.link/zohodev2dev
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to