Mercurial > postarc > postarc
view Postarc/Postarc/GUI/FormNewPostGISFeatClass.cs @ 0:1aca3d413885 tip
Initial import of Postarc
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Fri, 05 Oct 2012 23:55:06 +0200 |
parents | |
children |
line wrap: on
line source
/* * Postarc * * Author: * Christian Lins <christian.lins@intevation.de> * * Copyright: * Copyright (C) 2012 Intevation GmbH <http://www.intevation.de/> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.Geometry; using Postarc.Feature; namespace Postarc.GUI { public partial class FormNewPostGISFeatClass : Form { public FormNewPostGISFeatClass() { InitializeComponent(); this.cmbGeometryType.SelectedIndex = 0; } private void btnCreate_Click(object sender, EventArgs e) { if (cmbGeometryType.SelectedItem == null) { MessageBox.Show("Please choose the Shape type of the new FeatureClass!", "Shape type", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (txtLayerName.Text == null || txtLayerName.Text.Equals("")) { MessageBox.Show("Please enter a name for the new layer!", "Layer name", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (txtFCName.Text == null || txtFCName.Text.Equals("")) { MessageBox.Show("Please enter a name for the FeatureClass!", "FeatureClass name", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } esriGeometryType shapeType = esriGeometryType.esriGeometryNull; if (cmbGeometryType.SelectedItem.Equals("POINT")) { shapeType = esriGeometryType.esriGeometryPoint; } else if (cmbGeometryType.SelectedItem.Equals("POLYGON")) { shapeType = esriGeometryType.esriGeometryPolygon; } else if (cmbGeometryType.SelectedItem.Equals("POLYLINE")) { shapeType = esriGeometryType.esriGeometryPolyline; } //PostarcClassDescription.Register(); IFeatureClass featClass; //if (cmbGeometryTable.SelectedText!= null) { featClass = new Postarc.Feature.FeatureClass( this.cmbDatabaseConnections.SelectedItem as PostGISConnection, this.cmbGeometryTable.SelectedItem as string); } //else //{ // featClass = new PostGISFeatureClass(shapeType); //} // Load field definitions from geometry table Visible = false; Application.DoEvents(); // Create FeatureLayer that encapsulates our FeatureClass IFeatureLayer featLayer = new Postarc.Feature.FeatureLayer(); featLayer.FeatureClass = featClass; featLayer.Name = txtLayerName.Text; // Add FeatureLayer to active map document ArcMap.Document.FocusMap.AddLayer(featLayer); } private void btnEditConnections_Click(object sender, EventArgs e) { PostGISConnection conn = this.cmbDatabaseConnections.SelectedItem as PostGISConnection; if (conn != null) { FormConnectionProperties connProp = new FormConnectionProperties(conn); connProp.ShowDialog(); } else { MessageBox.Show("Please select a connection profile first!"); } } private void FormNewPostGISFeatClass_Shown(object sender, EventArgs e) { int selIndex; // Fill the database connections to the combo box and preselect one selIndex = this.cmbDatabaseConnections.SelectedIndex; this.cmbDatabaseConnections.Items.Clear(); this.cmbDatabaseConnections.Items.AddRange(Settings.LoadSavedProfiles().ToArray()); this.cmbDatabaseConnections.Items.Add(new PostGISConnection()); this.cmbDatabaseConnections.SelectedIndex = 0; if (selIndex >= 0) { this.cmbDatabaseConnections.SelectedIndex = selIndex; } } private void FormNewPostGISFeatClass_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; Visible = false; } private void cmbDatabaseConnections_SelectedIndexChanged(object sender, EventArgs e) { if (cmbDatabaseConnections.SelectedIndex >= 0) { PostGISConnection conn = cmbDatabaseConnections.SelectedItem as PostGISConnection; this.cmbGeometryTable.Items.Clear(); this.cmbGeometryTable.Items.AddRange(conn.QueryTables().ToArray()); this.cmbGeometryTable.SelectedIndex = 0; } } } }