Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
Latest commit
103 lines (101 loc) · 3.8 KB
/
Copy pathProgram.cs
File metadata and controls
103 lines (101 loc) · 3.8 KB
1
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel.Composition;
usingSystem.Windows.Forms;
usingSystem.Text;
usingDB.Extensibility.Contracts;
namespaceDBDynamicMenuPluginExample
{
[Export(typeof(IPlugin))]
publicclassExamplePlugin:PluginBase,IPlugin
{
classMenuKeys
{
publicconststringRoot="root";
publicconststringState="state";
publicconststringVisibility="visibility";
publicconststringEnableAll="enableAll";
publicconststringDisableAll="disableAll";
publicconststringVisibleAll="visibleAll";
publicconststringInvisibleAll="invisibleAll";
}
classMenuItem
{
publicActionAction{get;set;}
publicboolIsEnabled{get;set;}
publicboolIsVisible{get;set;}
publicMenuItem(
Actionaction=null,
boolenabled=true,
boolvisible=true)
{
Action=action??delegate{};
IsEnabled=enabled;
IsVisible=visible;
}
}
privatereadonlyDictionary<string,MenuItem>mMenuItems=newDictionary<string,MenuItem>();
publicoverrideboolHasMenu
{
get{returntrue;}
}
publicoverridestringMenuLayout
{
get
{
StringBuildermenu=newStringBuilder();
menu.AppendFormat("*Example Plugin,{0}",MenuKeys.Root);
menu.AppendFormat("*>State,{0}",MenuKeys.State);
menu.AppendFormat("*>>Enable All,{0}",MenuKeys.EnableAll);
menu.AppendFormat("*>>Disable All,{0}",MenuKeys.DisableAll);
menu.AppendFormat("*>Visibility,{0}",MenuKeys.Visibility);
menu.AppendFormat("*>>Make All Visible,{0}",MenuKeys.VisibleAll);
menu.AppendFormat("*>>Make All Invisible,{0}",MenuKeys.InvisibleAll);
returnmenu.ToString();
}
}
publicoverrideboolIsMenuItemVisible(stringkey)
{
returnmMenuItems[key].IsVisible;
}
publicoverrideboolIsMenuItemEnabled(stringkey)
{
returnmMenuItems[key].IsEnabled;
}
publicoverridevoidOnMenuItemPressed(stringkey)
{
mMenuItems[key].Action();
}
publicoverridevoidCreate()
{
MessageBox.Show(String.Format("Plugin '{0}' initialized!",GetType().Namespace));
mMenuItems.Add(MenuKeys.Root,newMenuItem());
mMenuItems.Add(MenuKeys.State,newMenuItem());
mMenuItems.Add(MenuKeys.Visibility,newMenuItem());
mMenuItems.Add(MenuKeys.EnableAll,newMenuItem(OnEnableAll));
mMenuItems.Add(MenuKeys.DisableAll,newMenuItem(OnDisableAll));
mMenuItems.Add(MenuKeys.VisibleAll,newMenuItem(OnVisibleAll));
mMenuItems.Add(MenuKeys.InvisibleAll,newMenuItem(OnInvisibleAll));
}
privatevoidOnEnableAll()
{
mMenuItems[MenuKeys.DisableAll].IsEnabled=true;
mMenuItems[MenuKeys.Visibility].IsEnabled=true;
}
privatevoidOnDisableAll()
{
mMenuItems[MenuKeys.DisableAll].IsEnabled=false;
mMenuItems[MenuKeys.Visibility].IsEnabled=false;
}
privatevoidOnVisibleAll()
{
mMenuItems[MenuKeys.InvisibleAll].IsVisible=true;
mMenuItems[MenuKeys.State].IsVisible=true;
}
privatevoidOnInvisibleAll()
{
mMenuItems[MenuKeys.InvisibleAll].IsVisible=false;
mMenuItems[MenuKeys.State].IsVisible=false;
}
}
}