本接口定义布局管理器如何管理工作空间中各GUI要素的布局。比如面板的显示、隐藏状态,面板、工作台窗体(视图)的配置,活动面板,显示、隐藏面板,重绘工作台窗体和面板。
定义属性:
活动工作台窗体,当前活动的视图内容。
定义方法:
驻于内存,从内存中撤出,显示面板,使面板处于活动状态,隐藏面板,判断面板是否可见,重绘所有组件,导入配合信息,恢复配置信息,活动的工作台窗体发生变化
定义事件:
活动工作台窗体变化时触发的事件。
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
5
namespace MetaApplication
6
{
7
/// <summary>
8
/// The IWorkbenchLayout object is responsible for the layout of
9
/// the workspace, it shows the contents, chooses the IWorkbenchWindow
10
/// implementation etc. it could be attached/detached at the runtime
11
/// to a workbench.
12
/// </summary>
13
public interface IWorkbenchLayout
14
{
15
IWorkbenchWindow ActiveWorkbenchwindow
16
{
17
get;
18
}
19
20
object ActiveContent
21
{
22
get;
23
}
24
25
/// <summary>
26
/// Attaches this layout manager to a workbench object.
27
/// </summary>
28
void Attach(IWorkbench workbench);
29
30
/// <summary>
31
/// Detaches this layout manager from the current workspace.
32
/// </summary>
33
void Detach();
34
35
/// <summary>
36
/// Shows a new <see cref="IPadContent"/>.
37
/// </summary>
38
void ShowPad(IPadContent content);
39
40
/// <summary>
41
/// Activates a pad (Show only makes it visible but Activate does
42
/// bring it to foreground)
43
/// </summary>
44
void ActivatePad(IPadContent content);
45
void ActivatePad(string fullyQualifiedTypeName);
46
47
/// <summary>
48
/// Hides a new <see cref="IPadContent"/>.
49
/// </summary>
50
void HidePad(IPadContent content);
51
52
/// <summary>
53
/// returns true, if padContent is visible;
54
/// </summary>
55
bool IsVisible(IPadContent padContent);
56
57
/// <summary>
58
/// Re-initializes all components of the layout manager.
59
/// </summary>
60
void RedrawAllComponents();
61
62
/// <summary>
63
/// Shows a new <see cref="IViewContent"/>.
64
/// ?????不明白干什么用的,后续会如何使用
65
/// </summary>
66
IWorkbenchWindow ShowView(IViewContent content);
67
68
69
void LoadConfiguration();
70
void StoreConfiguration();
71
72
/// <summary>
73
/// Is called, when the workbench window which the user has into
74
/// the foreground (e.g. editable) changed to a new one.
75
/// </summary>
76
event EventHandler ActiveWorkbenchWindowChanged;
77
78
// only needed in the workspace window when the 'secondary view content' changed
79
// it is somewhat like 'active workbench window changed'
80
void OnActiveWorkbenchWindowChanged(EventArgs e);
81
}
82
}
83

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83
