At the moment the Task frame has two levels, Category and Layer. I would 
like to propose a third Theme.

What is a theme? A theme identifies a sub set of features in a Layer 
which have their own style, a label and you can show/hide the layer.

For feature layers an example would be a building you may have schools 
and churches that are rendered using different symbols. This corresponds 
to the ColorThemingStyle.

For WMS layers you could use themes to represent each layer from the 
server, with the icon being the legend graphic from the server. Here 
when you show/hide a layer it would add or remove that layer from the 
WMS request and update the layer.

To support this we would need to add a new Theme interface to the 
workbench.model, which describes the theme. Different type of Layerable 
would use their own implementations of this interface.

public interface Theme {
    String getLabel();

    void setLabel(String label);

    BasicStyle getStyle();

    void setStyle(BasicStyle style);

    boolean isVisible();

    void setVisible(boolean visible);
}

I would also propose a ThemedLayerable interface that would allow you to 
get the themes for the layer, Layerables that support themes would 
implement this interface.

public interface ThemedLayerable extends Layerable {
  public List getThemes();
}

Would would then need to modify the LayerTreeModel and the 
TreeLayerPanel to support this new kind of item in the tree.

For Layers I would delegate getting the Themes from the Styles, and my 
new FilterTheming style would use this.

I almost have this code ready to checkin, I'll post a diff so that 
people can have a look at what I've done and decide if this is something 
we should add to the core.

Paul

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to