[Laszlo-user] [Laszlo-dev] Need to be able to override resource declarations in OpenLaszlo without warnings.

Sarah Allen sallen at laszlosystems.com
Wed Aug 29 07:33:09 PDT 2007


That is exactly the dilemma.  The tension is between a the frustration 
of an accidental override and the frustration if you want to set up your 
library to allow customizing a resource, where you have to provide a 
resource file and library separately and then the user of the library 
needs to create a new resource file and include all your resources 
except the logo and include the logo.


I suppose there could be some kind of flag that says that I meant to 
override this resource, like:

<resource name="logo" src="logo.png" replace="true"/>


I don't know if that would complicate the implementation or the language 
folk would consider it weird, but as a user of the language it would 
work for me.


Sarah



On Wed, Aug 29, 2007 at  5:01 AM, Elliot Winard wrote:



I don't know about removing the platform warnings.


If I include two libraries that have resources with conflicting names, I 
want to know about it.  For example - I might include multiple libraries 
, each defining a 'logo' resource and expecting the logo to be sized a 
certain way -

   <include "mailwindow" />

   <include "stockwindow" />


I want the compiler to tell me that the stockwindow's logo is 
overwriting the mailwindow's logo.  Warnings are informative, non-fatal 
and should be used to provide this kind of information.

This proposal skirts CSS altogether.  If this gets implemented as 
proposed then the display of warnings should be configurable at 
compile-time.  I think it would be confusing to users if resources (or 
classes or instances) get clobbered without any warning.

-e


Sarah Allen wrote:

>   I think this is an excellent proposal.  cc'ing laszlo-user to see if

> other folks developing in LZX have strong feelings about this ...

>

>

> On Tue, Aug 28, 2007 at  3:12 PM, Bret Simister wrote:

>

>

> Currently, in the OpenLaszlo platform, it was decided that declaring a

> resource twice within an LZX app

> causes a server warning. This was intended to help developers just  in

> case they accidentally overrode a

> resource that had already been  declared in another library.

>

>

> <!-- the following code produces a warning, but still compiles -->

> <canvas>

>      <resource name="logo" src="logo.gif" />

>      <resource name="logo" src="logo2.gif" />

>  

>   <!-- view appears with logo2.gif -->

>      <view resource="logo" />

> </canvas>

>

>

>

> At this time, I would suggest that  the  platform remove these

> warnings and have

> the last resource declaration override all other previous 
> declarations.

>

>

> Here is why...

>

>

> OpenLaszlo now has a CSS implementation. It gives developers an

> elegant method

> of skinning their applications. This works, currently,  by first

> declaring a resource

>

>

> <resource  name="someimage_rsc"  src="somepath/someimage.jpg" />

>

>

> and then referring to that resource in a CSS selector

>

>

> view[name="someview"] {

> resource: someimage_rsc;

> }

>

>

>

>

>

> If a developer builds a library ....

>

>

>    myCustomLibrary      ( folder )

>       library.lzx

>       myresources.lzx ( contains many resource definitions including

> 'lowerRightCorner_rsc' )

>       mystyles.css    ( contains many selectors including one that

> references 'lowerRightCorner_rsc' )

>       ...             ( other class and source image files )

>

>

> where  library.lzx  includes both   myresources.lzx and mystyles.css

>      

> Then library can be used with a simple inclusion in the main app.

>

>

> <canvas>

>

>

> <include name="myCustomLibrary" />

>

>

> <!-- instance of a class from myCustomLibrary -->

> <mycustomclass />

>

>

> </canvas>

>

>

>

>

> Let's assume that " mycustomclass " contains a number of resources,

> and that you ( as a developer )

> only want to change one of those resources . The simplest method to

> accomplish this would be ...

>

>

> <canvas>

>

>

> <include name="myCustomLibrary" />

>

>

> <!-- override resource definition "lowerRightCorner_rsc" defined

> earlier in myresouces.lzx -->

> <resource name="lowerRightCorner"

> src="my_new_path/my_lower_right_corner.jpg" />

>

>

>

> <!-- instance of mycustomclass that will now display

>           the new resource based on the unchanged css selector -->

> <mycustomclass />

>

>

> </canvas>

>

>

> Currently, this code would cause a compiler warning. To avoid these

> warnings ( without changing OpenLaszlo ) the  resouces.lzx file(s) and

> possibly the  library .lzx would have to be edited.

>

>

> If instead, we allow for resource overriding, then ...

>

>

> 1) the original CSS and  resource files will remain unchanged

> 2) The old resource for " lowerRightCorner"  would NOT be included in

> the app

> 3) There  would be clean separation between external libraries and the

> skinning of theses libraries  included in an application.

>

>

>

>

>

>

>

>

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.openlaszlo.org/pipermail/laszlo-user/attachments/20070829/21a401bb/attachment-0001.html


More information about the Laszlo-user mailing list