You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Edgar Merino <do...@gmail.com> on 2012/12/04 09:04:19 UTC

Syncing files with designers

Hello, I would like our designers to work with a simple folder structure 
on our application pages markup, and we would like to avoid including 
java source code files with the files we share with them. What is the 
best way to do this? I though about implementing a custom 
ResourceStreamLocator, so I can for instance name our html files using 
the fqcn e.g. my.company.HomePage.html and placing these files in the 
default package (under src/main/html for example).

Is this the way to go?

Thanks in advance,
Edgar Merino

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Syncing files with designers

Posted by Martin Grigorov <mg...@apache.org>.
Hi Edgar,

Yes, this is the way to go.


On Tue, Dec 4, 2012 at 9:04 AM, Edgar Merino <do...@gmail.com> wrote:

> Hello, I would like our designers to work with a simple folder structure
> on our application pages markup, and we would like to avoid including java
> source code files with the files we share with them. What is the best way
> to do this? I though about implementing a custom ResourceStreamLocator, so
> I can for instance name our html files using the fqcn e.g.
> my.company.HomePage.html and placing these files in the default package
> (under src/main/html for example).
>
> Is this the way to go?
>
> Thanks in advance,
> Edgar Merino
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
> For additional commands, e-mail: users-help@wicket.apache.org
>
>


-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com <http://jweekend.com/>

Re: Syncing files with designers

Posted by Edgar Merino <do...@gmail.com>.
Thanks again for the response. For the first part I had it already 
figured out, but having a concrete example is always helpful.

 > We thought the same - but this not manageable with more than 50 files 
in one folder. So we decide to use folders - as already mentioned. 
Perhaps I'll write a tutorial...

How did you manage relative links in markup? With css resources it won't 
be a problem, the designers can add their resources using <link 
href="../css/style.css"></link> and any relative url in it will 
translate to the right path, however this is not true for relative paths 
inside the html document: <img src="../img/img.png" /> for example, will 
be a problem since wicket always resolves relatives paths from the web 
root (or webapp folder).

Do you include the resources you need inside all of your folders so 
relative paths resolve correctly outside and inside the wicket application?


Thanks in advance,
Edgar Merino


