[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| Re: [udig-devel] IStyleConfigurator & rendering : more details | 
Dear All,
After some days thinking about stylers, renderers and configurators and 
some days trying to implement some solutions, I don't exactly what I 
will decide to reach my needs.
I expected that several independant configurators could be declared to 
set the style of a layer. Independant means that I could choose a style 
based on a marker with 'simple' configurator and another based on 
'external icon' and switch between them use the configurator chooser. 
Each style would be persistent (a action on 'external icon' has no 
effect on the configuration of 'simple') so I can easily switch from the 
recorded versions of the style for a layer. When apply is pressed, the 
new style is active, others are disabled.
Adding a new rule (or symbolizer) to my style leads to a dependance 
between my configurator and other configurators. How to find the rule 
(or symbolizer), among all, that my configurator has to modify ? 
'Simple' decides it works on the first. So I could choose the second. 
What will happen in the future if I want to add new configurators, I 
will have to know at build time what kind of configurators will be 
deployed. It is not 'plugin compliant'.
For my need, I would have prefered that the styleblackboard has an 
'active' style that would be set by the configurator view on apply 
button. As I do not have a view of the whole framework, I am sure that 
there are good reasons that lead the current design.
So I think I will create a new CustomStyle that will encapsulate the 
Style, a new CustomRenderer that will encapsulate the 
BasicFeatureRenderer, a StyleContent declaring CustomStyle as 
styleClass. My CustomConfigurator will update a dedicated CustomStyle. 
If I have well understood, at rendering time, my layer will be rendered 
twice, once by BasicFeatureRenderer, with the style defined by 'simple 
configurator', and once by CustomRenderer, with the style defined by 
'CustomConfigurator'.
I will still be impossible to choose the first renderer to be applied 
but I think that this solution will be the one that will best fit my needs.
Another solution (for me, not for the framework) could be not to deploy 
the style.sld plugin and rewrite the plugin, including external graphic.
As I am now in holidays until 03/01/06, I won't be able to continue this 
interesting discussion for several days. If you think I am on a wrong 
way, do not hesitate to warn me.
I send you all by best wishes of a merry Christmas.
Thank you all for your support
Vincent
Richard Gould wrote:
I am just diving into this, so forgive me if I am making any wrong 
assumptions.
Jody Garnett wrote:
Vincent Nouguier wrote:
Hi,
Jesse, I am not sure the solution you suggest will fit my needs. As 
far as I understand, you suggest I simply declare a new 
StyleConfigurator with styleId=SLDContent.ID. In this case, my 
StyleConfigurator will remove the mark that was set by the 'Simple' 
styleConfigurator. When I switch to the 'simple' configurator, I 
have lost my 'simple' configuration. A better behaviour would have 
been to undeploy the 'simple' configurator for points and to recode 
a configurator that manages all PointSymbolizer possibilities (mark, 
externalGraphic and symbols). Is it possible ? Is it discouraged ?
Jody, I am not familiar with layers and the rendering process, so it 
is quite confusing for me. I don't understand what I have to do 
(what extension to use) in order my layer being rendered twice. Your 
suggestions leads me to the following questions: What is the 
expected behaviour when a user uses two style configurators, the 
layer is displayed with the style defined by the last configurator?
Right now the expected behavior is that Basic Renderer would engage 
twice, once for each style.
Um, wouldn't it be dependant on the renderer? For example, my WMS 
could use two StyleConfigurators at once (say one was SLD, the other 
was relating to WMS options - file format or something).
If the two StyleConfigurators operate on the same Style, wouldn't one 
just over-write the other? The StyleBlackboard only has support for 
one object per ID. The two StyleConfigurators would have to operate on 
the ideology of editing existing styles, rather than creating new ones.
Or is it rendered as the overlay of both styles?
I think the styles would be combined at the rule level .. but we 
would need to check.
In this case, how do we define the rendering order?
That is indeed the issue, the style blackboard is unordered - do you 
have any suggestions? This seems to be a gap in the approach, I 
expected a single StyleLayerDescriptor instance on the blackboard.
I don't understand how I can use this 'double rendering' mecanism in 
order to achieve my goal if I don't declare a new StyleClass and so 
a new Renderer (what I would like to avoid).
What would be the best is if you can set up your StyleConfigurator to 
edit the same SLD style that the BasicStyleConfigurator does. I am 
out of time right now, but will ask Richard to fill in the details.
I think Jody is trying to say that your StyleConfigurator should edit 
the existing SLD style, rather than creating a new one (and 
over-writing the previous values)?
Richard
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel