亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? s2.controller.ts2viewscontroller.pas

?? 轉(zhuǎn)載的程序應(yīng)用框架
?? PAS
字號:
unit S2.Controller.TS2ViewsController;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  S2.View.TS2View, S2.Tools.TS2Object, S2.Tools.IS2ViewDict,
  S2.Model.TS2Model, S2.Tools.TS2ViewDict;

type
  TS2ViewsController = class(TS2View, IS2ViewsController, IS2ViewFactory)
  private
    ItemsViewDict, ItemViewDict, ReportViewDict, ChartViewDict: TS2ViewDict;
  protected
    function FindView(ViewClass: TS2ViewClass): TS2View;
  protected
    function GetItemsViewDict: IS2ViewDict;
    function GetItemViewDict: IS2ViewDict;
    function GetReportViewDict: IS2ViewDict;
    function GetChartViewDict: IS2ViewDict;  
  protected  //  IS2ViewsController
    function CreateView(ViewClass: TS2ViewClass): TS2View; virtual;
    function GetActiveView: TS2View; virtual;
    function GetView(ViewClass: TS2ViewClass): TS2View; virtual;
    function GetViewCount: Integer; virtual;
    procedure DeleteAllView(); virtual;
    procedure RefreshAllView(); virtual;
  public  //  IS2ViewFactory
    function GetItemsView(ModelClass: TS2ModelClass): TS2View; virtual;
    function GetReportView(ModelClass: TS2ModelClass): TS2View; virtual;
    function GetChartView(ModelClass: TS2ModelClass): TS2View; virtual;
    function GetItemView(ModelClass: TS2ModelClass): TS2View; virtual;
  public  //  S2.View.IS2View
    function GetCaption: string; override;
    function GetModel: TS2Model; override;
    function IsReadOnly: Boolean; override;
    procedure CloseView; override;
    procedure OpenView(O: TS2Object); override;
    procedure RefreshView; override;
    procedure SetModel(Model: TS2Model); override;    
  end;

implementation

uses
  S2.Model.TS2SystemObject, S2.Error.S2AbstractException;

{$R *.dfm}

{ TS2ViewsController }

function TS2ViewsController.CreateView(ViewClass: TS2ViewClass): TS2View;
begin
  Result := ViewClass.Create(Self, GetGlobalSystemObject);
end;

procedure TS2ViewsController.DeleteAllView;
begin
  raise S2AbstractException.Create(ClassName, 'DeleteAllView');
end;

function TS2ViewsController.FindView(ViewClass: TS2ViewClass): TS2View;
var
  I: Integer;
begin
  Result := nil;
  for I := 0 to ComponentCount - 1 do
    if Components[I] is TS2View then
      if (Components[I] as TS2View).ClassType = ViewClass then
      begin
        Result := (Components[I] as TS2View);
        Exit;
      end;
end;

function TS2ViewsController.GetActiveView: TS2View;
begin
  raise S2AbstractException.Create(ClassName, 'GetActiveView');
end;

function TS2ViewsController.GetChartView(ModelClass: TS2ModelClass): TS2View;
begin
  Result := CreateView(GetChartViewDict.Find(ModelClass));
end;

function TS2ViewsController.GetItemsView(ModelClass: TS2ModelClass): TS2View;
begin
  Result := CreateView(GetItemsViewDict.Find(ModelClass));
end;

function TS2ViewsController.GetItemsViewDict: IS2ViewDict;
begin
  Result := ItemViewDict;
end;

function TS2ViewsController.GetItemView(ModelClass: TS2ModelClass): TS2View;
begin
  Result := CreateView(GetItemViewDict.Find(ModelClass));
end;

function TS2ViewsController.GetItemViewDict: IS2ViewDict;
begin
  Result := ItemViewDict;
end;

function TS2ViewsController.GetReportView(ModelClass: TS2ModelClass): TS2View;
begin
  Result := CreateView(GetReportViewDict.Find(ModelClass));
end;

function TS2ViewsController.GetReportViewDict: IS2ViewDict;
begin
  Result := ReportViewDict;
end;

