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

📄 georsstask.java

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JAVA
字号:
package com.esri.solutions.jitk.web.tasks.feed;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;

import com.esri.adf.web.data.WebContext;
import com.esri.adf.web.data.WebMap;
import com.esri.adf.web.data.geometry.WebExtent;
import com.esri.adf.web.data.geometry.WebGeometry;
import com.esri.adf.web.data.geometry.WebPoint;
import com.esri.adf.web.data.results.WebResults;
import com.esri.adf.web.data.tasks.TaskInfo;
import com.esri.adf.web.faces.event.MapEvent;
import com.esri.adf.web.faces.event.TaskEvent;
import com.esri.solutions.jitk.web.tasks.FeatureSelectionTask;
import com.sun.syndication.io.FeedException;

@SuppressWarnings("serial")
public class GeorssTask extends FeatureSelectionTask {
	private static final Logger _logger = Logger.getLogger(GeorssTask.class);
	
	private GeorssTaskInfo _taskInfo = null;
	private String _url = "";
	private Map<String, String> _urls = null;
	private List<Feed> _feeds = null;
	private String footerNote = null;


	/**
	 * Get footer note
	 */
	public String getFooterNote(){
		return this.footerNote;
	}
	/**
	 * Set footer note
	 */
	public void setFooterNote(String footerNote){
		this.footerNote = footerNote;
	}
	
	public GeorssTask() {
		super();
		setTaskInfo(new GeorssTaskInfo());
		this._feeds = new ArrayList<Feed>();
	}
	
	public TaskInfo getTaskInfo() {
		if (this.getContext() == null) {
			_taskInfo.getTaskDescriptor().setDisabled(true);
			_logger.warn("WebContext not set, disabling");
		}

		return this._taskInfo;
	}

	public void setTaskInfo(TaskInfo taskInfo) {
		this._taskInfo = (GeorssTaskInfo) taskInfo;
		super.setTaskInfo(this._taskInfo);
	}
	
	public String getUrl() {
		return _url;
	}

	public void setUrl(String url) {
		this._url = url;
	}
	
	public void doNotSetUrl(String url) {
	}
	
	public void setUrls(Map<String, String> urls) {
		this._urls = urls;
	}
	
	public Map<String, String> getUrls() {
		return this._urls;
	}

	public void add(TaskEvent event) {
		try {
			_logger.info("Adding GeoRSS feed");
			super.requestTaskRender();
			
			WebContext webContext = event.getWebContext();
			setContext(webContext);
			Feed feed = new Feed(this._url, webContext);
			feed.read();
			_feeds.add(feed);
			this._url = "";
			
			webContext.refresh();
			
		} catch(FeedException ex) { 
			_logger.error("Can't parse/generate feed content.", ex);
			this.renderResourceMessage("jitk.task.addGeoRssFeed.ui.feedUrl.reading.error", messageType.ERROR);
			
		} catch(IOException ex) {
			_logger.error("IOException thrown while reading feed.", ex);
			this.renderResourceMessage("jitk.task.addGeoRssFeed.ui.feedUrl.reading.error", messageType.ERROR);
		}
	}
	
	public void removeAll(TaskEvent event) {
		try {
			_logger.info("Removing GeoRSS feeds from map");
			super.requestTaskRender();
			
			WebContext webContext = event.getWebContext();
			setContext(webContext);
			for(Feed feed : _feeds) { feed.destroy(); }
			_feeds.clear();
			
			webContext.refresh();
		}
		catch (Exception ex) {
			_logger.error("Could not remove GeoRSS feed from map");
		}
	}
	
	public void identify(MapEvent event) {
		try {
			_logger.info("Performing identify on GeoRSS layer");
			super.requestTaskRender();
			
			WebContext webContext = event.getWebContext();
			setContext(webContext);
			WebResults webResults = webContext.getWebResults();
			WebMap webMap = webContext.getWebMap();
			WebGeometry geometry = event.getWebGeometry().toMapGeometry(webMap);
			WebExtent extent = null;
			
			if (geometry instanceof WebPoint) {
				double d = webMap.getCurrentExtent().getWidth() / webMap.getWidth() * 6;
				WebPoint pt = (WebPoint) geometry;
				extent = new WebExtent(pt.getX() - d, pt.getY() - d, pt.getX() + d, pt.getY() + d, pt.getSpatialReference());
			} 
			
			for(Feed feed : _feeds) {
				List<GeorssQueryResult> entries = feed.identifyEntries(extent);
				if(entries != null && !entries.isEmpty()) {
					webResults.addResultsWithActionMap("Identify Feed on " + feed.getName(), entries, "getName", "getDetails", super.getActions(), "clearGraphic");
				}
			}
			
			webContext.refresh(webContext.getWebMap());
		}
		catch (Exception ex) {
			_logger.error("Could not perform identify on GeoRSS layer", ex);
		}
	}
}

⌨️ 快捷键说明

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