Changeset 1740


Ignore:
Timestamp:
Jul 18, 2010, 2:56:33 PM (11 years ago)
Author:
kopal
Message:

Created first Version of XMLSerializer for the loading/saving of workspaceManager files

Location:
trunk/CrypPlugins/WorkspaceManager
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/WorkspaceManager/Model/ColorHelper.cs

    r1685 r1740  
    2525        /// <returns></returns>
    2626        public static Color GetColor(Type type)
    27         {
     27        {           
    2828            if (type.FullName == "System.String")
    2929            {               
  • trunk/CrypPlugins/WorkspaceManager/Model/ConnectionModel.cs

    r1570 r1740  
    1919using System.Linq;
    2020using System.Text;
     21using System.Reflection;
    2122
    2223namespace WorkspaceManager.Model
     
    4243        /// </summary>       
    4344        public bool Active { get; set; }
     45     
     46        /// <summary>
     47        /// Name of the Connection type
     48        /// </summary>
     49        private string ConnectionTypeName = null;
     50        /// <summary>
     51        /// Name of the Connection assembly
     52        /// </summary>
     53        private string ConnectionTypeAssemblyName = null;
    4454
    4555        /// <summary>
    46         /// The data type of this Connection Model
    47         /// </summary>
    48         public Type ConnectionType { get; set; }
     56        /// The Type of the Wrapped IPlugin of this PluginModel
     57        /// Depending on this the Plugin of this PluginModel will be instanciated
     58        /// </summary>       
     59        public Type ConnectionType
     60        {
     61            get
     62            {
     63                if (this.ConnectionTypeName != null)
     64                {
     65                    Assembly assembly = Assembly.Load(ConnectionTypeAssemblyName);
     66                    Type t = assembly.GetType(ConnectionTypeName);
     67                    return t;
     68                }
     69                else
     70                {
     71                    return null;
     72                }
     73            }
     74            set
     75            {
     76                this.ConnectionTypeName = value.FullName;
     77                this.ConnectionTypeAssemblyName = value.Assembly.FullName;
     78            }
     79        }
    4980
    5081        /// <summary>
  • trunk/CrypPlugins/WorkspaceManager/Model/ConnectorModel.cs

    r1713 r1740  
    2121using Cryptool.PluginBase;
    2222using WorkspaceManager.View.Container;
     23using System.Reflection;
    2324
    2425namespace WorkspaceManager.Model
     
    4041
    4142        /// <summary>
    42         /// The data type of this ConnectorModel
    43         /// </summary>
    44         public Type ConnectorType { get; set; }
    45 
     43        /// Name of the Connector type
     44        /// </summary>
     45        private string ConnectorTypeName = null;
     46        /// <summary>
     47        /// Name of the Connector assembly
     48        /// </summary>
     49        private string ConnectorTypeAssemblyName = null;
     50
     51        /// <summary>
     52        /// The Type of the Wrapped IPlugin of this PluginModel
     53        /// Depending on this the Plugin of this PluginModel will be instanciated
     54        /// </summary>       
     55        public Type ConnectorType
     56        {
     57            get
     58            {
     59                if (this.ConnectorTypeName != null)
     60                {
     61                    Assembly assembly = Assembly.Load(ConnectorTypeAssemblyName);
     62                    Type t = assembly.GetType(ConnectorTypeName);
     63                    return t;
     64                }
     65                else
     66                {
     67                    return null;
     68                }
     69            }
     70            set
     71            {
     72                this.ConnectorTypeName = value.FullName;
     73                this.ConnectorTypeAssemblyName = value.Assembly.FullName;
     74            }
     75        }
    4676        /// <summary>
    4777        /// Is this Connector Outgoing?
  • trunk/CrypPlugins/WorkspaceManager/Model/ModelPersistance.cs

    r1718 r1740  
    2424using System.Reflection;
    2525using Cryptool.PluginBase;
     26using XMLSerialization;
    2627
    2728namespace WorkspaceManager.Model
     
    3940        public static WorkspaceModel loadModel(string filename, WorkspaceManager workspaceManagerEditor)
    4041        {
    41             FileStream fileStream = null;
     42            WorkspaceModel workspacemodel = (WorkspaceModel)XMLSerialization.XMLSerialization.Deserialize(filename);   
     43            workspacemodel.WorkspaceManagerEditor = workspaceManagerEditor;
    4244
    43             try
     45            foreach (PluginModel pluginModel in workspacemodel.AllPluginModels)
    4446            {
    45                 fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read);
    46                 BinaryFormatter binaryFormatter = new BinaryFormatter();
    47 
    48                 WorkspaceModel workspacemodel =  (WorkspaceModel)binaryFormatter.Deserialize(fileStream);
    49                 workspacemodel.WorkspaceManagerEditor = workspaceManagerEditor;
    50 
    51                 foreach (PluginModel pluginModel in workspacemodel.AllPluginModels)
    52                 {
    53                     pluginModel.Plugin.OnGuiLogNotificationOccured += workspaceManagerEditor.GuiLogNotificationOccured;
    54                     pluginModel.Plugin.OnPluginProgressChanged += pluginModel.PluginProgressChanged;
    55                     pluginModel.Plugin.OnPluginStatusChanged += pluginModel.PluginStatusChanged;
    56                 }
     47                pluginModel.Plugin.OnGuiLogNotificationOccured += workspaceManagerEditor.GuiLogNotificationOccured;
     48                pluginModel.Plugin.OnPluginProgressChanged += pluginModel.PluginProgressChanged;
     49                pluginModel.Plugin.OnPluginStatusChanged += pluginModel.PluginStatusChanged;
     50            }
    5751               
    58                 foreach (ConnectorModel connectorModel in workspacemodel.AllConnectorModels)
    59                 {
    60                     if(connectorModel.Outgoing == true){
    61                         connectorModel.PluginModel.Plugin.PropertyChanged += connectorModel.PropertyChangedOnPlugin;
    62                     }
    63 
    64                     if (connectorModel.IsDynamic == true)
    65                     {
    66                         DynamicPropertyInfoAttribute dynamicPropertyInfoAttribute = connectorModel.PluginModel.Plugin.GetDynamicPropertyInfo();
    67                         EventInfo eventinfo = connectorModel.PluginModel.PluginType.GetEvent(dynamicPropertyInfoAttribute.UpdateDynamicPropertiesEvent);
    68                         eventinfo.AddEventHandler(connectorModel.PluginModel.Plugin, new DynamicPropertiesChanged(connectorModel.PropertyTypeChangedOnPlugin));
    69                     }
     52            foreach (ConnectorModel connectorModel in workspacemodel.AllConnectorModels)
     53            {
     54                if(connectorModel.Outgoing == true){
     55                    connectorModel.PluginModel.Plugin.PropertyChanged += connectorModel.PropertyChangedOnPlugin;
    7056                }
    7157
    72                 return workspacemodel;
    73             }
    74             finally
    75             {
    76                 if (fileStream != null)
     58                if (connectorModel.IsDynamic == true)
    7759                {
    78                     fileStream.Close();
     60                    DynamicPropertyInfoAttribute dynamicPropertyInfoAttribute = connectorModel.PluginModel.Plugin.GetDynamicPropertyInfo();
     61                    EventInfo eventinfo = connectorModel.PluginModel.PluginType.GetEvent(dynamicPropertyInfoAttribute.UpdateDynamicPropertiesEvent);
     62                    eventinfo.AddEventHandler(connectorModel.PluginModel.Plugin, new DynamicPropertiesChanged(connectorModel.PropertyTypeChangedOnPlugin));
    7963                }
    8064            }
     65            return workspacemodel;         
    8166        }
    8267
     
    8974        public static void saveModel(WorkspaceModel workspaceModel, string filename)
    9075        {
    91             FileStream fileStream = null;
    92 
    93             try
    94             {
    95                 fileStream = new FileStream(filename, FileMode.Create, FileAccess.Write);
    96                 BinaryFormatter binaryFormatter = new BinaryFormatter();
    97                 binaryFormatter.Serialize(fileStream, workspaceModel);               
    98             }               
    99             finally
    100             {
    101                 if (fileStream != null)
    102                 {
    103                     fileStream.Flush();
    104                     fileStream.Close();
    105                 }
    106             }
     76           XMLSerialization.XMLSerialization.Serialize(workspaceModel, filename);
    10777        }
    10878    }
  • trunk/CrypPlugins/WorkspaceManager/Model/PluginModel.cs

    r1717 r1740  
    8484                plugin = value;
    8585            }
    86         }
     86        }
     87
     88        /// <summary>
     89        /// Name of the wrapped Plugins type
     90        /// </summary>
     91        private string PluginTypeName = null;
     92        /// <summary>
     93        /// Name of the wrapped Plugins assembly
     94        /// </summary>
     95        private string PluginTypeAssemblyName = null;
    8796
    8897        /// <summary>
     
    9099        /// Depending on this the Plugin of this PluginModel will be instanciated
    91100        /// </summary>       
    92         public Type PluginType = null;
     101        public Type PluginType{
     102            get{
     103                if (this.PluginTypeName != null){
     104                    Assembly assembly = Assembly.Load(PluginTypeAssemblyName);
     105                    Type t = assembly.GetType(PluginTypeName);
     106                    return t;
     107                }
     108                else
     109                {
     110                    return null;
     111                }
     112            }
     113            set{
     114                this.PluginTypeName = value.FullName;
     115                this.PluginTypeAssemblyName = value.Assembly.FullName;
     116            }
     117        }
    93118
    94119        /// <summary>
  • trunk/CrypPlugins/WorkspaceManager/Model/VisualElementModel.cs

    r1711 r1740  
    5252        /// Current Position of this VisualElementModel
    5353        /// </summary>
    54         public Point Position { get; set; }
     54        public Point Position;
    5555
    56         private double minWidth=150;
    5756        /// <summary>
    5857        /// Minimum Width of this VisualElementModel
    5958        /// </summary>
    60         public double MinWidth
    61         {
    62             get { return minWidth; }
    63             set
    64             {
    65                 if (value > 150)
    66                 {
    67                     minWidth = value;
    68                 };
    69             }
    70         }
    71 
    72         private double minHeight = 150;
     59        public double MinWidth;
     60       
    7361        /// <summary>
    7462        /// Minimum Height of this VisualElementModel
    75         /// </summary>
    76         public double MinHeight
    77         {
    78             get{ return minHeight; }
    79             set
    80             {
    81                 if (value > 150)
    82                 {
    83                     minHeight = value;
    84                 };
    85             }
    86         }
     63        /// </summary>     
     64        public double MinHeight;
    8765
    8866        /// <summary>
    8967        /// Width of this VisualElementModel
    9068        /// </summary>
    91         public double Width { get; set; }
     69        public double Width;
    9270
    9371        /// <summary>
    9472        /// Height of this VisualElementModel
    9573        /// </summary>
    96         public double Height { get; set; }
     74        public double Height;
    9775
    9876        /// <summary>
    9977        /// Name of this VisualElementModel
    10078        /// </summary>
    101         public string Name { get; set; }
     79        public string Name;
    10280
    10381        /// <summary>
  • trunk/CrypPlugins/WorkspaceManager/WorkspaceManager.csproj

    r1728 r1740  
    8989    <Compile Include="Model\VisualElementModel.cs" />
    9090    <Compile Include="Model\WorkspaceModel.cs" />
     91    <Compile Include="Model\XMLSerialization.cs" />
    9192    <Compile Include="Properties\AssemblyInfo.cs" />
    9293    <Compile Include="Properties\Settings.Designer.cs">
Note: See TracChangeset for help on using the changeset viewer.