using System; using System.Collections.Generic; using System.Linq; using Core.Common.Controls; using Core.Common.Controls.TreeView; using Core.Common.Gui.Forms; using Core.Common.Gui.Plugin; namespace Core.Common.Gui { /// /// Template class for gui plugin definitions. /// public abstract class GuiPlugin : IDisposable { /// /// Gets or sets the gui. /// public virtual IGui Gui { get; set; } /// /// Activates the gui plugin. /// public virtual void Activate() { } /// /// Deactivates the gui plugin. /// public virtual void Deactivate() { } /// /// Ribbon command handler (adding tabs, groups, buttons, etc.) which can be provided by the gui plugin. /// public virtual IRibbonCommandHandler RibbonCommandHandler { get { return null; } } /// /// Property info objects which can be provided by the gui plugin. /// public virtual IEnumerable GetPropertyInfos() { return Enumerable.Empty(); } /// /// View information objects which can be provided by the gui plugin. /// public virtual IEnumerable GetViewInfoObjects() { yield break; } /// /// Node presenters which can be provided by the gui plugin. /// public virtual IEnumerable GetProjectTreeViewNodePresenters() { yield break; } /// /// This method returns an enumeration of . /// /// The enumeration of provided by the . public virtual IEnumerable GetTreeNodeInfos() { yield break; } public virtual void Dispose() { Gui = null; } public virtual IEnumerable GetChildDataWithViewDefinitions(object dataObject) { yield break; } } }