function TS2ViewsController.GetChartViewDict: IS2ViewDict;
begin
  Result := ChartViewDict;
end;

function TS2ViewsController.GetView(ViewClass: TS2ViewClass): TS2View;
begin
  Result := FindView(ViewClass);
  if Result = nil then
    Result := CreateView(ViewClass);
end;

function TS2ViewsController.GetViewCount: Integer;
var
  I: Integer;
begin
  Result := 0;
  for I := 0 to ComponentCount - 1 do
    if Components[I] is TS2View then Inc(Result);
end;

procedure TS2ViewsController.RefreshAllView;
var
  I: Integer;
begin
  for I := 0 to ComponentCount - 1 do
    if Components[I] is TS2View then
      (Components[I] as TS2View).RefreshView;
end;

procedure TS2ViewsController.CloseView;
begin
  inherited;
end;

function TS2ViewsController.GetCaption: string;
begin
  Result := GetActiveView.GetCaption;
end;

function TS2ViewsController.GetModel: TS2Model;
begin
  Result := GetActiveView.GetModel;
end;

function TS2ViewsController.IsReadOnly: Boolean;
begin
  Result := GetActiveView.IsReadOnly;
end;

procedure TS2ViewsController.OpenView(O: TS2Object);
begin
  inherited;
  GetActiveView.OpenView(O);  
end;

procedure TS2ViewsController.RefreshView;
begin
  GetActiveView.RefreshView;
end;

procedure TS2ViewsController.SetModel(Model: TS2Model);
begin
  GetActiveView.SetModel(Model);
