So         you've just identified an area that we need to work on a bit.          Ideally the MapGraphic Service should always be loaded in the catalog         but it isn't yet.  So you have to load it manually if it isn't in         the local catalog the following code will do it.  yourExtensionID is the id of         your map graphic :         
                       Map map =         ApplicationGISInternal.getActiveMap();
                        try         {
                            IGeoResource mapGraphicResource =         null;
        
                            URL url = "">new URL(MapGraphicService.SERVICE_URL, "#"         + yourExtensionID); //$NON-NLS-1$
                            List<IResolve> matches =         CatalogPlugin.getDefault().getLocalCatalog().find(url,
                                            new         NullProgressMonitor());
                            if (!matches.isEmpty())
                                        mapGraphicResource         = (IGeoResource) matches.get(0);
        
                            if (mapGraphicResource == null) {
                                List<IService> results =         CatalogPlugin.getDefault().getServiceFactory()
                                                .acquire(url);
                                for( IGeoResource resource :         results.get(0).members(new         NullProgressMonitor()) ) {
                                            if         (resource.getIdentifier().getRef().equals(url.getRef()))         {
                                                mapGraphicResource = resource;
                                                break;
                                            }
                                }
                            }
                            if (mapGraphicResource == null)
                                return;
                            Layer layer =         map.getLayerFactory().createLayer(mapGraphicResource);
                            map.sendCommandSync(BasicCommandFactory.getInstance().createAddLayer(layer));
                        } catch         (MalformedURLException e) {
                            MapGraphicPlugin.log("", e); //$NON-NLS-1$
                        } catch         (IOException e) {
                            MapGraphicPlugin.log("", e); //$NON-NLS-1$
                        }
        
        
        The code also creates and adds the mapgraphics to a map.
        
        Cheers,
        
        Jesse
                        On 28-Oct-06, at 4:25 AM, Andy Czerwonka wrote:
                  I've implemented a MapGraphic extension, but           I need a handle to the 
          MapGraphic.  I see the example of           creating a layer based on the 
          MapGraphicService URL, but nowhere do I see           how to get the MapGraphic 
          handle.  I see (in the debugger) that           the MapGraphic is contained in the 
          IGeoResource, but I can't figure out how it's           exposed.
          
          Thanks in advance,
          
          -andy 
          
          
          
          _______________________________________________
          User-friendly Desktop Internet GIS           (uDig)