Revision: 4846 http://sourceforge.net/p/vexi/code/4846 Author: mkpg2 Date: 2016-03-16 15:27:46 +0000 (Wed, 16 Mar 2016) Log Message: ----------- Improve/fix. Datetime entry. Typing dates was not working properly in datetime. After pressing enter it would always revert to the default value when not yet set. Improve/Fix. Timefield. Was possible to hours >24.
Modified Paths: -------------- branches/vexi3/org.vexi-library.value/src/main/java/org/vexi/value/Date.java branches/vexi3/org.vexi-library.value/src/test/java/org/vexi/value/TestDate.java 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/datetime.t branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/timefield.t Modified: branches/vexi3/org.vexi-library.value/src/main/java/org/vexi/value/Date.java =================================================================== --- branches/vexi3/org.vexi-library.value/src/main/java/org/vexi/value/Date.java 2016-02-21 17:28:51 UTC (rev 4845) +++ branches/vexi3/org.vexi-library.value/src/main/java/org/vexi/value/Date.java 2016-03-16 15:27:46 UTC (rev 4846) @@ -211,7 +211,8 @@ public Date tryParseString(String s){ String s1 = s.replaceAll("[^\\d]+", "/"); String[] partStrs = s1.split("/"); - if(partStrs.length<1) return null; + if(partStrs.length!=partIds.length) return null; + int[] parts = new int[partIds.length]; for(int i=0; i<partIds.length; i++){ int partId = partIds[i]; Modified: branches/vexi3/org.vexi-library.value/src/test/java/org/vexi/value/TestDate.java =================================================================== --- branches/vexi3/org.vexi-library.value/src/test/java/org/vexi/value/TestDate.java 2016-02-21 17:28:51 UTC (rev 4845) +++ branches/vexi3/org.vexi-library.value/src/test/java/org/vexi/value/TestDate.java 2016-03-16 15:27:46 UTC (rev 4846) @@ -11,15 +11,24 @@ assertEquals(expected, d.format()); } + public void testParse() throws ValueException { + assertParse("2016-02-22", "2016-02-22"); + assertParse("2004-4-3","2004-04-03"); assertParse("2001-01"); assertParse("2002-2","2002-02"); assertParse("2003q1"); assertParse("2003wk50"); + } + public void testTryParse() throws ValueException { + assertNull(Date.getScheme("YW").tryParseString("2016-02-22")); + assertEquals("2016-02-22", ""+Date.getScheme("YMD").tryParseString("2016-02-22")); + } + public void testWithAndAs() throws ValueException { Date d = Date.newY(2000); assertEquals("2000", d.format()); 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-02-21 17:28:51 UTC (rev 4845) +++ branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/datefield.t 2016-03-16 15:27:46 UTC (rev 4846) @@ -49,6 +49,7 @@ thisbox.yearview = $year; thisbox.sep1 = $sep1; thisbox.sep2 = $sep2; + thisbox.editbox = $edit.v_edit; thisbox.valuetype = "string"; Modified: branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/datetime.t =================================================================== --- branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/datetime.t 2016-02-21 17:28:51 UTC (rev 4845) +++ branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/datetime.t 2016-03-16 15:27:46 UTC (rev 4846) @@ -48,20 +48,23 @@ switch(v){ case "enter": if(value==null){ - if($date.value!=null){ - $time.setDefault(); - }else if($time.value!=null){ - $date.setDefault(); - }else{ - thisbox.value = castValue(thisbox["default"]); - } + var td = $date.editbox.text; + var tt = $time.editbox.text; + if(!$date.value and !$time.value and !td and !tt){ + thisbox.value = castValue(thisbox["default"]); + }else{ + $date.editbox.KeyPressed = "enter"; + $time.editbox.KeyPressed = "enter"; + } return; } break; case "back_space": case "delete": $date.value = null; + $date.editbox.text = null; $time.value = null; + $time.editbox.text = null; return; } 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-02-21 17:28:51 UTC (rev 4845) +++ branches/vexi3/org.vexi-vexi.widgets/src_main/org/vexi/theme/classic/timefield.t 2016-03-16 15:27:46 UTC (rev 4846) @@ -1,3 +1,4 @@ + <!-- Copyright 2013 - see COPYING for details [LGPL] --> <vexi xmlns:ui="vexi://ui" @@ -35,6 +36,7 @@ </ui:box> thisbox.v_init = static.init; + thisbox.editbox = $edit.v_edit; thisbox.v_textbox = false; thisbox.format = (conf.settings..time_use24hours==false)?"12":"24"; @@ -208,25 +210,22 @@ } else { h = vexi.string.parseInt(s0, 10); m = vexi.string.parseInt(s1, 10); + } + while(m>60){ m-=60; h+=1; } + while(h>24){ h-=24; } - while(m>60){ m-=60; h+=1; } - while(h>24){ h-=24; } - - //var s = vexi.string.parseInt(s2, 10); - // sanitize values - if (h==24 or 0>h) h = 0; - if (h>23) h = 23; - if (m>59) m = 59; - if (0>m) m = 0; - //if (s>59) s = 59; - //if (0>s) s = 0; - // assign - //trapee.secs = s; - } - + // sanitize values + if (h==24 or 0>h) h = 0; + if (h>23) h = 23; + if (m>59) m = 59; + if (0>m) m = 0; + + if (12> h and pm) { h += 12; } + + _hours = h; _mins = m; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140 _______________________________________________ Vexi-svn mailing list Vexi-svn@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/vexi-svn