end;

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天影视涩香欲综合网| 国产区在线观看成人精品| 亚洲乱码一区二区三区在线观看| 成人开心网精品视频| 亚洲欧洲精品天堂一级| 欧洲一区二区三区在线| 天天操天天干天天综合网| 欧美一区二区精品| 国产成人一区在线| 亚洲精品美国一| 制服丝袜在线91| 国产成人三级在线观看| 亚洲精品视频在线观看网站| 欧美精品久久99久久在免费线 | 亚洲成av人在线观看| 欧美日韩国产综合视频在线观看 | 91精品国产综合久久婷婷香蕉| 天天操天天综合网| 久久天堂av综合合色蜜桃网| 成人av综合在线| 亚洲午夜精品在线| 欧美mv日韩mv| 一本色道**综合亚洲精品蜜桃冫| 五月天精品一区二区三区| 久久亚洲私人国产精品va媚药| 成人av在线网| 日韩电影在线观看电影| 中国色在线观看另类| 欧美专区亚洲专区| 国产自产视频一区二区三区| 一区免费观看视频| 精品奇米国产一区二区三区| 91香蕉视频污在线| 久久er精品视频| 日韩理论电影院| 欧美大片免费久久精品三p| 91在线国产福利| 毛片一区二区三区| 一区二区在线看| 国产午夜精品美女毛片视频| 欧美日本一区二区三区| 成人av网站大全| 另类小说欧美激情| 亚洲不卡在线观看| 最新成人av在线| 亚洲精品一区在线观看| 欧美午夜在线一二页| 成人高清视频在线| 国产做a爰片久久毛片| 五月婷婷久久丁香| 亚洲精品写真福利| 国产精品传媒在线| 国产欧美一区二区精品忘忧草 | 色偷偷久久一区二区三区| 久久99精品久久久| 秋霞成人午夜伦在线观看| 亚洲欧美日韩国产综合在线| 国产免费成人在线视频| 精品国产一区二区在线观看| 欧美猛男gaygay网站| 色综合天天在线| 成人av集中营| 高清免费成人av| 经典三级视频一区| 精品一区二区三区久久| 蜜桃视频一区二区| 丝袜美腿亚洲一区| 性做久久久久久久免费看| 亚洲小说欧美激情另类| 亚洲女同ⅹxx女同tv| 欧美高清一级片在线观看| 久久亚洲一级片| 久久久亚洲国产美女国产盗摄| 日韩欧美激情一区| 精品国产亚洲在线| 91麻豆精品国产91久久久久 | 精品久久人人做人人爽| 91精品国产综合久久久久久久| 欧美裸体一区二区三区| 欧美一区二区网站| 欧美一区二区三区四区高清 | 国产成人在线观看| 国产精品自在欧美一区| 亚洲1区2区3区视频| 亚洲黄色片在线观看| 亚洲aaa精品| 天天免费综合色| 日本中文一区二区三区| 亚洲高清不卡在线| 欧美日本在线播放| 粉嫩蜜臀av国产精品网站| 国产乱国产乱300精品| 国产精品一区专区| 成人免费观看av| 在线看一区二区| 欧美中文字幕不卡| 91精品在线一区二区| 日韩欧美一区二区免费| 久久久精品一品道一区| 中文字幕av资源一区| 亚洲精品久久久蜜桃| 日韩电影在线免费观看| 精品制服美女丁香| 成人不卡免费av| 欧美日韩国产综合草草| 精品国产乱码久久久久久久久| 国产亚洲va综合人人澡精品| 亚洲日本成人在线观看| 亚洲国产aⅴ天堂久久| 九色综合国产一区二区三区| 成人黄色电影在线 | 日韩欧美一级精品久久| 久久久三级国产网站| 亚洲欧美另类图片小说| 激情文学综合丁香| 99v久久综合狠狠综合久久| 777奇米四色成人影色区| 久久久久久一二三区| 亚洲嫩草精品久久| 韩国成人精品a∨在线观看| 91香蕉视频污在线| 精品免费视频.| 夜夜嗨av一区二区三区| 精品一区二区三区的国产在线播放| 成人av在线资源| 日韩一区二区高清| 亚洲欧洲美洲综合色网| 免费av网站大全久久| 波多野结衣的一区二区三区| 91精品国产综合久久福利软件| 国产欧美日韩在线视频| 图片区小说区区亚洲影院| 懂色中文一区二区在线播放| 欧美精品三级日韩久久| 一区免费观看视频| 国产在线看一区| 欧美日韩中文精品| 国产精品视频一二| 精品综合久久久久久8888| 欧美亚日韩国产aⅴ精品中极品| 久久免费的精品国产v∧| 日韩经典中文字幕一区| 色婷婷综合久久| 亚洲国产成人午夜在线一区| 久久99久久久久| 欧美无乱码久久久免费午夜一区| 中文字幕精品一区二区精品绿巨人| 男女男精品视频网| 欧美日韩在线综合| 亚洲欧美日韩综合aⅴ视频| 国产精品888| 精品国产伦理网| 日本亚洲一区二区| 欧美日韩综合在线免费观看| 一区二区三区视频在线看| 懂色av一区二区三区免费观看| 日韩三级精品电影久久久| 亚洲va天堂va国产va久| 91国偷自产一区二区开放时间 | 91在线国产福利| 欧美国产一区二区在线观看| 国产在线视频一区二区三区| 制服丝袜激情欧洲亚洲| 性做久久久久久免费观看欧美| 亚洲va欧美va天堂v国产综合| 亚洲特黄一级片| 日日噜噜夜夜狠狠视频欧美人 | 国产在线视频一区二区| 色综合天天综合网国产成人综合天 | 久久婷婷久久一区二区三区| 蜜臀精品一区二区三区在线观看| 欧美日本一区二区| 日韩极品在线观看| 日韩免费高清av| 狠狠色丁香婷综合久久| 久久久久国产精品人| 国产精品911| 亚洲欧美综合色| 色中色一区二区| 五月天丁香久久| 欧美r级电影在线观看| 国产成人免费视| 自拍偷自拍亚洲精品播放| 欧美体内she精高潮| 日韩精品亚洲一区| 26uuu欧美| 97se亚洲国产综合在线| 亚洲国产sm捆绑调教视频| 欧美一级理论性理论a| 国产激情精品久久久第一区二区| 国产精品国产三级国产有无不卡| 色综合天天在线| 奇米色777欧美一区二区| 久久久久国产精品麻豆| 色婷婷国产精品| 免费一级片91| 亚洲人成网站影音先锋播放| 在线不卡中文字幕| 国产精品一区二区在线观看网站| 日韩理论片中文av|