annotate Postarc/Postarc/Geodatabase/SelectionSet.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.Linq;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
27 using System.Text;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
28 using ESRI.ArcGIS.Geodatabase;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
29
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
30 namespace Postarc.Geodatabase
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
31 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
32 public class SelectionSet : ISelectionSet
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
33 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
34 protected Postarc.Feature.FeatureClass featureClass;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
35 protected List<int> list = new List<int>();
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 internal List<int> List
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 get
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 return this.list;
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 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
44
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
45 public SelectionSet(Postarc.Feature.FeatureClass featureClass)
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 this.featureClass = featureClass;
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
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
50 public void Add(int oid)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
51 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
52 this.list.Add(oid);
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
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
55 /// <summary>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
56 /// Do not call this method, says API... okay...
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
57 /// </summary>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
58 /// <param name="Count"></param>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
59 /// <param name="OIDList"></param>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
60 public void AddList(int Count, ref int OIDList)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
61 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
62 // Does nothing
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 public void Combine(ISelectionSet otherSet, esriSetOperation setOp, out ISelectionSet resultSet)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
66 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
67 SelectionSet newSet = new SelectionSet(featureClass);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
68 newSet.list.AddRange(list);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
69 newSet.list.AddRange(((SelectionSet)otherSet).list);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
70 resultSet = newSet as ISelectionSet;
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
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
73 public int Count
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
74 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
75 get
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
76 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
77 return this.list.Count;
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 }
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 /// <summary>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
82 /// Always returns null.
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
83 /// </summary>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
84 public ESRI.ArcGIS.esriSystem.IName FullName
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
85 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
86 get
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 return null;
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 }
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 public IEnumIDs IDs
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
93 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
94 get
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
95 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
96 return new SelectionSetEnumerator(this);
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 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
99
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
100 /// <summary>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
101 /// Not implemented.
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
102 /// </summary>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
103 public void MakePermanent()
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
104 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
105 throw new NotImplementedException();
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
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
108 public void Refresh()
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
109 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
110
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
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
113 /// <summary>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
114 /// Do not call
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
115 /// </summary>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
116 /// <param name="Count"></param>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
117 /// <param name="OIDList"></param>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
118 public void RemoveList(int count, ref int oidList)
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 }
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 public void Search(IQueryFilter queryFilter, bool recycling, out ICursor cursor)
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 // TODO: Merge queryFilter with this SelectionSet
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
126 cursor = featureClass.Search(queryFilter, recycling) as ICursor;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
127 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
128
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
129 public ISelectionSet Select(
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
130 IQueryFilter queryFilter,
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
131 esriSelectionType selType,
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
132 esriSelectionOption selOption,
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
133 IWorkspace selectionContainer)
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 throw new NotImplementedException();
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
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
138 public ITable Target
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
139 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
140 get
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 return this.featureClass;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
143 }
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 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
146 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)