christian@0: /* christian@0: * Postarc christian@0: * christian@0: * Author: christian@0: * Christian Lins christian@0: * christian@0: * Copyright: christian@0: * Copyright (C) 2012 Intevation GmbH christian@0: * christian@0: * This program is free software: you can redistribute it and/or modify christian@0: * it under the terms of the GNU Lesser General Public License as published by christian@0: * the Free Software Foundation, either version 3 of the License, or christian@0: * (at your option) any later version. christian@0: * christian@0: * This program is distributed in the hope that it will be useful, christian@0: * but WITHOUT ANY WARRANTY; without even the implied warranty of christian@0: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the christian@0: * GNU General Public License for more details. christian@0: * christian@0: * You should have received a copy of the GNU Lesser General Public License christian@0: * along with this program. If not, see . christian@0: */ christian@0: christian@0: using System; christian@0: using System.Collections.Generic; christian@0: using System.Linq; christian@0: using System.Text; christian@0: using ESRI.ArcGIS.Geodatabase; christian@0: christian@0: namespace Postarc.Geodatabase christian@0: { christian@0: public class SelectionSet : ISelectionSet christian@0: { christian@0: protected Postarc.Feature.FeatureClass featureClass; christian@0: protected List list = new List(); christian@0: christian@0: internal List List christian@0: { christian@0: get christian@0: { christian@0: return this.list; christian@0: } christian@0: } christian@0: christian@0: public SelectionSet(Postarc.Feature.FeatureClass featureClass) christian@0: { christian@0: this.featureClass = featureClass; christian@0: } christian@0: christian@0: public void Add(int oid) christian@0: { christian@0: this.list.Add(oid); christian@0: } christian@0: christian@0: /// christian@0: /// Do not call this method, says API... okay... christian@0: /// christian@0: /// christian@0: /// christian@0: public void AddList(int Count, ref int OIDList) christian@0: { christian@0: // Does nothing christian@0: } christian@0: christian@0: public void Combine(ISelectionSet otherSet, esriSetOperation setOp, out ISelectionSet resultSet) christian@0: { christian@0: SelectionSet newSet = new SelectionSet(featureClass); christian@0: newSet.list.AddRange(list); christian@0: newSet.list.AddRange(((SelectionSet)otherSet).list); christian@0: resultSet = newSet as ISelectionSet; christian@0: } christian@0: christian@0: public int Count christian@0: { christian@0: get christian@0: { christian@0: return this.list.Count; christian@0: } christian@0: } christian@0: christian@0: /// christian@0: /// Always returns null. christian@0: /// christian@0: public ESRI.ArcGIS.esriSystem.IName FullName christian@0: { christian@0: get christian@0: { christian@0: return null; christian@0: } christian@0: } christian@0: christian@0: public IEnumIDs IDs christian@0: { christian@0: get christian@0: { christian@0: return new SelectionSetEnumerator(this); christian@0: } christian@0: } christian@0: christian@0: /// christian@0: /// Not implemented. christian@0: /// christian@0: public void MakePermanent() christian@0: { christian@0: throw new NotImplementedException(); christian@0: } christian@0: christian@0: public void Refresh() christian@0: { christian@0: christian@0: } christian@0: christian@0: /// christian@0: /// Do not call christian@0: /// christian@0: /// christian@0: /// christian@0: public void RemoveList(int count, ref int oidList) christian@0: { christian@0: christian@0: } christian@0: christian@0: public void Search(IQueryFilter queryFilter, bool recycling, out ICursor cursor) christian@0: { christian@0: // TODO: Merge queryFilter with this SelectionSet christian@0: cursor = featureClass.Search(queryFilter, recycling) as ICursor; christian@0: } christian@0: christian@0: public ISelectionSet Select( christian@0: IQueryFilter queryFilter, christian@0: esriSelectionType selType, christian@0: esriSelectionOption selOption, christian@0: IWorkspace selectionContainer) christian@0: { christian@0: throw new NotImplementedException(); christian@0: } christian@0: christian@0: public ITable Target christian@0: { christian@0: get christian@0: { christian@0: return this.featureClass; christian@0: } christian@0: } christian@0: } christian@0: }