On 05/12/12 10:56, Jan Riehn wrote:
> Hello Edgar,
>
> > I think I'm missing something: since every WebPage in wicket has 
> straight access to resources located in the web root  (that is, every 
> path reference in the page's markup is relative to the web root)
>
> Wicket is able to locate resources outside of the web application: 
> This could be done by implementing an own IResourceFinder:
>
> public final class FileSystemResourceFinder implements IResourceFinder {
>     private final Resource resource;
>
>     public FileSystemResourceFinder(Resource resource) {
>         this.resource = resource;
>     }
>
>     @Override
>     public IResourceStream find(Class<?> clazz, String pathname) {
>         try {
>             final File file = new File(resource.getFile(), pathname);
>             if (file.exists()) {
>                 return new FileResourceStream(file);
>             }
>         } catch (final IOException e) {
>             // ignore, file couldn't be found
>         }
>         return null;
>     }
> }
>
> At least you've to add the resource finder to the resource finders 
> list with getResourceSettings().setResourceFinders(resourceFinderList) 
> in your applications init method. Alternatively, implement a custom 
> ResourceStreamLocator. At first the Locator should use the 
> FileSystemResourceFinder - if there's no match the locator should 
> fallback to wicket's default resource finder. So far, your application 
> is able to locate resources from the local file system.
>
> > I would like to avoid using folders to organise html files so the 
> designers can put all the resources they need in their root folder. 
> The mechanism you describe, seems to use folders, how are you managing 
> this for the designers?
>
> We thought the same - but this not manageable with more than 50 files 
> in one folder. So we decide to use folders - as already mentioned. 
> Perhaps I'll write a tutorial...
>
>
> Best regards,
>
> Jan
>
>
> On 12/05/2012 02:49 PM, Edgar Merino wrote:
>> Hello Jan, that seems like a good approach. However, I think I'm 
>> missing something: since every WebPage in wicket has straight access 
>> to resources located in the web root (that is, every path reference 
>> in the page's markup is relative to the web root), I would like to 
>> avoid using folders to organize html files so the designers can put 
>> all the resources they need in their root folder. The mechanism you 
>> describe, seems to use folders, how are you managing this for the 
>> designers?
>>
>>
>> Edgar Merino
>>
>>
>> On 04/12/12 04:15, Jan Riehn wrote:
>>> Hello Edgar,
>>>
>>> Yes, this is how it works.
>>>
>>> For the best separation of the responsibilities, you may store the 
>>> resources outside of the web application (Think about a complete 
>>> physical separation).
>>> We've made a good experience to break-off with wicket's given 
>>> package structure - wicket’s resource localization does not fit with 
>>> a separation of the responsibilities: the web designer has no 
>>> knowledge about the internal package structure and it's not 
>>> resistant against refactoring. Therefore, we use a more technical 
>>> mechanism based on style, variation locale and the filename.
>>>
>>> 1. <prefix>/<style>/<variation>/<locale>/<filename>.<extension>
>>> 2. <prefix>/<style>/<variation>/<filename>.<extension>
>>> 3. <prefix>/<style>/<filename>.<extension>
>>> 4. <prefix>/<filename>.<extension>
>>> 5. <filename>.<extension>
>>>
>>>
>>> Best regards,
>>>
>>> Jan
>>>
>>> On 12/04/2012 09:04 AM, Edgar Merino wrote:
>>>> Hello, I would like our designers to work with a simple folder structure
>>>> on our application pages markup, and we would like to avoid including
>>>> java source code files with the files we share with them. What is the
>>>> best way to do this? I though about implementing a custom
>>>> ResourceStreamLocator, so I can for instance name our html files using
>>>> the fqcn e.g. my.company.HomePage.html and placing these files in the
>>>> default package (under src/main/html for example).
>>>>
>>>> Is this the way to go?
>>>>
>>>> Thanks in advance,
>>>> Edgar Merino
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail:users-unsubscribe@wicket.apache.org
>>>> For additional commands, e-mail:users-help@wicket.apache.org
>>>>
>>>
>>
>


Re: Syncing files with designers

Posted by Jan Riehn <ja...@1und1.de>.
Hello Edgar,

 > I think I'm missing something: since every WebPage in wicket has 
straight access to resources located in the web root  (that is, every 
path reference in the page's markup is relative to the web root)

Wicket is able to locate resources outside of the web application: This 
could be done by implementing an own IResourceFinder:

public final class FileSystemResourceFinder implements IResourceFinder {
     private final Resource resource;

     public FileSystemResourceFinder(Resource resource) {
         this.resource = resource;
     }

     @Override
     public IResourceStream find(Class<?> clazz, String pathname) {
         try {
             final File file = new File(resource.getFile(), pathname);
             if (file.exists()) {
                 return new FileResourceStream(file);
             }
         } catch (final IOException e) {
             // ignore, file couldn't be found
         }
         return null;
     }
}

At least you've to add the resource finder to the resource finders list 
with getResourceSettings().setResourceFinders(resourceFinderList) in 
your applications init method. Alternatively, implement a custom 
ResourceStreamLocator. At first the Locator should use the 
FileSystemResourceFinder - if there's no match the locator should 
fallback to wicket's default resource finder. So far, your application 
is able to locate resources from the local file system.

 > I would like to avoid using folders to organise html files so the 
designers can put all the resources they need in their root folder. The 
mechanism you describe, seems to use folders, how are you managing this 
for the designers?

We thought the same - but this not 
<http://www.dict.cc/englisch-deutsch/manageable.html>manageable with 
more than 50 files in one folder. So we decide to use folders - as 
already mentioned. Perhaps I'll write a tutorial...


Best regards,

Jan


On 12/05/2012 02:49 PM, Edgar Merino wrote:
> Hello Jan, that seems like a good approach. However, I think I'm 
> missing something: since every WebPage in wicket has straight access 
> to resources located in the web root (that is, every path reference in 
> the page's markup is relative to the web root), I would like to avoid 
> using folders to organize html files so the designers can put all the 
> resources they need in their root folder. The mechanism you describe, 
> seems to use folders, how are you managing this for the designers?
>
>
> Edgar Merino
>
>
> On 04/12/12 04:15, Jan Riehn wrote:
>> Hello Edgar,
>>
>> Yes, this is how it works.
>>
>> For the best separation of the responsibilities, you may store the 
>> resources outside of the web application (Think about a complete 
>> physical separation).
>> We've made a good experience to break-off with wicket's given package 
>> structure - wicket’s resource localization does not fit with a 
>> separation of the responsibilities: the web designer has no knowledge 
>> about the internal package  structure and it's not resistant against 
>> refactoring. Therefore, we use a more technical mechanism based on 
>> style, variation locale and the filename.
>>
>> 1. <prefix>/<style>/<variation>/<locale>/<filename>.<extension>
>> 2. <prefix>/<style>/<variation>/<filename>.<extension>
>> 3. <prefix>/<style>/<filename>.<extension>
>> 4. <prefix>/<filename>.<extension>
>> 5. <filename>.<extension>
>>
>>
>> Best regards,
>>
>> Jan
>>
>> On 12/04/2012 09:04 AM, Edgar Merino wrote:
>>> Hello, I would like our designers to work with a simple folder structure
>>> on our application pages markup, and we would like to avoid including
>>> java source code files with the files we share with them. What is the
>>> best way to do this? I though about implementing a custom
>>> ResourceStreamLocator, so I can for instance name our html files using
>>> the fqcn e.g. my.company.HomePage.html and placing these files in the
>>> default package (under src/main/html for example).
>>>
>>> Is this the way to go?
>>>
>>> Thanks in advance,
>>> Edgar Merino
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail:users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail:users-help@wicket.apache.org
>>>
>>
>


Re: Syncing files with designers

Posted by Edgar Merino <do...@gmail.com>.
Hello Jan, that seems like a good approach. However, I think I'm missing 
something: since every WebPage in wicket has straight access to 
resources located in the web root (that is, every path reference in the 
page's markup is relative to the web root), I would like to avoid using 
folders to organize html files so the designers can put all the 
resources they need in their root folder. The mechanism you describe, 
seems to use folders, how are you managing this for the designers?


Edgar Merino


On 04/12/12 04:15, Jan Riehn wrote:
> Hello Edgar,
>
> Yes, this is how it works.
>
> For the best separation of the responsibilities, you may store the 
> resources outside of the web application (Think about a complete 
> physical separation).
> We've made a good experience to break-off with wicket's given package 
> structure - wicket's resource localization does not fit with a 
> separation of the responsibilities: the web designer has no knowledge 
> about the internal package structure and it's not resistant against 
> refactoring. Therefore, we use a more technical mechanism based on 
> style, variation locale and the filename.
>
> 1. <prefix>/<style>/<variation>/<locale>/<filename>.<extension>
> 2. <prefix>/<style>/<variation>/<filename>.<extension>
> 3. <prefix>/<style>/<filename>.<extension>
> 4. <prefix>/<filename>.<extension>
> 5. <filename>.<extension>
>
>
> Best regards,
>
> Jan
>
> On 12/04/2012 09:04 AM, Edgar Merino wrote:
>> Hello, I would like our designers to work with a simple folder structure
>> on our application pages markup, and we would like to avoid including
>> java source code files with the files we share with them. What is the
>> best way to do this? I though about implementing a custom
>> ResourceStreamLocator, so I can for instance name our html files using
>> the fqcn e.g. my.company.HomePage.html and placing these files in the
>> default package (under src/main/html for example).
>>
>> Is this the way to go?
>>
>> Thanks in advance,
>> Edgar Merino
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail:users-help@wicket.apache.org
>>
>


Re: Syncing files with designers

Posted by Jan Riehn <ja...@1und1.de>.
Hello Edgar,

Yes, this is how it works.

For the best separation of the responsibilities, you may store the 
resources outside of the web application (Think about a complete 
physical separation).
We've made a good experience to break-off with wicket's given package 
structure - wicket's resource localization does not fit with a 
separation of the responsibilities: the web designer has no knowledge 
about the internal package  structure and it's not resistant against 
refactoring. Therefore, we use a more technical mechanism based on 
style, variation locale and the filename.

1. <prefix>/<style>/<variation>/<locale>/<filename>.<extension>
2. <prefix>/<style>/<variation>/<filename>.<extension>
3. <prefix>/<style>/<filename>.<extension>
4. <prefix>/<filename>.<extension>
5. <filename>.<extension>


Best regards,

Jan

On 12/04/2012 09:04 AM, Edgar Merino wrote:
> Hello, I would like our designers to work with a simple folder structure
> on our application pages markup, and we would like to avoid including
> java source code files with the files we share with them. What is the
> best way to do this? I though about implementing a custom
> ResourceStreamLocator, so I can for instance name our html files using
> the fqcn e.g. my.company.HomePage.html and placing these files in the
> default package (under src/main/html for example).
>
> Is this the way to go?
>
> Thanks in advance,
> Edgar Merino
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>