annotate 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
rev   line source
0
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
1 /*
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
2 * Postarc
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
3 *
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
4 * Author:
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
5 * Christian Lins <christian.lins@intevation.de>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
6 *
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
7 * Copyright:
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
8 * Copyright (C) 2012 Intevation GmbH <http://www.intevation.de/>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
9 *
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
10 * This program is free software: you can redistribute it and/or modify
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
11 * it under the terms of the GNU Lesser General Public License as published by
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
12 * the Free Software Foundation, either version 3 of the License, or
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
13 * (at your option) any later version.
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
14 *
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful,
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
18 * GNU General Public License for more details.
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
19 *
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
20 * You should have received a copy of the GNU Lesser General Public License
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
21 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
22 */
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
23
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
24 using System;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
25 using System.Collections.Generic;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
26 using System.ComponentModel;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
27 using System.Data;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
28 using System.Drawing;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
29 using System.Linq;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
30 using System.Text;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
31 using System.Windows.Forms;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
32 using ESRI.ArcGIS.Carto;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
33 using ESRI.ArcGIS.Geodatabase;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
34 using ESRI.ArcGIS.Geometry;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
35 using Postarc.Feature;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
36
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
37 namespace Postarc.GUI
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
38 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
39 public partial class FormNewPostGISFeatClass : Form
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
40 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
41 public FormNewPostGISFeatClass()
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
42 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
43 InitializeComponent();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
44 this.cmbGeometryType.SelectedIndex = 0;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
45 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
46
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
47 private void btnCreate_Click(object sender, EventArgs e)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
48 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
49 if (cmbGeometryType.SelectedItem == null)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
50 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
51 MessageBox.Show("Please choose the Shape type of the new FeatureClass!", "Shape type", MessageBoxButtons.OK, MessageBoxIcon.Warning);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
52 return;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
53 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
54 if (txtLayerName.Text == null || txtLayerName.Text.Equals(""))
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
55 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
56 MessageBox.Show("Please enter a name for the new layer!", "Layer name", MessageBoxButtons.OK, MessageBoxIcon.Warning);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
57 return;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
58 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
59 if (txtFCName.Text == null || txtFCName.Text.Equals(""))
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
60 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
61 MessageBox.Show("Please enter a name for the FeatureClass!", "FeatureClass name", MessageBoxButtons.OK, MessageBoxIcon.Warning);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
62 return;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
63 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
64
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
65 esriGeometryType shapeType = esriGeometryType.esriGeometryNull;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
66 if (cmbGeometryType.SelectedItem.Equals("POINT"))
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
67 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
68 shapeType = esriGeometryType.esriGeometryPoint;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
69 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
70 else if (cmbGeometryType.SelectedItem.Equals("POLYGON"))
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
71 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
72 shapeType = esriGeometryType.esriGeometryPolygon;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
73 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
74 else if (cmbGeometryType.SelectedItem.Equals("POLYLINE"))
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
75 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
76 shapeType = esriGeometryType.esriGeometryPolyline;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
77 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
78
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
79 //PostarcClassDescription.Register();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
80
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
81 IFeatureClass featClass;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
82 //if (cmbGeometryTable.SelectedText!= null)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
83 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
84 featClass = new Postarc.Feature.FeatureClass(
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
85 this.cmbDatabaseConnections.SelectedItem as PostGISConnection,
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
86 this.cmbGeometryTable.SelectedItem as string);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
87 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
88 //else
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
89 //{
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
90 // featClass = new PostGISFeatureClass(shapeType);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
91 //}
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
92
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
93 // Load field definitions from geometry table
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
94
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
95 Visible = false;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
96 Application.DoEvents();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
97
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
98 // Create FeatureLayer that encapsulates our FeatureClass
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
99 IFeatureLayer featLayer = new Postarc.Feature.FeatureLayer();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
100 featLayer.FeatureClass = featClass;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
101 featLayer.Name = txtLayerName.Text;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
102
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
103 // Add FeatureLayer to active map document
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
104 ArcMap.Document.FocusMap.AddLayer(featLayer);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
105 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
106
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
107 private void btnEditConnections_Click(object sender, EventArgs e)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
108 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
109 PostGISConnection conn = this.cmbDatabaseConnections.SelectedItem as PostGISConnection;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
110 if (conn != null)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
111 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
112 FormConnectionProperties connProp = new FormConnectionProperties(conn);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
113 connProp.ShowDialog();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
114 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
115 else
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
116 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
117 MessageBox.Show("Please select a connection profile first!");
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
118 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
119 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
120
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
121 private void FormNewPostGISFeatClass_Shown(object sender, EventArgs e)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
122 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
123 int selIndex;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
124
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
125 // Fill the database connections to the combo box and preselect one
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
126 selIndex = this.cmbDatabaseConnections.SelectedIndex;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
127 this.cmbDatabaseConnections.Items.Clear();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
128 this.cmbDatabaseConnections.Items.AddRange(Settings.LoadSavedProfiles().ToArray());
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
129 this.cmbDatabaseConnections.Items.Add(new PostGISConnection());
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
130 this.cmbDatabaseConnections.SelectedIndex = 0;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
131 if (selIndex >= 0)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
132 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
133 this.cmbDatabaseConnections.SelectedIndex = selIndex;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
134 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
135 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
136
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
137 private void FormNewPostGISFeatClass_FormClosing(object sender, FormClosingEventArgs e)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
138 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
139 e.Cancel = true;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
140 Visible = false;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
141 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
142
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
143 private void cmbDatabaseConnections_SelectedIndexChanged(object sender, EventArgs e)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
144 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
145 if (cmbDatabaseConnections.SelectedIndex >= 0)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
146 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
147 PostGISConnection conn = cmbDatabaseConnections.SelectedItem as PostGISConnection;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
148 this.cmbGeometryTable.Items.Clear();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
149 this.cmbGeometryTable.Items.AddRange(conn.QueryTables().ToArray());
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
150 this.cmbGeometryTable.SelectedIndex = 0;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
151 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
152 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
153 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
154 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)