Mercurial > postarc > postarc
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Postarc/Postarc/Geodatabase/SelectionSet.cs Fri Oct 05 23:55:06 2012 +0200 @@ -0,0 +1,146 @@ +/* + * 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.Linq; +using System.Text; +using ESRI.ArcGIS.Geodatabase; + +namespace Postarc.Geodatabase +{ + public class SelectionSet : ISelectionSet + { + protected Postarc.Feature.FeatureClass featureClass; + protected List<int> list = new List<int>(); + + internal List<int> List + { + get + { + return this.list; + } + } + + public SelectionSet(Postarc.Feature.FeatureClass featureClass) + { + this.featureClass = featureClass; + } + + public void Add(int oid) + { + this.list.Add(oid); + } + + /// <summary> + /// Do not call this method, says API... okay... + /// </summary> + /// <param name="Count"></param> + /// <param name="OIDList"></param> + public void AddList(int Count, ref int OIDList) + { + // Does nothing + } + + public void Combine(ISelectionSet otherSet, esriSetOperation setOp, out ISelectionSet resultSet) + { + SelectionSet newSet = new SelectionSet(featureClass); + newSet.list.AddRange(list); + newSet.list.AddRange(((SelectionSet)otherSet).list); + resultSet = newSet as ISelectionSet; + } + + public int Count + { + get + { + return this.list.Count; + } + } + + /// <summary> + /// Always returns null. + /// </summary> + public ESRI.ArcGIS.esriSystem.IName FullName + { + get + { + return null; + } + } + + public IEnumIDs IDs + { + get + { + return new SelectionSetEnumerator(this); + } + } + + /// <summary> + /// Not implemented. + /// </summary> + public void MakePermanent() + { + throw new NotImplementedException(); + } + + public void Refresh() + { + + } + + /// <summary> + /// Do not call + /// </summary> + /// <param name="Count"></param> + /// <param name="OIDList"></param> + public void RemoveList(int count, ref int oidList) + { + + } + + public void Search(IQueryFilter queryFilter, bool recycling, out ICursor cursor) + { + // TODO: Merge queryFilter with this SelectionSet + cursor = featureClass.Search(queryFilter, recycling) as ICursor; + } + + public ISelectionSet Select( + IQueryFilter queryFilter, + esriSelectionType selType, + esriSelectionOption selOption, + IWorkspace selectionContainer) + { + throw new NotImplementedException(); + } + + public ITable Target + { + get + { + return this.featureClass; + } + } + } +}