Subversion Repositories DevTools

Rev

Rev 2159 | Rev 2167 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2159 Rev 2161
Line 25... Line 25...
25
      public static EA.Repository EA_Repository = null;
25
      public static EA.Repository EA_Repository = null;
26
 
26
 
27
      public static int abortRequests = 0;
27
      public static int abortRequests = 0;
28
      public static bool mustAbort = false;
28
      public static bool mustAbort = false;
29
 
29
 
-
 
30
      // EA_ReqPro Menu strings
-
 
31
      private const string MI_Root            = "-&EA ReqPro";
-
 
32
 
-
 
33
      private const string MI_Separator                  = "-";
-
 
34
      private const string MI_ImportForTraceabilityUse   = "&Import for Traceability Use";
-
 
35
      private const string MI_DisplayChangeLog           = "&Display Change Log";
-
 
36
      private const string MI_ImportForDocModelUse       = "&Import for Document Model Use";
-
 
37
      private const string MI_ExportToReqPro             = "&Export to ReqPro";
-
 
38
      private const string MI_ExportToReqProCSV          = "&Export to ReqPro Compatible CSV File";
-
 
39
      private const string MI_CreateReqDiagram           = "&Create Requirement Diagram";
-
 
40
      private const string MI_CreateReqDiagramUsingSrch  = "&Create Requirement Diagram Using Model Search";
-
 
41
      private const string MI_About                      = "&About...";
-
 
42
      private const string MI_Abort                      = "&Abort Import/Export";
-
 
43
 
-
 
44
      private string[] MI_RootMenu = new string[] { MI_ImportForTraceabilityUse, 
-
 
45
                                                    MI_DisplayChangeLog,
-
 
46
                                                    MI_Separator,
-
 
47
                                                    MI_ImportForDocModelUse,
-
 
48
                                                    MI_Separator,
-
 
49
                                                    MI_ExportToReqPro,
-
 
50
                                                    MI_ExportToReqProCSV,
-
 
51
                                                    MI_Separator,
-
 
52
                                                    MI_CreateReqDiagram,
-
 
53
                                                    MI_CreateReqDiagramUsingSrch,
-
 
54
                                                    MI_Separator,
-
 
55
                                                    MI_About };
-
 
56
 
-
 
57
      private string[] MI_AbortMenu = new string[] { MI_Abort };
-
 
58
 
-
 
59
 
30
      /// <summary>
60
      /// <summary>
31
      /// Called when EA initialised. Creates an output tab for the add in.
61
      /// Called when EA initialised. Creates an output tab for the add in.
32
      /// </summary>
62
      /// </summary>
33
      /// <param name="repository"></param>
63
      /// <param name="repository"></param>
34
      public void EA_OnPostInitialized(EA.Repository repository)
64
      public void EA_OnPostInitialized(EA.Repository repository)
Line 97... Line 127...
97
      }
127
      }
98
 
128
 
99
 
129
 
100
      public object EA_GetMenuItems(EA.Repository repository, string location, string menu)
130
      public object EA_GetMenuItems(EA.Repository repository, string location, string menu)
101
      {
131
      {
102
         string[] ar;
-
 
103
 
-
 
104
         switch( menu )
132
         switch( menu )
105
         {
133
         {
106
            case "":
134
            case "":
107
               return "-&EA_ReqPro";
135
               return MI_Root;
108
 
136
 
109
            case "-&EA_ReqPro":
137
            case MI_Root:
110
               if (ourThread != null && ourThread.IsAlive == true)
138
               if (ourThread != null && ourThread.IsAlive == true)
111
               {
139
               {
112
                  ar = new string[] {"&Abort Import/Export"};
-
 
113
                  return ar;
140
                  return MI_AbortMenu;
114
               }
141
               }
115
               else
142
               else
116
               {
143
               {
117
                  ar = new string[]{
-
 
118
                                   "&Import for Traceability Use",
-
 
119
                                   "&Display Change Log",
-
 
120
                                   "&Import for Document Model Use",
-
 
121
                                   "&Export to ReqPro",
-
 
122
                                   "&Export to ReqPro Compatible CSV File",
-
 
123
                                   "&Create Requirement Diagram",
-
 
124
                                   "&Create Requirement Diagram Using Model Search"
-
 
125
                  };
-
 
126
                  return ar;
144
                  return MI_RootMenu;
127
               }
145
               }
128
         }
146
         }
129
 
147
 
130
         return "";
148
         return "";
131
      }
149
      }
