Quartz GraphicsOverlays

4551
3
03-15-2016 10:10 AM
ChristinaKochan1
Occasional Contributor


Since you plan to remove GraphicsLayers so that we will instead use GraphicsOverlays in the Quartz release, will the GraphicsOverlay still be sealed like it is currently in the .NET SDK?

I ask because for my company's application we extend the GraphicsLayer to include additional information for our custom table of contents, and if we are unable to extend the GraphicsOverlay it will make things much more difficult for us when we upgrade to Quartz.

What is the purpose of sealing the GraphicsOverlay?

0 Kudos
3 Replies
ChristinaKochan1
Occasional Contributor

It would be nice if an ESRI employee could shed some light here...

dotMorten_esri
Esri Frequent Contributor

We're looking at allowing you to extend FeatureTable instead for these types of custom data sources, rather than going the GraphicsOverlay route.

What type of information is it specifically that you need to add to the GraphicsOverlay, so we can make sure this becomes part of our design considerations.

0 Kudos
ChristinaKochan1
Occasional Contributor

Really my main question is the purpose of sealing the GraphicsOverlay. I can understand the reasoning behind moving away from the GraphicsLayer and using GraphicsOverlays instead, but sealing it would mean we have to rewrite a lot of code to have our logic outside of our extended classes.

I can give you some background on how we currently extend the GraphicsLayer and Graphic anyway in case it helps. Currently each of our extended GraphicsLayers has associated GraphicsOverlays for things like historical location data lines, relationship lines between graphics, and custom labels. Our label graphics can be customized by the user with different colors and fonts for each, so I don't know if that is supported with the FeatureLayer.Labeling. These history, relationship, and label objects can change often and we don't want them to appear in our table of contents with the Graphics because they are really just overlay graphics for the user to see but not interact with. We do want the Graphic itself to show up in our legend, so the distinction between layer types helps us show objects in GraphicsLayers but not GraphicsOverlays. If the GraphicsOverlay is sealed then I'm not sure how we would distinguish between the layer graphics we want to show in the legend and those we don't. Since our legend supports reordering of graphics and groups we have all of the reordering logic within the layer as well.

Our Graphics are also extended to contain custom logic for updating Symbol and Geometry, which can also occur often. Since each one of our Graphics can have a unique Symbol it's just not feasible to use a Renderer on our GraphicsLayers, so I'm not sure how using a FeatureTable would work for us.  Is the Graphic going to be sealed as well?

Can you help me understand how using a FeatureTable might work with all of this in mind?

I'm not sure if it makes any difference for this particular thread or not, but may be worth noting that our entire application exists offline only and is never connected.