Subversion Repositories DevTools

Rev

Rev 2094 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2088 ghuddy 1
using System;
2
using System.Windows.Forms;
3
using System.IO;
4
using Word;
5
 
6
 
7
namespace EA_DocGen
8
{
9
	/// <summary>
10
	/// 
11
	/// </summary>
12
	public class Main
13
	{
14
      public string filecontents = "";
15
      public AboutForm theForm;
16
 
17
      private EA_Utilities EA_Utils = new EA_Utilities();
18
 
19
 
20
      public readonly static String GUI_OUTPUT_TAB_NAME = "EA_DocGen";
21
 
22
 
23
 
24
      //Called Before EA starts to check Add-In Exists
25
      public String EA_Connect(EA.Repository Repository)
26
      {
27
         //No special processing required.
28
         return "a string";
29
      }
30
 
31
      /// <summary>
32
      /// Called when EA initialised. Creates an output tab for the add in.
33
      /// </summary>
34
      /// <param name="repository"></param>
35
      public void EA_OnPostInitialized(EA.Repository repository)
36
      {
37
         repository.CreateOutputTab(GUI_OUTPUT_TAB_NAME);
38
         repository.EnsureOutputVisible(GUI_OUTPUT_TAB_NAME);
39
      }
40
 
41
 
42
 
43
      //Called when user Click Add-Ins Menu item from within EA.
44
      //Populates the Menu with our desired selections.
45
      public object EA_GetMenuItems(EA.Repository Repository, string Location, string MenuName)
46
      {
47
         object menutItems = null;
48
 
49
         switch( MenuName )
50
         {
51
            case "":
52
               menutItems = "-&EA DocGen";
53
               break;
54
 
55
            case "-&Using Copied GUID...":
56
            {
57
               string[] ar = { "&Add Link Element",
58
                               "&Generate Packages From Element List",
59
                               "&Generate Sub-Package Links",
60
                               "&Generate Element Links" };
61
               menutItems = ar;
62
               break;
63
            }  
64
 
65
            case "-&Misc Utils":
66
            {
67
               string[] ar = { "&Show Package/Element Discovery Order",
68
 
69
                             };
70
               menutItems = ar;
71
               break;
72
            }
73
 
74
            case "-&EA DocGen":
75
            {
76
               string[] ar = { "&Generate Document From Model Layout", 
77
                               "&Copy GUID To Clipboard",
78
                               "-&Using Copied GUID...",
79
                               "&Add Table Element",
80
                               "&Add Text Element",
81
                               "&Add RelationshipMatrix Element",
82
                               "&Generate Model Layout For Design Document",
83
                               "-&Misc Utils",
84
//                               "&Get TreePos"
85
//                               "&Save Version Controlled Package",
86
                               "&About..." };
87
               menutItems = ar;
88
               break;
89
            }
90
               // TODO - more menu options
91
               //
92
               // 1. Generate Package Structure Layout from a QMS outline document.
93
               //    User needs to select a QMS outline document, and the addin opens it and reads
94
               //    all of the document headings and their heading levels (styles) and forms a
95
               //    package structure from them. The user would have to also specify the Parent
96
               //    package name under which this structure should be created in the EA model.
97
               //
98
               // 2. Import/Export requirements from/to RequisitePro
99
               //    What is possible here will need investigating. 
100
               //    Does ReqPro have an interoperability interface? 
101
               //    Do we have to export/import via a file (eg. csv file).
102
               //
103
               //
104
          }
105
 
106
         return menutItems;
107
      }
108
 
109
      //Sets the state of the menu depending if there is an active project or not
110
      bool IsProjectOpen(EA.Repository Repository)
111
      {
112
         try
113
         {
114
            EA.Collection c = Repository.Models;
115
            return true;
116
         }
117
         catch
118
         {
119
            return false;
120
         }
121
      }
122
 
123
      //Called once Menu has been opened to see what menu items are active.
124
      public void EA_GetMenuState(EA.Repository Repository, string Location, string MenuName, string ItemName, ref bool IsEnabled, ref bool IsChecked)
125
      {
126
         if( IsProjectOpen(Repository) )
127
         {
128
            if ((MenuName == "-&Using Copied GUID...") && (EA_Utils.guid_clipboard.objType == EA.ObjectType.otNone))
129
            {
130
               IsEnabled = false;
131
            }
132
            else
133
            {
134
               IsEnabled = true;
135
            }
136
         }
137
         else
138
         {
139
            // If no open project, disable all menu options
140
            IsEnabled = false;
141
         }
142
      }
143
 
144
      //Called when user makes a selection in the menu.
145
      //This is your main exit point to the rest of your Add-in
146
      public void EA_MenuClick(EA.Repository Repository, string Location, string MenuName, string ItemName)
147
      {
148
         EA.ObjectType objType;
149
 		   object obj;
150
 
151
         EA_Utils.accept_EA_RepositoryRef(Repository);
152
 
153
         switch( ItemName )
154
         {
155
            case "&Generate Document From Model Layout":	
156
               EA_Utils.createWordDoc();
157
               break;
158
 
159
            case "&Copy GUID To Clipboard":
160
               EA_Utils.copy_GUID_to_clipboard();
161
               break;
162
 
163
            case "&Add Link Element":
164
               EA_Utils.AddLinkElement();
165
                break;
166
 
167
            case "&Generate Packages From Element List":
168
               EA_Utils.GeneratePackagesFromElementList();
169
               break;
170
 
171
            case "&Generate Sub-Package Links":
172
               EA_Utils.GenerateSubPackageLinks();
173
               break;
174
 
175
            case "&Generate Element Links":
176
               EA_Utils.GenerateElementLinks();
177
               break;
178
 
179
            case "&Add Table Element":
180
               EA_Utils.AddTableElement();
181
               break;
182
 
183
            case "&Add Text Element":
184
               EA_Utils.AddTextElement();
185
               break;
186
 
187
            case "&Add RelationshipMatrix Element":
188
               EA_Utils.AddRelationshipMatrixElement();
189
               break;
190
 
191
            case "&About...":
192
               AboutForm anAbout = new AboutForm();
193
               anAbout.ShowDialog();
194
               break;
195
 
196
 
197
            //////////////////////////////////////////////////////////////////////
198
            /// EXPERIMENTAL ITEMS ONLY
199
            //////////////////////////////////////////////////////////////////////
200
            case "&Generate Model Layout For Design Document":
201
               EA_Utils.create_BMS00289_Layout();
202
               break;
203
 
204
            case "&Show Package/Element Discovery Order":
205
               EA_Utils.showDiscoveryOrder();
206
               break;
207
 
208
            case "&Get TreePos":
209
               objType = Repository.GetTreeSelectedItem( out obj );
210
               if (objType == EA.ObjectType.otPackage)
211
               {
212
                  MessageBox.Show(((EA.Package)obj).TreePos.ToString());
213
               }
214
               break;
215
 
216
            case "&Save Version Controlled Package":
217
               EA_Utils.SaveVersionControlledPackage();
218
               break;
219
 
220
         }
221
      }
222
 
223
 
224
	}
225
}