📄 testeditor.java.svn-base
字号:
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 + -