using ESRI.ArcGIS.Geodatabase; using KGIS.Plugin.LayerProperty.EventHandler; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace KGIS.Plugin.LayerProperty.Interface { public interface ILayerScheme { event ItemsChangedEventHandler SchemeItemsChanged; event CurrentObjectChangedEventHandler CurrentDisplaySchemeChanged; event CurrentObjectChangedEventHandler CurrentDisplaySchemeChanging; event System.EventHandler CurrentDisplaySchemeUpdate; event System.EventHandler SchemeContentChanged; event System.EventHandler SchemeTempContentChanged; string Name { get; set; } string Category { get; set; } string Description { get; set; } string Key { get; set; } bool IsDirty { get; } string TempLayersFilePath { get; set; } bool LoadTempLayers { get; set; } IDisplayScheme DefaultDisplayScheme { get; } IDisplayScheme CurrentDisplayScheme { get; set; } List Items { get; set; } List LayerItems { get; } List CatalogItems { get; } List FirstLevelItems { get; set; } List Workspaces { get; } List DisplaySchemes { get; set; } void SortItems(); void LoadItems(); void ReLoadFirstLevelItems(); void ReLoadDisplaySchemes(); IDisplayScheme GetDisplaySchemeByKey(string key); ISchemeItem GetSchemeItemByKey(string key); ISchemeItem GetItemByPhysicName(string physicName); ISchemeItem GetItemByName(string name); List GetItemsByPhysicName(string physicName); List GetItemsByName(string name); List GetLyerItemsByPhysicAndAliasName(string physicName, string aliasName); bool AddItem(ISchemeItem parentItem, ISchemeItem item); bool AddItem(ISchemeItem item); IDisplayScheme CreateDisplayScheme(IDisplayScheme templateScheme, string Name, string key, string Description); bool DeleteDisplayScheme(string key); bool DeleteDisplayScheme(IDisplayScheme scheme); bool DeleteAllDisplaySchemes(); bool DeleteItem(string itemKey); bool DeleteItem(ISchemeItem item); bool DeleteAllItems(); bool AcceptChanges(); bool AcceptTempLayersChanges(); void RejectChanges(); } }