There is a difference between style and selection style though. Are you
sure you want be able to have a different selection style for each
layer? You haven't convinced me yet but I'm not completely adverse to
the idea... I'll think about it a bit for now.
The hardcoded style can be found in
SelectionStyleContent.createDefaultStyle(layer);
Jesse
Mark Presling wrote:
I think that each layer should probably have it's own selection style
so that you can highlight different feature types in different ways
depending on the type and the way they are rendered.
For example, on my layer I am using external graphics for each point
feature. Putting a blob on top of the icon isn't really what I need...
I'd like to be able to highlight the edge of the icon in some way
(which I still have to play with). Whereas another layer might have a
circle for points, or another a square which you could simply render
another circle/square of a different color over top of the original.
In the meantime, where can I find that hardcoded style that you are
referring to so that I can attack it and modify it for my needs in the
meantime?
Thanks,
Mark
Jesse Eichar wrote:
Blush... Currently it (the selection style) is hardcoded. How is
this for a way of handling this:
There can be an object on each map's blackboard that is the selection
style. You can get that style and modify however you desire.
Another idea is to have each layer have its own selection style but
we have to becareful there because it could go a little crazy after a
while.
Jesse
Mark Presling wrote:
Hi all. I have got my own view that lists features currently
displayed on the map for a particular layer. I have got it so that
when I select a feature in the list a Filter is set on the layer
with the id of the selected feature. When that happens it displays a
little orange square/circle on the feature.
Here is the code:
public void highlightEventOnMap(String id) {
IMap map = ApplicationGIS.getActiveMap();
LayerImpl eventLayer = (LayerImpl)
getLayerByName(LAYER_ROADEVENT, map);
FilterFactory filterFactory = new FilterFactoryImpl();
CompareFilter filter = null;
try {
FeatureSource featureSource = (FeatureSource)
eventLayer.getResource(
FeatureSource.class, null);
filter =
filterFactory.createCompareFilter(CompareFilter.COMPARE_EQUALS);
FeatureType featureType =
featureSource.getFeatures().getSchema();
filter.addLeftValue(filterFactory.createAttributeExpression(featureType,
"roadeventid"));
filter.addRightValue(filterFactory.createLiteralExpression(id));
eventLayer.setFilter(filter);
} catch (Exception e) {
e.printStackTrace();
}
}
By calling ILayer.setFilter(filter) there is a small orange mark put
on the map on top of the feature graphic. Note that this happens by
default and I just discovered it by accident one day.
What I want to know is how do I change the style of that mark? Is
there a way of modifying it? I believe that there is a selection
layer or something that is probably doing this. Do I need to
retrieve that layer and apply a style to it or something similar?
And if so, how do I get hold of that layer?
Thanks in advance,
Mark
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel