using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using Mesnac.PlugIn.Pad;
using Mesnac.PlugIn.View;
namespace Mesnac.PlugIn.Workbench
{
///
/// 工作区基础接口
///
public interface IWorkbench
{
///
/// 工作区主菜单
///
MenuStrip TopMenu { get; }
///
/// 工作区工具栏
///
ToolStrip ToolStrip { get; }
///
/// 工作台布局属性
///
IWorkbenchLayout WorkbenchLayout { get; set; }
///
/// 是否全屏
///
bool FullScreen { get; set; }
///
/// 系统关闭标识
///
bool CloseFlag { get; set; }
///
/// 标题,显示在标题栏
///
string Title { get; set; }
///
/// 用于保存的工作区面板集合,只读
///
List PadContentCollection { get; }
///
/// 用于保存设计时工作区窗口的集合
///
List ViewContentCollection { get; }
///
/// 用于保存运行时工作区窗口的字典
///
Dictionary ViewContentDic { get; }
///
/// 活动对象,只读
///
object ActiveContent { get; }
///
/// 当前视图,只读
///
object CurrentViewContent { get; set; }
///
/// 增加一个新的对象在工作区中
///
///
void ShowPad(PadDescriptor content);
///
/// 返回一个指定类型的面板
///
///
///
PadDescriptor GetPad(Type type);
///
/// 显示一个视图窗口
///
///
void ShowView(IViewContent content);
///
/// 显示一个视图窗口
///
/// 视图内容
/// 是否允许重复保存
void ShowView(IViewContent content, bool isAllowRepeat);
///
/// 显示一个视图窗口
///
/// 视图窗口标识
/// 视图内容
void ShowView(string key, IViewContent content);
///
/// 显示一个视图窗口
///
/// 视图窗口标识
/// 视图内容
void ShowView(string key, IViewContent content, Mesnac.Docking.DockState dockState);
///
/// 获取视图窗口
///
/// 视图窗口标识
///
IWorkbenchWindow GetViewByKey(string key);
///
/// 获取视图窗口
///
///
///
IWorkbenchWindow GetViewByViewContentID(string viewContentID);
///
/// 根据视图类型,获取单个视图窗口
///
///
///
IWorkbenchWindow GetViewByType(Type type);
///
/// 根据视图类型,获取对应类型的所有视图窗口
///
///
///
List GetViewsByType(Type type);
///
/// 获取自定义视图窗口集合
///
///
List GetCustomerViews();
///
/// 关闭一个视图窗口
///
/// 要关闭的视图对象
void CloseView(IViewContent content);
///
/// 关闭一个视图窗口
///
/// 要关闭的视图对象
/// 是否真正关闭
void CloseView(IViewContent content, bool isRealClose);
///
/// 关闭所有视图窗口
///
void CloseAllViews();
///
/// 关闭所有视图窗口
///
/// 是否真正关闭
void CloseAllViews(bool isRealClose);
///
/// 根据键值关闭一个视图窗口
///
/// 要关闭的视图键值
void CloseViewByKey(string key);
///
/// 根据键值关闭一个视图窗口
///
/// 要关闭的视图键值
/// 是否真正关闭
void CloseViewByKey(string key, bool isRealClose);
///
/// 关闭所有的键视图窗口
///
void CloseAllKeysView();
///
/// 关闭所有的键视图窗口
///
/// 是否真正关闭
void CloseAllKeysView(bool isRealClose);
///
/// 刷新插件
///
void RefreshPlugIn();
///
/// 重绘所有组件
///
void RedrawAllComponents();
///
/// 退出系统方法
///
void Exit();
///
/// 刷新插件事件
///
event EventHandler AfterRefreshPlugIn;
///
/// 初始化完毕事件
///
event EventHandler InitFinished;
///
/// 刷新工作台界面事件
///
event EventHandler RefreshUI;
///
/// 系统即将关闭事件
///
event EventHandler ShutDown;
}
}