⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adddatatask.java

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
            this.getContext().addResource("aimsJITK" + UUID.randomUUID().toString(), aimsResource);

            if (getBackgroundTransparent().equals("true")) {
                AIMSMapFunctionality mapFunc = (AIMSMapFunctionality) aimsResource.getFunctionalities().get("map");
                mapFunc.getMap().setTransColor(mapFunc.getMap().getBackground());
            }
        } catch (Exception e) {
            _logger.warn(TextResources.getResourceString(ResourceProps.ERROR_MESSAGE) + " ArcIMS service " + svc + ".", e);
            this.renderMessage(TextResources.getResourceString(ResourceProps.ERROR_MESSAGE) + " ArcIMS service " + svc + ".");
        }
    }

    private void addWMSResource(String svc) {
        //resource = resourceAdder.addWMSSource(svc, this.isTransparent(), this.isProjectToNewService(), this.isZoomToNewService());
        String[] wmsInfo = svc.split("\\*");

        WMSMapResource wmsResource = (WMSMapResource) m_wmsMapResourceFactory.createResource();
        wmsResource.setWmsURL(wmsInfo[0]);

        try {
            this.getContext().addResource("wmsJITK" + UUID.randomUUID().toString(), wmsResource);
            wmsResource.setAlias(wmsResource.getWmsServerConnection().getServerTitle());

            /*if (getBackgroundTransparent().equals("true")) {
                wmsResource.getWmsMap().setTransparent(true);
            }*/
        } catch (Exception e) {
            _logger.warn(TextResources.getResourceString(ResourceProps.ERROR_MESSAGE) + " WMS service " + wmsInfo[0] + ".", e);
            this.renderMessage(TextResources.getResourceString(ResourceProps.ERROR_MESSAGE) + " WMS service " + wmsInfo[0] + ".");
        }
    }

    private void addWFSResource(String svc) {
        String[] serviceInfo = svc.split("\\*");
        String url = serviceInfo[0];
        String serviceName = serviceInfo[1];

        WFSMapResource wfsResource = (WFSMapResource) m_wfsMapResourceFactory.createResource();
        wfsResource.setEndPointURL(url);
        wfsResource.setAlias(serviceName);

        String id = "wfsJITK" + UUID.randomUUID().toString();

        try {
            this.getContext().addResource(id, wfsResource);
        } catch (Exception e) {
            _logger.warn(TextResources.getResourceString(ResourceProps.ERROR_MESSAGE) + " WFS service " + url + ".", e);
            this.renderMessage(TextResources.getResourceString(ResourceProps.ERROR_MESSAGE) + " WFS service " + url + ".");
        }
    }

    private void addWCSResource(String svc) {
        String[] wcsArray = svc.split("\\*");
        URLBuilder wcsURL = null;
        String coverageName = null;

        if (wcsArray.length > 1) {
            wcsURL = new URLBuilder(wcsArray[0]);
        } else {
            wcsURL = new URLBuilder(svc);
        }

        try {
            coverageName = wcsURL.getParam("coverage");
            wcsURL.removeParam("coverage");

            WCSMapResource wcsResource = (WCSMapResource) this.m_wcsMapResourceFactory.createResource();
            wcsResource.setWCSCapabilities(getWcsCapabilities(wcsURL.toString()));
            //wcsResource.setEndPointURL(wcsURL.toString());
            wcsResource.setCoverage(coverageName);

            this.getContext().addResource("wcsJITK" + UUID.randomUUID().toString(), wcsResource);
            
        } catch (Exception e) {
            _logger.warn(TextResources.getResourceString(ResourceProps.ERROR_MESSAGE) + " WCS service " + wcsURL.toString() + ".", e);
            this.renderMessage(TextResources.getResourceString(ResourceProps.ERROR_MESSAGE) + " WCS service. " + e.getMessage());
        }
    }

    private void addArcGISServerLocalResource(String svc, String[] paramArray) {
        String host = "";
        String domain = "";
        String user = "";
        String pswd = "";
        String encstr = "";

        for (int j = 0; j < paramArray.length; j++) {
            String[] param = splitParams(paramArray[j]);

            if (param[0].equalsIgnoreCase("host")) {
                host = param[1];
            }

            if (param[0].equalsIgnoreCase("domain")) {
                domain = param[1];
            }

            if (param[0].equalsIgnoreCase("user")) {
                user = param[1];
            }

            if (param[0].equalsIgnoreCase("pswd")) {
                pswd = param[1];
            }

            if (param[0].equalsIgnoreCase("encrypted")) {
                encstr = param[1];
            }
        }

        boolean passwordEncrypted = encstr.trim().equalsIgnoreCase("true") ? true : false;

        AGSLocalMapResource agsLocalResource = (AGSLocalMapResource) this.m_agsLocalMapResourceFactory.createResource();
        agsLocalResource.setAlias(svc);
        agsLocalResource.setHosts(Collections.singletonList(host));

        AGSUser agsUser = new AGSUser();
        agsUser.setDomain(domain);
        agsUser.setUserName(user);
        agsUser.setPassword(pswd);
        agsUser.setPasswordEncrypted(passwordEncrypted);
        agsLocalResource.setUser(agsUser);
        agsLocalResource.setServerObjectName(svc);

        try {
            this.getContext().addResource("agsLocalJITK" + UUID.randomUUID().toString(), agsLocalResource);

            if (getBackgroundTransparent().equals("true")) {
                AGSMapFunctionality mapFunc = (AGSMapFunctionality) agsLocalResource.getFunctionality("map");
                mapFunc.getMapDescription().setTransparentColor(mapFunc.getMapServerInfo().getBackgroundColor());
            }
        } catch (Exception e) {
            _logger.warn(this.addServiceErrorMessage = TextResources.getResourceString(ResourceProps.ERROR_MESSAGE) + " ArcGIS server object " + svc + ".", e);
            this.renderMessage(TextResources.getResourceString(ResourceProps.ERROR_MESSAGE) + " ArcGIS server object " + svc + ".");
        }
    }

    private void addArcGISServerInternetResource(String svc) {
        int pos = svc.indexOf("*");
        String surl = svc.substring(pos + 1, svc.length());
        String svcName = svc.substring(0, pos);

        AGSMapResource agsResource = (AGSMapResource) m_agsMapResourceFactory.createResource();
        agsResource.setEndPointURL(surl);
        agsResource.setAlias(svcName);

        try {
            this.getContext().addResource("agsWebJITK" + UUID.randomUUID().toString(), agsResource);

            if (getBackgroundTransparent().equals("true")) {
                AGSMapFunctionality mapFunc = (AGSMapFunctionality) agsResource.getFunctionality("map");

                //mapFunc.getMapDescription().setTransparentColor(mapFunc.getMapServerInfo().getBackgroundColor());
                RgbColor color = new RgbColor();
                color.setRed(new UnsignedByte(255));
                color.setGreen(new UnsignedByte(255));
                color.setBlue(new UnsignedByte(255));

                mapFunc.getMapDescription().setTransparentColor(color);
            }
        
        } catch (Exception e) {
            _logger.warn(TextResources.getResourceString(ResourceProps.ERROR_MESSAGE) + " ArcGIS Web Service " + surl + ".", e);
            this.addServiceErrorMessage = TextResources.getResourceString(ResourceProps.ERROR_MESSAGE) + " ArcGIS Web Service " + surl + ".";
            this.renderMessage(TextResources.getResourceString(ResourceProps.ERROR_MESSAGE) + " ArcGIS Web Service " + surl + ".");
        }
    }

    /**
     * Finish adding data.
     */
    public void finishAddData(TaskEvent event) {
        _logger.info("Adding selected services to the map");
        super.requestTaskRender();

        try {
            String[] svcList = getSelectedServices().split("!");
            this.errorMessage = ResourceProps.SUCCESS_MESSAGE;
            this.addServiceErrorMessage = ResourceProps.SUCCESS_MESSAGE;

            for (int i = 0; i < svcList.length; i++) {
                String[] svcInfo = svcList[i].split("#");

                if (svcInfo.length > 2) {
                    String hostInfo = svcInfo[0];
                    String svc = svcInfo[1];

                    // ArcIMS Service
                    if (hostInfo.indexOf("-ArcIMS") > 0) {
                        addArcIMSResource(svc, parseHostInfoParams(hostInfo));
                    }

                    // WMS Service
                    if (hostInfo.indexOf("OGC (WMS) Service") >= 0) {
                        addWMSResource(svc);
                    }

                    // WFS Service
                    if (hostInfo.indexOf("OGC (WFS) Service") >= 0) {
                        addWFSResource(svc);
                    }

                    // WCS Service
                    if (hostInfo.indexOf("-OGC (WCS) Service") > 0) {
                        addWCSResource(svc);
                    }

                    // ArcGIS Server Local
                    if (hostInfo.indexOf("-ArcGIS Server Local") > 0) {
                        addArcGISServerLocalResource(svc, parseHostInfoParams(hostInfo));
                    }

                    // ArcGIS Server Internet
                    if (hostInfo.indexOf("-ArcGIS Server Internet") > 0) {
                        addArcGISServerInternetResource(svc);
                    }
                }
            }

            //reset extent history
            ExtentHistoryResetter.resetHistory(this.getContext());
        } catch (Exception e) {
            _logger.warn("Unable to create service list.", e);
        }

        restoreAvailableServices();
        this.getContext().refresh();
    }

    public void previewMapService(TaskEvent event) {
        _logger.info("Previewing map service");
        super.requestTaskRender();

        this.errorMessage = ResourceProps.SUCCESS_MESSAGE;
    }

    public void addGISServer(TaskEvent event) {
        _logger.info("Adding GIS Server");
        super.requestTaskRender();

        this.errorMessage = ResourceProps.SUCCESS_MESSAGE;
    }

    public void removeGISServer(TaskEvent event) {
        _logger.info("Removing GIS Server");
        super.requestTaskRender();

        this.errorMessage = ResourceProps.SUCCESS_MESSAGE;
        this.addServiceErrorMessage = null;

        String svcs = getAvailableServices();
        String[] svcList = svcs.split("!");
        this.availableServiceList = new LinkedHashMap<String, String>();

        for (int i = svcList.length - 1; i >= 0; i--) {
            String[] svcInfo = svcList[i].split("#");
            String host = svcInfo[0];
            String svc = svcInfo[1];
            String svcListStr = this.availableServiceList.get(host);

            if (svcListStr == null) {
                svcListStr = svc + "!";
            } else {
                svcListStr += (svc + "!");
            }

            this.availableServiceList.put(host, svcListStr);
        }
    }

    /**
     * Set service renderer layout.
     */
    public void selectServices(TaskEvent event) {
        _logger.info("Setting service renderer layout");
        super.requestTaskRender();

        this.errorMessage = ResourceProps.SUCCESS_MESSAGE;
        ((AddDataTaskInfo) this.taskInfo).selectServiceRendererLayout();
    }

    /**
     * Set preview renderer layout.
     */
    public void previewService(TaskEvent event) {
        _logger.info("Setting service service renderer layout");
        super.requestTaskRender();

        this.errorMessage = ResourceProps.SUCCESS_MESSAGE;
        ((AddDataTaskInfo) this.taskInfo).selectPreviewRendererLayout();
    }

    private void getResourcesFromSession() {
        FacesContext fContext = FacesContext.getCurrentInstance();
        ExternalContext efContext = fContext.getExternalContext();
        String resources = (String) efContext.getSessionMap().get("com.esri.solutions.jitk.web.data.URLResourceHandler.resources");

        if ((resources != null) && (resources.length() > 0)) {
            String[] resourceArray = resources.split(",");

            for (int i = 0; i < resourceArray.length; i++) {
                ResourceObject resource = new ResourceObject(resourceArray[i]);

                if ((resource.getResourceType() != null) && resource.getResourceType().equals("wcs")) {
                    getWCSServiceList(resource.getLocation());
                }
            }
        }
    }

    public Map<String, String> getAvailableServicesList() {
    	getResourcesFromSession();
        return sort(this.availableServiceList);
    }

    public Map<String, String> getSelectedServicesList() {
        return this.selectedServiceList;
    }

    public void setGisResourceFactories(
        Map<String, IGISResourceFactory<GISResource>> factories) {
        m_factories = factories;

        this.m_agsMapResourceFactory = m_factories.get(AGSMapResource.class.getName());
        this.m_agsLocalMapResourceFactory = m_factories.get(AGSLocalMapResource.class.getName());
        this.m_aimsMapResourceFactory = m_factories.get(AIMSMapResource.class.getName());
        this.m_wmsMapResourceFactory = m_factories.get(WMSMapResource.class.getName());
        this.m_wcsMapResourceFactory = m_factories.get(WCSMapResource.class.getName());
        this.m_wfsMapResourceFactory = m_factories.get(WFSMapResource.class.getName());
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -