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

📄 testeditor.java.svn-base

📁 aresde 空间数据开发 例子
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
package test;



import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.TextArea;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JPanel;

import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

import com.esri.arcgis.beans.TOC.TOCBean;
import com.esri.arcgis.beans.map.MapBean;
import com.esri.arcgis.beans.toolbar.ToolbarBean;
import com.esri.arcgis.carto.FeatureLayer;
import com.esri.arcgis.carto.IFeatureLayer;
import com.esri.arcgis.carto.IImageDisplay;
import com.esri.arcgis.carto.IMapDescription;
import com.esri.arcgis.carto.IMapLayerInfo;
import com.esri.arcgis.carto.IMapLayerInfos;
import com.esri.arcgis.carto.IMapServerIdentifyResult;
import com.esri.arcgis.carto.IMapServerIdentifyResults;
import com.esri.arcgis.carto.IMapServerInfo;
import com.esri.arcgis.carto.MapExtent;
import com.esri.arcgis.carto.MapServer;
import com.esri.arcgis.carto.esriIdentifyOption;
import com.esri.arcgis.carto.esriViewDrawPhase;
import com.esri.arcgis.controls.ControlsEditingAttributeCommand;
import com.esri.arcgis.controls.ControlsEditingEditTool;
import com.esri.arcgis.controls.ControlsEditingEditorMenu;
import com.esri.arcgis.controls.ControlsEditingSketchPropertiesCommand;
import com.esri.arcgis.controls.ControlsEditingSketchTool;
import com.esri.arcgis.controls.ControlsEditingTargetToolControl;
import com.esri.arcgis.controls.ControlsMapFullExtentCommand;
import com.esri.arcgis.controls.ControlsMapPanTool;
import com.esri.arcgis.controls.ControlsMapZoomInTool;
import com.esri.arcgis.controls.ControlsMapZoomOutTool;
import com.esri.arcgis.controls.ControlsOpenDocCommand;
import com.esri.arcgis.controls.ControlsRedoCommand;
import com.esri.arcgis.controls.ControlsUndoCommand;
import com.esri.arcgis.controls.IMapControlEvents2Adapter;
import com.esri.arcgis.controls.IMapControlEvents2OnMouseDownEvent;
import com.esri.arcgis.controls.IMapControlEvents2OnMouseUpEvent;
import com.esri.arcgis.controls.IToolbarControlEventsAdapter;
import com.esri.arcgis.controls.IToolbarControlEventsOnItemClickEvent;
import com.esri.arcgis.controls.IToolbarMenu;
import com.esri.arcgis.datasourcesGDB.SdeWorkspaceFactory;
import com.esri.arcgis.geodatabase.IDataset;
import com.esri.arcgis.geodatabase.IEnumDataset;
import com.esri.arcgis.geodatabase.IEnumNetworkElement;
import com.esri.arcgis.geodatabase.IFeatureClass;
import com.esri.arcgis.geodatabase.IFeatureWorkspace;
import com.esri.arcgis.geodatabase.INetworkDataset;
import com.esri.arcgis.geodatabase.INetworkEdge;
import com.esri.arcgis.geodatabase.INetworkForwardStar;
import com.esri.arcgis.geodatabase.INetworkForwardStarAdjacencies;
import com.esri.arcgis.geodatabase.INetworkJunction;
import com.esri.arcgis.geodatabase.INetworkQuery;
import com.esri.arcgis.geodatabase.IWorkspace;
import com.esri.arcgis.geodatabase.IWorkspaceEdit;
import com.esri.arcgis.geodatabase.IWorkspaceEditProxy;
import com.esri.arcgis.geodatabase.IWorkspaceFactory;
import com.esri.arcgis.geodatabase.esriNetworkElementType;
import com.esri.arcgis.geometry.Envelope;
import com.esri.arcgis.geometry.IEnvelope;
import com.esri.arcgis.geometry.IPoint;
import com.esri.arcgis.geometry.IPointCollection;
import com.esri.arcgis.geometry.Point;
import com.esri.arcgis.geometry.esriGeometryType;
import com.esri.arcgis.interop.AutomationException;
import com.esri.arcgis.system.AoInitialize;
import com.esri.arcgis.system.EngineInitializer;
import com.esri.arcgis.system.IPropertySet;
import com.esri.arcgis.system.LongArray;
import com.esri.arcgis.system.PropertySet;
import com.esri.arcgis.system.esriLicenseProductCode;
import com.esri.arcgis.systemUI.ControlsOperationStack;
import com.esri.arcgis.systemUI.ICommand;
import com.esri.arcgis.systemUI.esriCommandStyles;

public class TestEditor {
	
	protected Shell shell;
	private MapBean map;
	ToolbarBean toolbar;
	String arcGISHome = System.getenv("ARCGISHOME");
	private boolean isopen=false;
	com.esri.arcgis.system.PropertySet propSet;
	IWorkspaceFactory Fact;
	IFeatureWorkspace Workspace;
	IFeatureClass fcls;
	final TextArea textArea = new TextArea();
	private MapServer server;
	private IMapServerInfo mapServerInfo;
	private IMapDescription mapDescription;
	private IEnvelope currentExtent;
	private IImageDisplay imageDisplay;
	private IMapServerIdentifyResults identifyResults;
	private IMapServerIdentifyResult result;
	private String mapname;
	private IPropertySet pset;
	private boolean select;
	
	private IPointCollection pc;
	private IPoint p;
	private IPoint p2;
	
	private LongArray longArrayX;
	private LongArray longArrayY;
	
	private MapExtent  mapExtent ;
	
	private INetworkDataset pNetDataset;
	private INetworkQuery pNetworkQuery;
	private INetworkForwardStar pNetworkForwardStar;
	private INetworkForwardStarAdjacencies pAdjacencies;
	private INetworkEdge pNetworkEdge;
	private INetworkJunction pNetworkJunction;
	private INetworkJunction m_pNetworkJunction;
	
	private double[] fromPosition=new double[]{0};
	private double[] toPosition=new double[]{1};
	private boolean[] isFiltered=new boolean[]{false};
	
	private IWorkspaceEdit editor;
	
	private IWorkspace workspace;

	final JPanel mapPanel = new JPanel();
	
	JButton jButton1;

	private static AoInitialize aoInit;
	//private MapControl mymap;
	/**
	 * Launch the application
	 * @param args
	 * @throws IOException 
	 * @throws AutomationException 
	 */
	public static void main(String[] args) throws Exception {
		EngineInitializer.initializeVisualBeans();
		try {
			aoInit  = new AoInitialize();
			aoInit.initialize(esriLicenseProductCode.esriLicenseProductCodeArcEditor);
			TestEditor window = new TestEditor();
			window.open();
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			aoInit.shutdown();
			System.out.println("shutdown...");
		}
	}

	/**
	 * Open the window
	 */
	public void open() throws Exception {
		final Display display = Display.getDefault();
		createContents();
		shell.open();
		shell.layout();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
	}
	
	public IWorkspaceEdit getEditor() throws Exception{
		if(editor==null){
			editor=new IWorkspaceEditProxy(workspace);
		}
		return editor;
	}

	/**
	 * Create contents of the window
	 */
	protected void createContents() throws Exception {
		shell = new Shell();
		shell.setLayout(new FillLayout());
		shell.setSize(500, 400);
		shell.setText("SWT Application");
		
		propSet = new PropertySet();
		propSet.setProperty("SERVER", "192.168.1.220");
		propSet.setProperty("INSTANCE", "5151");
		//propSet.setProperty("DATABASE", "sde");
		propSet.setProperty("USER", "sde");
		propSet.setProperty("PASSWORD", "sde");
		propSet.setProperty("VERSION", "SDE.DEFAULT");
		
		Fact = new SdeWorkspaceFactory();// 定义一个工作空间,并实例化为SDE的工作空间
		workspace = Fact.open(propSet, 0);
		Workspace = (IFeatureWorkspace)workspace ;// 打开SDE工作空间,并转化为地物工作空间
		
		/*SpatialReferenceEnvironment spatialReferenceEnvironment = new SpatialReferenceEnvironment();
		ISpatialReference geographicCoordinateSystem = spatialReferenceEnvironment
				.createGeographicCoordinateSystem(esriSRGeoCSType.esriSRGeoCS_Beijing1954);
*/
		
		//Workspace.createFeatureDataset("testRealation", geographicCoordinateSystem);
		
		mapExtent= new MapExtent();
		p=new Point();
		p2=new Point();
		map=new MapBean();
		
		//去掉地图边框.很关键,影响map的显示尺寸
		map.setBorderStyle(com.esri.arcgis.controls.esriControlsBorderStyle.esriNoBorder);
		
		map.setShowScrollbars(false);
		final BorderLayout borderLayout = new BorderLayout();
		map.setLayout(borderLayout);
		Color bg=new Color(255,255,255);
		map.setBackColor(0);
		//map.setMousePointer(com.esri.arcgis.controls.esriControlsMousePointer.esriPointerHourglass);
		//server=new MapServer();
		//server.startWithData(Workspace.openFeatureDataset("SLB1027_"));
		//imageDisplay=new ImageDisplay();
		//imageDisplay.setDeviceResolution(96);
		//
		//server.construct(propSet);
		//map.setBackground(bg);
		/*String path=arcGISHome + "/java/samples/data/usa";
		String name="states.shp";
		File shapefileFile = new File(path,name);*/
		/*if (!shapefileFile.exists()false) {
			System.out.println("File is not exist");
		}else{
		}*/
		
		
		
		toolbar = new ToolbarBean();
		//toolbar.setItemsString("5|controls/ControlsEditingEditorMenu|0|-1|0|0|1");
		//toolbar.setItemsString("8|controls/ControlsSelectTool|0|-1|0|0|1;5|controls/ControlsAddDataCommand|0|-1|0|0|1;3|controls/ControlsEditingStopCommand|0|-1|0|0|1;3|controls/ControlsEditingStartCommand|0|-1|0|0|1;3|controls/ControlsEditingSaveCommand|0|-1|0|0|1;3|controls/ControlsEditingTargetToolControl|0|-1|0|0|1;3|controls/ControlsEditingSnapVertexCommand|0|-1|0|0|0;3|controls/ControlsEditingTaskToolControl|0|-1|0|0|1;3|controls/ControlsEditingSketchSegmentDeflectionCommand|0|-1|0|0|0;3|controls/ControlsEditingSketchTool|0|-1|0|0|1");
		/**
		 *默认情况下,ToolbarControl 每半秒钟自动更新其自身一次,以确保驻
		 *留在 ToolbarControl 上的每个工具条命令项的外观与其底层命令的
		 *Enabled、Bitmap 和 Caption 属性同步.
		 *UpdateInterval 为 0 会停止任何自动发生的更新.
		 * */
		
		CustomControlsEditingEditorMenu editorMenu= new CustomControlsEditingEditorMenu();
		
		//ControlsOpenDocCommand openDocCommand = new ControlsOpenDocCommand();
		editorMenu.setCaption("编辑器");
		
		toolbar.setUpdateInterval(0);
		//toolbar.addItem(openDocCommand,0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
		toolbar.addItem(editorMenu,0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
		toolbar.addItem(new ControlsEditingEditTool(),0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
		toolbar.addItem(new ControlsEditingSketchTool(),0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
		toolbar.addItem(new ControlsUndoCommand(),0,-1,true,0,esriCommandStyles.esriCommandStyleIconOnly);
		toolbar.addItem(new ControlsRedoCommand(),0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
		toolbar.addItem(new ControlsEditingAttributeCommand(),0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
		toolbar.addItem(new ControlsEditingSketchPropertiesCommand(),0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
		toolbar.addItem(new ControlsEditingTargetToolControl(),0,-1,true,0,esriCommandStyles.esriCommandStyleIconOnly);
		//Create an operation stack for the undo and redo commands to use
		ControlsOperationStack operationStack = new ControlsOperationStack();
		toolbar.setOperationStackByRef(operationStack);
		
		toolbar.addItem( new ControlsMapZoomInTool(), 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly );
		toolbar.addItem( new ControlsMapZoomOutTool(), 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly );
		toolbar.addItem( new ControlsMapPanTool(), 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly );
		toolbar.addItem( new ControlsMapFullExtentCommand(), 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly );
		
		toolbar.setToolTipText("工具");
		//ICommand ic = toolbar.getItem(0).getCommand();
		
		//IToolControl ici;
		
		
		
		//IToolbarMenu ti = toolbar.getItem(0).getMenu();
		//ti.setCaption("编辑");
		
		toolbar.setBuddyControl(map);

		final Composite composite = new Composite(shell, SWT.EMBEDDED);
		composite.setLayout(new FillLayout());

		final Frame frame = SWT_AWT.new_Frame(composite);

		final JPanel toolbarPanel = new JPanel();
		toolbarPanel.setLayout(new BorderLayout());
		toolbarPanel.add(toolbar);
		frame.add(toolbarPanel, BorderLayout.NORTH);
		//mapPanel.set
		mapPanel.setLayout(new BorderLayout());
		mapPanel.add(map);
		frame.add(mapPanel, BorderLayout.CENTER);

		final JPanel buttonPanel = new JPanel();
		buttonPanel.setAutoscrolls(true);
		buttonPanel.setMaximumSize(new Dimension(0, 100));
		final BorderLayout borderLayout_1 = new BorderLayout();
		borderLayout_1.setVgap(100);
		buttonPanel.setLayout(borderLayout_1);
		frame.add(buttonPanel, BorderLayout.SOUTH);

		textArea.setName("textArea");
		buttonPanel.add(getJButton1());
		//buttonPanel.add(textArea);

		/*final JButton openShpButton = new JButton();
		openShpButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if(!isopen){
					FileDialog fileDialog = new FileDialog(frame, "Open ShapeFile", FileDialog.LOAD);
					fileDialog.setVisible(true);
					String path = fileDialog.getDirectory();
					String name = fileDialog.getFile();

⌨️ 快捷键说明

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