Programming with JViews Maps > Creating a Map Application Using the API > Using Data Sources > Layer Styling Considerations

This section describes how to manage layer styles correctly.

Managing Style Parenting

To provide style inheritance (accessible in the Layer Tree Panel), the parent layer style must be a composite style, and you need to manage the style parenting on its own:

IlvMapStyle childStyle=layer.getStyle();
childStyle.setParent(parent.getStyle());

Using Dynamic Styles

When the application uses dynamic styles, you need to access the style controller property of the manager:

IlvMapStyleController themeController = IlvMapStyleControllerProperty.GetMapStyleController(manager);

With the controller, you can decide on specific style settings for scale intervals. For example, to change the layer visibility:

themeController.addTheme(1/100000.0,source.getInsertionLayer(),"Visible");
themeController.getStyle(source.getInsertionLayer(),1/100000.0).setVisibleInView(true);
themeController.getStyle(source.getInsertionLayer(),1/100000.0).setVisibleInOverview(false);

If you use multiple dynamic styles, you have to take care of style inheritance in a slightly more complex way because more than one style is used:

IlvMapDynamicStyle []t=themeController.getThemes(layer);
for (int i = 0; i < t.length; i++) {
  t[i].getStyle().setParent(parent.getStyle());
}

Once this is done, you can apply the style you want to use for the current scale of the view:

themeController.updateTheme(view,layer);

Alternatively, you can setup the theme for all layers in one single call:

themeController.updateCurrentTheme();