Line 157... Line 175...
157
 
175
 
158
         if (IsProjectOpen(repository))
176
         if (IsProjectOpen(repository))
159
         {
177
         {
160
            switch (itemName)
178
            switch (itemName)
161
            {
179
            {
162
               case "&Abort Import/Export":
180
               case MI_Abort:
163
               case "&Import for Document Model Use":
181
               case MI_ImportForDocModelUse:
164
               case "&Export to ReqPro":
182
               case MI_ExportToReqPro:
165
               case "&Export to ReqPro Compatible CSV File":
183
               case MI_ExportToReqProCSV:
166
               case "&Create Requirement Diagram":
184
               case MI_CreateReqDiagram:
167
               case "&Create Requirement Diagram Using Model Search":
185
               case MI_CreateReqDiagramUsingSrch:
168
               case "&Import for Traceability Use":
186
               case MI_ImportForTraceabilityUse:
169
                  isEnabled = true;
187
                  isEnabled = true;
170
                  break;
188
                  break;
171
 
189
 
172
               case "&Display Change Log":
190
               case MI_DisplayChangeLog:
173
                  type = repository.GetTreeSelectedItem(out o);
191
                  type = repository.GetTreeSelectedItem(out o);
174
                  if ( (type == EA.ObjectType.otElement) && (((EA.Element)o).Name == "Change Log"))
192
                  if ( (type == EA.ObjectType.otElement) && (((EA.Element)o).Name == "Change Log"))
175
                  {
193
                  {
176
                     isEnabled = true;
194
                     isEnabled = true;
177
                  }
195
                  }
Line 195... Line 213...
195
 
213
 
196
         switch( itemName )
214
         switch( itemName )
197
         {
215
         {
198
            // This menu option appears only when a thread is active. It allows the user to initiate
216
            // This menu option appears only when a thread is active. It allows the user to initiate
199
            // an abort of the thread.
217
            // an abort of the thread.
200
            case "&Abort Import/Export":
218
            case MI_Abort:
201
               if (ourThread != null && ourThread.IsAlive == true)
219
               if (ourThread != null && ourThread.IsAlive == true)
202
               {
220
               {
203
                  if (abortRequests > 0)
221
                  if (abortRequests > 0)
204
                  {
222
                  {
205
                     // if user has made a second abort request, it is probably because the thread does not
223
                     // if user has made a second abort request, it is probably because the thread does not
Line 219... Line 237...
219
                     abortRequests++;
237
                     abortRequests++;
220
                  }
238
                  }
221
               }
239
               }
222
               break;
240
               break;
223
 
241
 
224
            case "&Import for Traceability Use":
242
            case MI_ImportForTraceabilityUse:
225
               if (ourThread == null || ourThread.IsAlive == false)
243
               if (ourThread == null || ourThread.IsAlive == false)
226
               {
244
               {
227
                  ourThread = new Thread(new ThreadStart(ImportReqProDatabase_Thread));
245
                  ourThread = new Thread(new ThreadStart(ImportReqProDatabase_Thread));
228
                  ourThread.ApartmentState = ApartmentState.STA;
246
                  ourThread.ApartmentState = ApartmentState.STA;
229
                  ourThread.Start();
247
                  ourThread.Start();
230
               }
248
               }
231
               break;
249
               break;
232
 
250
 
233
            case "&Import for Document Model Use":
251
            case MI_ImportForDocModelUse:
234
               if (ourThread == null || ourThread.IsAlive == false)
252
               if (ourThread == null || ourThread.IsAlive == false)
235
               {
253
               {
236
                  ourThread = new Thread(new ThreadStart(CopyReqProDatabase_Thread));
254
                  ourThread = new Thread(new ThreadStart(CopyReqProDatabase_Thread));
237
                  ourThread.ApartmentState = ApartmentState.STA;
255
                  ourThread.ApartmentState = ApartmentState.STA;
238
                  ourThread.Start();
256
                  ourThread.Start();
239
               }
257
               }
240
               break;
258
               break;
241
 
259
 
242
            case "&Export to ReqPro":
260
            case MI_ExportToReqPro:
243
               if (ourThread == null || ourThread.IsAlive == false)
261
               if (ourThread == null || ourThread.IsAlive == false)
244
               {
262
               {
245
                  ourThread = new Thread(new ThreadStart(ExportToReqPro_Thread));
263
                  ourThread = new Thread(new ThreadStart(ExportToReqPro_Thread));
246
                  ourThread.ApartmentState = ApartmentState.STA;
264
                  ourThread.ApartmentState = ApartmentState.STA;
247
                  ourThread.Start();
265
                  ourThread.Start();
248
               }
266
               }
249
               break;
267
               break;
250
 
268
 
251
            case "&Export to ReqPro Compatible CSV File":
269
            case MI_ExportToReqProCSV:
252
               repository.EnsureOutputVisible(GUI_OUTPUT_TAB_NAME);
270
               repository.EnsureOutputVisible(GUI_OUTPUT_TAB_NAME);
253
               repository.WriteOutput(GUI_OUTPUT_TAB_NAME,"",-1);
271
               repository.WriteOutput(GUI_OUTPUT_TAB_NAME,"",-1);
254
               ExportToReqProCSVForm export_dlg = new ExportToReqProCSVForm();
272
               ExportToReqProCSVForm export_dlg = new ExportToReqProCSVForm();
255
               DialogResult dlgRes = export_dlg.ShowDialog();
273
               DialogResult dlgRes = export_dlg.ShowDialog();
256
               if (dlgRes == DialogResult.OK)
274
               if (dlgRes == DialogResult.OK)
257
               {
275
               {
258
                  export_dlg.Export();
276
                  export_dlg.Export();
259
               }
277
               }
260
               break;
278
               break;
261
 
279
 
262
            case "&Display Change Log":
280
            case MI_DisplayChangeLog:
263
            {
281
            {
264
               ImportReqProDatabase import_parser = new ImportReqProDatabase();
282
               ImportReqProDatabase import_parser = new ImportReqProDatabase();
265
               EA.Element changeLog = (EA.Element)repository.GetTreeSelectedObject();
283
               EA.Element changeLog = (EA.Element)repository.GetTreeSelectedObject();
266
               repository.EnsureOutputVisible(GUI_OUTPUT_TAB_NAME);
284
               repository.EnsureOutputVisible(GUI_OUTPUT_TAB_NAME);
267
               import_parser.displayChangeLog(changeLog);
285
               import_parser.displayChangeLog(changeLog);
268
               break;
286
               break;
269
            }
287
            }
270
 
288
 
271
            case "&Create Requirement Diagram":
289
            case MI_CreateReqDiagram:
272
            {
290
            {
273
               ArrayList allowedElementTypes = new ArrayList();
291
               ArrayList allowedElementTypes = new ArrayList();
274
               allowedElementTypes.Add("Requirement");
292
               allowedElementTypes.Add("Requirement");
275
               //allowedElementTypes.Add("UseCase");
293
               //allowedElementTypes.Add("UseCase");
276
               ElementAccumulator reqLister = new ElementAccumulator(allowedElementTypes);
294
               ElementAccumulator reqLister = new ElementAccumulator(allowedElementTypes);
Line 278... Line 296...
278
               EA_Utilities.findAndProcessPackageElements( thePackage, reqLister, true );
296
               EA_Utilities.findAndProcessPackageElements( thePackage, reqLister, true );
279
               createRequirementDiagram(thePackage, reqLister.Elements);
297
               createRequirementDiagram(thePackage, reqLister.Elements);
280
               break;
298
               break;
281
            }
299
            }
282
 
300
 
283
            case "&Create Requirement Diagram Using Model Search":
301
            case MI_CreateReqDiagramUsingSrch:
284
            {
302
            {
285
               QueryForm qf = new QueryForm();
303
               QueryForm qf = new QueryForm();
286
               DialogResult qf_dlgRes = qf.ShowDialog();
304
               DialogResult qf_dlgRes = qf.ShowDialog();
287
               if (qf_dlgRes == DialogResult.OK)
305
               if (qf_dlgRes == DialogResult.OK)
288
               {
306
               {
Line 291... Line 309...
291
                  createRequirementDiagram(thePackage, c);
309
                  createRequirementDiagram(thePackage, c);
292
               }
310
               }
293
               break;
311
               break;
294
            }
312
            }
295
 
313
 
-
 
314
            case MI_About:
-
 
315
               break;
296
         }
316
         }
297
      }
317
      }
298
 
318
 
299
      private void createRequirementDiagram(EA.Package containerPackage, EA.Collection c)
319
      private void createRequirementDiagram(EA.Package containerPackage, EA.Collection c)
300
      {
320
      {