[Laszlo-dev] [Laszlo-checkins] r11229 - openlaszlo/trunk/demos/calendar
P T Withington
ptw at pobox.com
Thu Sep 25 14:47:33 PDT 2008
You have a good point, and I think it would be great if Josh could try
to summarize the nature of the changes he has had to make that were
not outright bug fixes. If there are changes that reveal a lack of
compatibility, we need to evaluate those.
But, here's a question back at you: both the DHTML runtime and the
SWF9 runtime are less forgiving that the swf8 runtime. For instance,
in swf8, you can call a non-existent function, or access a non-
existent variable, and it just happily moves on. Both DHTML and SWF9
consider these fatal errors. In a debug compile of swf8, you will get
an error in the debugger, but in DHTML and SWF9, your program will
just halt. We chose _not_ to try to emulate the lenience of swf8 in
the other runtimes as we felt it would impose too much overhead. (I
actually tried it in DHTML, but when yI did, the program was orders of
magnitude slower -- too slow to even consider enabling it even in a
debug build.) Was that not the right choice?
I think that _some_ of the fixes that are being made are being made
expediently to allow the applications to run at all, so they can be
more thoroughly tested for other regressions, since most of our QA
test plans involve running through the sample applications. If the
application will not run at all, due to one of the errors I describe
above, we can't do much testing.
There is one other category of fixes that I know of that we have an
outstanding task on: method signature mismatch. In LZX to date,
there was no enforcement of overriding methods having to have
equivalent method signatures, and no enforcement requiring the
arguments to a method matching the parameters. The swf9 compiler is
very strict about this (which has actually revealed a number of
bugs). Our plan right now is to make the tag compiler 'fill in the
gaps' when translating from LZX to JS, if it can, to keep the same
flexibility we have always had. But again, in the short term, we are
fixing these mis-matches in the test and demo applications so that we
can use them for QA.
On 2008-09-25, at 14:43EDT, David Temkin wrote:
> Question about all of these demo app bugs that are being fixed on an
> ongoing basis...
>
> The only code that I'd expect to change in the demo apps are the
> comparatively few areas where LZX APIs are being changed. And yet
> that's not what this looks like. It seems that either backward
> compatibility is not what it's cracked up to be, or that pre-
> existing bugs in the apps are being fixed (i.e., these are not
> regressions).
>
> What are the app-level changes here, and why specifically are they
> needed? Shouldn't the app continue to work from release to release
> without these regressions?
>
> Developers using 4.2 are going to run into the same issues we are
> when updating old code. If APIs, or behaviors/tolerance of existing
> APIs are changing beyond what's been explicitly discussed, let's get
> those out in the open.
>
> - D.
>
>
> On Sep 25, 2008, at 9:42 AM, jcrowley at openlaszlo.org wrote:
>
>> Author: jcrowley
>> Date: 2008-09-25 09:42:28 -0700 (Thu, 25 Sep 2008)
>> New Revision: 11229
>>
>> Modified:
>> openlaszlo/trunk/demos/calendar/cal-data.lzx
>> openlaszlo/trunk/demos/calendar/infopanel.lzx
>> openlaszlo/trunk/demos/calendar/selected-daylook.lzx
>> Log:
>> Change 20080925-laszlo-8 by laszlo at T43-L3XEXMW on 2008-09-25
>> 03:52:43 EDT
>> in /home/laszlo/src/svn/openlaszlo/trunk-bigboss
>> for http://svn.openlaszlo.org/openlaszlo/trunk
>>
>> Summary: Remaining P0 Calendar fixes
>>
>> New Features:
>>
>> Bugs Fixed: LPP-6366 - SWF: Adding event and moving
>> it to the next month causes extra events to be
>> added to the calendar
>> LPP-7042 - SWF9: Calendar: Cannot minimize day view
>> LPP-7023 - SWF and DHTML: Calendar: Newly created
>> event disappears if edit is canceled
>> LPP-7017 - SWF8/9 and dhtml: Calendar: Data fields
>> are blank in Add Event after creating/deleting
>> multiple events
>>
>> Technical Reviewer: promanik
>> QA Reviewer: henry
>> Doc Reviewer: (pending)
>>
>> Documentation:
>>
>> Release Notes:
>>
>> Details: LPP-6366: This was actually a separate issue
>> than the one described in the bug. Events weren't
>> being dropped at the end of the month, but rather
>> all over the place. Turns out currenteventDP
>> wasn't getting updated to the current date, which
>> was causing all kinds of confusion throughout the
>> app.
>> LPP-7042: Missing argument in a method was causing
>> ActionScript errors.
>> LPP-7023: Infopanel didn't recognize that an event
>> was applied due to mistakenly setting "dataapply"
>> to "false".
>> LPP-7017: This was partially caused by my last
>> change where I for whatever reason required the
>> name of the event to be "New Event" before marking
>> it as no longer selected prior to deleting it.
>>
>>
>> Tests: Run Calendar in the SWFs and DHTML.
>> LPP-6366: Move events back and forth. It's best
>> to move it a week forward and then a week back
>> from where it currently is. Before this fix, it
>> would drop duplicate events all over the place.
>> It should no longer do this.
>> LPP-7042: In SWF9, click the button to switch to
>> "day" view. Click the '-' button to minimize.
>> It should now let you shrink the day without
>> freezing the app.
>> LPP-7023: Click "New Event". Name event something
>> and click "Apply". Close the info panel. Open it
>> again by clicking the 'i' button on the event.
>> Close the event again. It should no longer make
>> the event disappear.
>> LPP-7017: Create an event and name it "Event 1".
>> Do the same twice more and name each one something
>> else, closing the info panel between each. Delete
>> each one one at a time. When all are gone, create
>> a new event. All inputtext fields should be in
>> infopanel as expected.
>>
>>
>>
>>
>> Modified: openlaszlo/trunk/demos/calendar/cal-data.lzx
>> ===================================================================
>> --- openlaszlo/trunk/demos/calendar/cal-data.lzx 2008-09-25
>> 14:58:35 UTC (rev 11228)
>> +++ openlaszlo/trunk/demos/calendar/cal-data.lzx 2008-09-25
>> 16:42:28 UTC (rev 11229)
>> @@ -205,13 +205,16 @@
>> getNewNode(alleventsDP,'day'+day);
>>
>> tempDP.setFromPointer( currenteventDP );
>> + tempDP.setNodeAttribute('selected', 'false');
>> // Copy current data to new location
>> // If the record being moved is selected (usually the
>> case,
>> // currenteventDP changes after this call
>> var newPoint =
>> alleventsDP.addNodeFromPointer(currenteventDP);
>> + currenteventDP.setFromPointer(newPoint);
>>
>> //Delete the original node
>> tempDP.deleteNode();
>> + currenteventDP.setNodeAttribute('selected', 'true');
>>
>> // Set the event data pointer to the top of the event data
>> alleventsDP.setXPath('eventdata:/vcalendar[1]');
>> @@ -220,9 +223,7 @@
>>
>> <method name="deleteEvent">
>> // Deletes the current node
>> - if(currenteventDP.xpathQuery('summary/@value') == "New
>> Event"){
>> - currenteventDP.setNodeAttribute("selected",
>> 'false');
>> - }
>> + currenteventDP.setNodeAttribute("selected", 'false');
>> currenteventDP.deleteNode();
>> //currenteventDP.setXPath('blankEvent:/event[1]');
>>
>>
>> Modified: openlaszlo/trunk/demos/calendar/infopanel.lzx
>> ===================================================================
>> --- openlaszlo/trunk/demos/calendar/infopanel.lzx 2008-09-25
>> 14:58:35 UTC (rev 11228)
>> +++ openlaszlo/trunk/demos/calendar/infopanel.lzx 2008-09-25
>> 16:42:28 UTC (rev 11229)
>> @@ -70,7 +70,7 @@
>>
>> <!-- CLASS: info_Panel
>> =============================================== -->
>> <!--
>> ================================================================= -->
>> - <class name="info_Panel" extends="basepanel" clip="true"
>> onclick="Debug.write(this.datapath)">
>> + <class name="info_Panel" extends="basepanel" clip="true">
>>
>> <attribute name="opened" value="false"/>
>> <attribute name="dataapply" value="false"/>
>> @@ -111,8 +111,10 @@
>>
>> var prevcell = 'cell' + Number(thiscell
>> - 1);
>> if(thiscell > 1){
>> -
>> calgrid.daySelectionMgr.select(global[prevcell]);
>> - calgrid.open_day = global[prevcell];
>> + if(typeof global[prevcell] !=
>> 'undefined'){
>> +
>> calgrid.daySelectionMgr.select(global[prevcell]);
>> + calgrid.open_day =
>> global[prevcell];
>> + }
>> }
>> eventDataMgr.changeDay(-1);
>> if(thiscell == 1){
>> @@ -138,8 +140,10 @@
>>
>> var nextcell = 'cell' + Number(thiscell
>> + 1);
>> if(thiscell < 42){
>> -
>> calgrid.daySelectionMgr.select(global[nextcell]);
>> - calgrid.open_day = global[nextcell];
>> + if(typeof global[nextcell] !=
>> 'undefined'){
>> +
>> calgrid.daySelectionMgr.select(global[nextcell]);
>> + calgrid.open_day =
>> global[nextcell];
>> + }
>> }
>> eventDataMgr.changeDay(+1);
>> if(thiscell == 42){
>> @@ -347,7 +351,7 @@
>> slideclose1.doStart();
>> slideclose2.doStart(); //remove
>> this.opened = false;
>> - this.setAttribute('dataapply', false);
>> + this.setAttribute('dataapply', true);
>> ]]>
>> </method>
>>
>>
>> Modified: openlaszlo/trunk/demos/calendar/selected-daylook.lzx
>> ===================================================================
>> --- openlaszlo/trunk/demos/calendar/selected-daylook.lzx 2008-09-25
>> 14:58:35 UTC (rev 11228)
>> +++ openlaszlo/trunk/demos/calendar/selected-daylook.lzx 2008-09-25
>> 16:42:28 UTC (rev 11229)
>> @@ -20,7 +20,7 @@
>> calgrid.locked=true;
>>
>> calgrid.gridlayout.setopenview(null,false);
>> calgrid.locked=false;
>> - calgrid.showmonthview();
>> + calgrid.showmonthview(true);
>> } else
>> calgrid.gridlayout.setopenview(null,true);
>> }
>> </handler>
>>
>>
>> _______________________________________________
>> Laszlo-checkins mailing list
>> Laszlo-checkins at openlaszlo.org
>> http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins
>
More information about the Laszlo-dev
mailing list