博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

CodeBuilder之Tool接口

Posted on 2010-01-11 00:08  faib  阅读(429)  评论(0编辑  收藏  举报
代码
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using FaibClass.BasePackage;

namespace FaibClass.ToolPackage
{
    
public interface IBaseTool : IPackage
    {
        
/// <summary>
        
/// 开发框架。
        
/// </summary>
        DEVFrame DEVFrame { setget; }
        
/// <summary>
        
/// 菜单上的图标。
        
/// </summary>
        Image Image { get; }
        
/// <summary>
        
/// 是否在启动时显示。
        
/// </summary>
        bool ShowItOnStart { get; }
        
/// <summary>
        
/// 工具启动时的处理。
        
/// </summary>
        void OnStart(params object[] pars);
        
/// <summary>
        
/// 工具类型。
        
/// </summary>
        ToolType ToolType { get; }
        
/// <summary>
        
/// 索引
        
/// </summary>
        int Index { get; }

        
/// <summary>
        
/// 子工具集
        
/// </summary>
        List<ISubTool> SubTools { get; }
    }
    
public interface ITool : IBaseTool
    {
        ApplicationContext Content { 
getset; }
        
/// <summary>
        
/// 工具安装时的处理。
        
/// </summary>
        void OnSetup();
        
/// <summary>
        
/// 选择了表对象后工具中的处理。
        
/// </summary>
        
/// <param name="obj"></param>
        void OnSelectTableObject(object obj);
        
/// <summary>
        
/// 是否可见。
        
/// </summary>
        bool Visible { get; }
    }

    
public interface ISubTool : IBaseTool
    {
    }

    
/// <summary>
    
/// 工具类型。
    
/// </summary>
    [Flags]
    
public enum ToolType
    {
        
/// <summary>
        
/// 工具菜单。
        
/// </summary>
        ToolMenu = 1,
        
/// <summary>
        
/// 表菜单。
        
/// </summary>
        TableMenu = 2,
        
/// <summary>
        
/// 工具栏按钮。
        
/// </summary>
        ToolButton = 4,
        
/// <summary>
        
/// 托盘菜单。
        
/// </summary>
        TrayMenu = 8
    }
}