private void addFileGdbBrowsed(final String folderPath) { final String workspaceId = "" + count++; // an arbitrary unique string // create a local map service and enable dynamic layers LocalMapService localMapService = new LocalMapService(ConstantesExample.URL_BLANK_MPK); localMapService.setEnableDynamicLayers(true); // get dynamic workspaces from service WorkspaceInfoSet workspaceInfoSet = localMapService.getDynamicWorkspaces(); // create a workspace info via the static method according to data type // e.g. file geodatabase folder connection WorkspaceInfo workspaceInfo = WorkspaceInfo.CreateFileGeoDatabaseConnection(workspaceId, folderPath); // set dynamic workspaces for our local map service workspaceInfoSet.add(workspaceInfo); localMapService.setDynamicWorkspaces(workspaceInfoSet); // now start service... localMapService.start(); // set up a local dynamic layer final ArcGISDynamicMapServiceLayer localDynamicLayer = new ArcGISDynamicMapServiceLayer( localMapService.getUrlMapService()); // add the layer to the map localDynamicLayer.setName("File Geodatabase"); jMap.getLayers().add(localDynamicLayer); localDynamicLayer.addLayerInitializeCompleteListener(new LayerInitializeCompleteListener() { @Override public void layerInitializeComplete(LayerInitializeCompleteEvent arg0) { DynamicLayerInfoCollection layerInfos = localDynamicLayer.getDynamicLayerInfos(); DynamicLayerInfo layerInfo = layerInfos.get(0); /* Apply a renderer for vector layers. * Note: It is always necessary to provide a renderer, but the renderer provided does * not need to be valid with regard to the actual layer and geometry type, it simply * needs to be a valid renderer. If the renderer specified here is not appropriate for * the geometry type of the layer the symbology will fall back to a default * SimpleMarkerSymbol, SimpleLineSymbol or SimpleFillSymbol. */ SimpleRenderer simpleRenderer = new SimpleRenderer(new SimpleLineSymbol(Color.ORANGE, 2f, SimpleLineSymbol.Style.SOLID)); DrawingInfo drawingInfo = new DrawingInfo(simpleRenderer, 0); // Transparency = 0% layerInfo.setDrawingInfo(drawingInfo); // Create the Feature Class data source TableDataSource dataSource = new TableDataSource(); dataSource.setWorkspaceId(workspaceId); dataSource.setDataSourceName("polbndl"); // <-- HERE IS MY FEATURE CLASS NAME, BUT WOULD LIKE THE USER TO SELECT IT !! // Set the data source LayerDataSource layerDataSource = new LayerDataSource(); layerDataSource.setDataSource(dataSource); layerInfo.setLayerSource(layerDataSource); localDynamicLayer.refresh(); } }); }
Solved! Go to Solution.