Subversion Repositories DevTools

Rev

Rev 2088 | Blame | Compare with Previous | Last modification | View Log | RSS feed

using System;
using System.Windows.Forms;
using System.IO;
using System.Collections;


namespace EA_DocGen
{
        /// <summary>
        /// Summary description for GUID_Clipboard.
        /// </summary>
        public class GUID_Clipboard
        {
      struct a_guid_t
      {
         public string guid;
         public EA.ObjectType objType;
         public string name;
      };

      // Data for the GUID copying/pasting menu items
      public static string guid = "";
      public static EA.ObjectType objType = EA.ObjectType.otNone;
      public static string name = "";

      private static Stack guidStk = new Stack();

      public static void push()
      {
         a_guid_t a_guid = new a_guid_t();
         a_guid.guid = guid;
         a_guid.name = name;
         a_guid.objType = objType;
         guidStk.Push(a_guid);
      }

      public static void pop()
      {
         a_guid_t a_guid = (a_guid_t)guidStk.Pop();
         guid = a_guid.guid;
         name = a_guid.name;
         objType = a_guid.objType;
      }


      /// <summary>
      /// Copies the GUID,name and type of the object to the clipboard data members.
      /// </summary>
      /// <param name="obj"></param>
      /// <param name="objType"></param>
      /// <param name="confirm"></param>
      public static void copy(object obj, EA.ObjectType objtype, bool confirm)
      {
         if (objtype == EA.ObjectType.otPackage)
         {
            guid = ((EA.Package)obj).PackageGUID.ToString();
            name = ((EA.Package)obj).Name;
            name = EA_Utilities.GetPackagePath(((EA.Package)obj).ParentID, name);
            objType = objtype;
            Clipboard.SetDataObject(guid);
            if (confirm)
               MessageBox.Show( "EA PackageGUID\n\n" + guid );
         }
         else if (objtype == EA.ObjectType.otDiagram)
         {
            guid = ((EA.Diagram)obj).DiagramGUID.ToString();
            name = ((EA.Diagram)obj).Name;
            name = EA_Utilities.GetPackagePath(((EA.Diagram)obj).PackageID, name);
            objType = objtype;
            Clipboard.SetDataObject(guid);
            if (confirm)
               MessageBox.Show( "EA DiagramGUID\n\n" + guid );
         }
         else if (objtype == EA.ObjectType.otElement)
         {
            guid = ((EA.Element)obj).ElementGUID.ToString();
            name = ((EA.Element)obj).Name;
            name = EA_Utilities.GetPackagePath(((EA.Element)obj).PackageID, name);
            objType = objtype;
            Clipboard.SetDataObject(guid);
            if (confirm)
               MessageBox.Show( "EA ElementGUID\n\n" + guid );
         }
         else if (objtype == EA.ObjectType.otAttribute)
         {
            guid = ((EA.Attribute)obj).AttributeGUID.ToString();
            name = ((EA.Attribute)obj).Name;
            objType = objtype;
            Clipboard.SetDataObject(guid);
            if (confirm)
               MessageBox.Show( "EA AttributeGUID\n\n" + guid );
         }
         else if (objtype == EA.ObjectType.otMethod)
         {
            guid = ((EA.Method)obj).MethodGUID.ToString();
            name = ((EA.Method)obj).Name;
            objType = objtype;
            Clipboard.SetDataObject(guid);
            if (confirm)
               MessageBox.Show( "EA MethodGUID\n\n" + guid );
         }
         else
         {
            MessageBox.Show( "Copying this object type is not supported" );
         }
      }
        }
}