good question. just brainstorming here.... haven't really thought this through...


maybe we should start by just thinking about CSS since it's less involved (i think)
the basic link syntax for CSS is:


*<link rel="stylesheet" href="/styles/main.css"/>*

while the inline syntax for CSS is:

*<style type="text/css">
...
</style>
*
unlike most wicket components, a CSS link component would generate HTML rather than
modify it. so i think the wicket namespace syntax might be best. something like:


*<wicket:stylesheet content = "external"/>
*
this would be the target tag which would be replaced by any stylesheets added by components
on the page. to add or insert a stylesheet link, a component would implement some interface like:
*
public interface IExternalStylesheet
{
public void editExternalStylesheetList(StringList stylesheets);
}


*the StringList would permit adding and inserting of stylesheet URLs which might prefer
to be first or last, but there would be no automatic resolution of collisions. note also that
it might be possible to remove an offending stylesheet link contributed by some component
that is messing things up somehow.


for the second syntax, there would be a tag for inline stylesheet contributions:

*<wicket:stylesheet content = "inline"/>
*
just like the external version, you could stick this component anywhere. instead of editing
a list of urls though, it would edit the text of its body, which would be an inline stylesheet
declaration. this might be done through an interface maybe roughly like:


*public interface IInlineStylesheet
{
   public String editInlineStylesheet(String stylesheet);
}

*this method is given the current contents of the stylesheet block and would be expected to return
a changed version. a normal thing to do might be simply appending to the stylesheet string.
but other interesting things might be possible.


anyway, this is just a simplistic first approximation kind of guess... and i barely know anything
about stylesheets.


so, what am i missing?

Gili wrote:

        With a more practical use-case it is hard for me to comment,
but this whole talk of "global" versus "local" sounds a lot to me like
static versus non-static peer variables associated with a Wicket
component.

        Can someone provide a simple testcase?

Gili

On Fri, 11 Feb 2005 11:42:48 +0100, Kamil Rembalski wrote:



Hi guys,

Instead of checking if a method/variable already exeists, I was
thinking about something else: There should be a way to contribute
javascript code in two ways : "component global", for supplying the js
code that should be rendered once per component TYPE and "component
local".

For example, in the calendar component, there is no need to double all
the functions. So, the page/whatever else should remember that one
component of type calendar was already added and that there is no need
to supply global JS code.
On the other hand, each calendar may need its own JS variables. These
should be rendered and renamed for each calendar. Taking care of
renaming the variables should be component's author job.

"component global" JS could be supplied via JS files, and local - via
JS code embedded in <scripts> tag.

This would be easier to do then parsing the JS files. In order to
prevent component developers from creating functions with the same
names (in different components), there should be a guideline to add
the component name as a prefix to all variables.

Regards,
Kamil

On Fri, 11 Feb 2005 09:50:24 +0100, Eelco Hillenius
<[EMAIL PROTECTED]> wrote:


I agree. In real life usecases, you'll usually want to focus on
including JS etc as a file instead of inlining, as these file can be
cached. Now, if we could include those resources as packaged resources,
a major problem would allready have been tackled.

I don't know about checking whether Javascript methods allready exist
etc. The whole parsing process will get a lot heavier from it, and I
think that it is the responsibility of the developpers as well? Btw,
having layered CSS (same class, selectors, etc) is not illegal.

Eelco

Jonathan Locke wrote:



Gili wrote:



   My 2 cents... The topic of CSS and JS are very deep and you
could spend months trying to come up with "the ultimate solution".
Instead, I suggest you come up with simple use-cases that depend on CSS
and JS, design Wicket for those cases and incrementally increase the
complexity of the use-case.

   You don't necessary need to handle all use-cases anyway. Just
get a slick design going for the most common use-cases and grow from
there.




this makes good sense.  starting simple is how wicket itself evolved.
the trick will be to
have some idea how the simple case might evolve, even if that isn't
implemented in 1.0.



   Personally, I think the best way to start is by forcing all CSS
and JS to be found on separate pages (that is, we don't support inline
CSS/JS at this time). If components associate a JS or CSS component
with themselves (using add() or some other mechanism) then at Page
rendering time, the Page walks through all subcomponents recursively,
picks up their JS/CSS dependencies and automatically outputs links to
those external CSS/JS pages at the top of the page. The JS/CSS files
are also dynamically generated.




this sounds like a good start and that seems like the right way to add
links, but i want to avoid
any kind of file generation.  better to add the code inline, even if
the problem is a little harder.



   That's probably far from being a perfect solution, but it's a
fairly clean beginning and we could work from there. The way I see it,
JS/CSS are "peers" of a Wicket component. In a sense, the markup (html)
of a Wicket component is somewhat of a peer itself. Does this make
sense?




yup.



Gili

On Thu, 10 Feb 2005 18:33:46 -0800, Jonathan Locke wrote:





okay, why don't we start brainstorming our requirements for this?

a few things that occur to me:

- components ought to be able to contribute javascript methods to
the header section
- adding javascript needs to be smart in terms of merging things.
if a javascript function already exists, it should be left alone
- ordering of contributions is going to be important, particularly
in css
- could make javascript contributions modular via .js files included
with the <script src="foo.js"/> syntax
- javascript .js files could be loaded in the same way that markup
files are loaded via resource locator code
- need support for easily adding javascript invokations to various
html attributes
- client side validation should be added through the existing
validation api, which should contribute javascript code to the
header and the form button onclick handler

i don't have deep javascript knowledge, so everyone's embellishments
and thoughts are extra important.
some examples of common javascript tasks as well as ideas about how
things might best work would be helpful.

    jon



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real
users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop







------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ Wicket-develop mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wicket-develop





-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop









-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop





-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop

Reply via email to