Changeset 2803


Ignore:
Timestamp:
Feb 23, 2011, 5:24:18 PM (11 years ago)
Author:
kopal
Message:
Location:
trunk
Files:
3 deleted
39 edited

Legend:

Unmodified
Added
Removed
  • trunk

    • Property svn:ignore
      •  

        old new  
         1*.dll
         2*.exe
        13*.suo
        24*.testrunconfig
        35*.vsmdi
         6CrypBuild
        47CrypTool 2.0 - Copy.sln
        58CrypTool 2.0.4.1.resharper.user
        69TestResults
         10WorkspaceModel_Test
        711_ReSharper.CrypTool 2.0
        8 *.exe
        9 *.dll
        1012bin
        1113obj
        12 CrypBuild
  • trunk/CrypPlugins/KeySearcher/KeySearcher.csproj

    r2720 r2803  
    3232    <UseApplicationTrust>false</UseApplicationTrust>
    3333    <BootstrapperEnabled>true</BootstrapperEnabled>
    34     <TargetFrameworkProfile>Client</TargetFrameworkProfile>
     34    <TargetFrameworkProfile>
     35    </TargetFrameworkProfile>
    3536  </PropertyGroup>
    3637  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
  • trunk/CrypPlugins/KeySearcher/app.config

    r2721 r2803  
    1 <?xml version="1.0" encoding="utf-8" ?>
     1<?xml version="1.0"?>
    22<configuration>
    33    <configSections>
    4         <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
    5             <section name="KeySearcher.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
     4        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     5            <section name="KeySearcher.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
    66        </sectionGroup>
    77    </configSections>
     
    1919        </KeySearcher.Properties.Settings>
    2020    </userSettings>
    21 </configuration>
     21<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
  • trunk/CrypPlugins/Wizard/Wizard.csproj

    r2711 r2803  
    104104      <Name>CrypPluginBase</Name>
    105105    </ProjectReference>
     106    <ProjectReference Include="..\..\WorkspaceManagerModel\WorkspaceManagerModel.csproj">
     107      <Project>{C35A6E71-D6FE-478B-A12D-FAD54FC4EDC9}</Project>
     108      <Name>WorkspaceManagerModel</Name>
     109    </ProjectReference>
    106110    <ProjectReference Include="..\WorkspaceManager\WorkspaceManager.csproj">
    107111      <Project>{949B4294-2894-43B4-BD73-E0B031F5434F}</Project>
  • trunk/CrypPlugins/Wizard/WizardControl.xaml.cs

    r2722 r2803  
    765765
    766766            var newEditor = new WorkspaceManager.WorkspaceManager();
    767             var model = ModelPersistance.loadModel(file, newEditor);
     767            var model = ModelPersistance.loadModel(file);
    768768
    769769            //Fill in all data from wizard to sample:
     
    773773                try
    774774                {
    775                     var plugin = model.AllPluginModels.Where(x => x.Name == ppv.PluginName).First().Plugin;
     775                    var plugin = model.GetAllPluginModels().Where(x => x.GetName() == ppv.PluginName).First().Plugin;
    776776                    var settings = plugin.Settings;
    777777
     
    802802                if (pluginName != null && propertyName != null)
    803803                {
    804                     var plugin = model.AllPluginModels.Where(x => x.Name == pluginName).First().Plugin;
     804                    var plugin = model.GetAllPluginModels().Where(x => x.GetName() == pluginName).First().Plugin;
    805805                    var settings = plugin.Settings;
    806806                    object theObject = null;
     
    841841                if (!string.IsNullOrEmpty(pluginName))
    842842                {
    843                     var plugin = model.AllPluginModels.Where(x => x.Name == pluginName).First().Plugin;
     843                    var plugin = model.GetAllPluginModels().Where(x => x.GetName() == pluginName).First().Plugin;
    844844                    if (presentation.Content == null)
    845845                        presentation.Content = plugin.Presentation;
     
    855855                if (pluginName != null && propertyName != null)
    856856                {
    857                     var plugin = model.AllPluginModels.Where(x => x.Name == pluginName).First().Plugin;
     857                    var plugin = model.GetAllPluginModels().Where(x => x.GetName() == pluginName).First().Plugin;
    858858                    var settings = plugin.Settings;
    859859                    object theObject = null;
     
    882882
    883883            //load sample:
    884             foreach (PluginModel pluginModel in model.AllPluginModels)
     884            foreach (PluginModel pluginModel in model.GetAllPluginModels())
    885885            {
    886886                pluginModel.Plugin.Initialize();
  • trunk/CrypPlugins/WorkspaceManager/View/Container/ConnectorView.xaml.cs

    r2586 r2803  
    1616using WorkspaceManager.Model;
    1717using System.Windows.Controls.Primitives;
     18using WorkspaceManagerModel.Model.Interfaces;
    1819
    1920namespace WorkspaceManager.View.Container
    2021{
    21     public enum ConnectorOrientation
    22     {
    23         North,
    24         South,
    25         West,
    26         East,
    27         Unset
    28     };
    29 
    3022    /// <summary>
    3123    /// Interaction logic for ConnectorView.xaml
  • trunk/CrypPlugins/WorkspaceManager/View/Container/IControlPlaceHolder.xaml.cs

    r2586 r2803  
    1616using WorkspaceManager.View.Converter;
    1717using Cryptool.PluginBase;
     18using WorkspaceManagerModel.Model.Operations;
    1819
    1920namespace WorkspaceManager.View.Container
     
    7273            if (!e.Handled && PluginModel != null)
    7374            {
    74                 PluginChangedEventArgs args = new PluginChangedEventArgs(PluginModel.Plugin, PluginModel.Name, DisplayPluginMode.Normal);
    75                 this.Model.WorkspaceModel.WorkspaceManagerEditor.onSelectedPluginChanged(args);
     75                PluginChangedEventArgs args = new PluginChangedEventArgs(PluginModel.Plugin, PluginModel.GetName(), DisplayPluginMode.Normal);
     76                //this.Model.WorkspaceModel.WorkspaceManagerEditor.onSelectedPluginChanged(args);
    7677                e.Handled = true;
    7778            }
     
    8182        {
    8283            bg.DataContext = PluginModel;
    83             this.ToolTip = Model.Name;
     84            this.ToolTip = Model.GetName();
    8485        }
    8586
     
    103104        void  IControlPlaceHolder_Drop(object sender, DragEventArgs e)
    104105        {
    105                 if (this.Model.WorkspaceModel.WorkspaceEditor.State == EditorState.READY)
     106                if (((WorkspaceManager)this.Model.WorkspaceModel.MyEditor).State == EditorState.READY)
    106107            {
    107108                if (e.Data.GetDataPresent("Cryptool.PluginBase.Editor.DragDropDataObject"))
     
    110111                    {
    111112                        DragDropDataObject obj = e.Data.GetData("Cryptool.PluginBase.Editor.DragDropDataObject") as DragDropDataObject;
    112                         PluginModel pluginModel = this.Model.WorkspaceModel.newPluginModel(DragDropDataObjectToPluginConverter.CreatePluginInstance(obj.AssemblyFullName, obj.TypeFullName));
     113                        PluginModel pluginModel = (PluginModel)this.Model.WorkspaceModel.ModifyModel(new NewPluginModelOperation(new Point(0,0),0,0,DragDropDataObjectToPluginConverter.CreatePluginInstance(obj.AssemblyFullName, obj.TypeFullName)));
    113114                        if (obj != null)
    114115                        {
    115                             foreach (ConnectorModel mod in pluginModel.InputConnectors)
     116                            foreach (ConnectorModel mod in pluginModel.GetInputConnectors())
    116117                            {
    117118                                if (mod.IControl && mod.ConnectorType.Name == Model.ConnectorType.Name)
     
    123124                        }
    124125
    125                         this.Model.WorkspaceModel.WorkspaceManagerEditor.HasChanges = true;
     126                        ((WorkspaceManager)this.Model.WorkspaceModel.MyEditor).HasChanges = true;
    126127                    }
    127128                    catch (Exception ex)
    128129                    {
    129                         this.Model.WorkspaceModel.WorkspaceManagerEditor.GuiLogMessage("Could not add Plugin to Workspace:" + ex.Message, NotificationLevel.Error);
    130                         this.Model.WorkspaceModel.WorkspaceManagerEditor.GuiLogMessage(ex.StackTrace, NotificationLevel.Error);
     130                        ((WorkspaceManager)this.Model.WorkspaceModel.MyEditor).GuiLogMessage("Could not add Plugin to Workspace:" + ex.Message, NotificationLevel.Error);
     131                        ((WorkspaceManager)this.Model.WorkspaceModel.MyEditor).GuiLogMessage(ex.StackTrace, NotificationLevel.Error);
    131132                        return;
    132133                    }
     
    141142        private void MenuItem_Click(object sender, RoutedEventArgs e)
    142143        {
    143             Model.WorkspaceModel.deletePluginModel(PluginModel);
     144            Model.WorkspaceModel.ModifyModel(new DeletePluginModelOperation(PluginModel));
    144145            PluginModel = null;
    145146        }
  • trunk/CrypPlugins/WorkspaceManager/View/Container/PluginContainerView.xaml.cs

    r2708 r2803  
    2626using System.Collections;
    2727using WorkspaceManager.Model.Tools;
     28using WorkspaceManagerModel.Model.Interfaces;
     29using WorkspaceManagerModel.Model.Operations;
    2830namespace WorkspaceManager.View.Container
    2931{
    30     public enum PluginViewState
    31     {   
    32         Min,
    33         Presentation,
    34         Data,
    35         Log,
    36         Setting,
    37         Description
    38     };
    39 
    4032    /// <summary>
    4133    /// Interaction logic for PluginContainerView.xaml
     
    193185                            break;
    194186                        }
    195                         PluginBase.Width = Model.Width;
    196                         PluginBase.Height = Model.Height;
     187                        PluginBase.Width = Model.GetWidth();
     188                        PluginBase.Height = Model.GetHeight();
    197189                        ViewPanel.Visibility = Visibility.Visible;
    198190                        break;
    199191
    200192                    case PluginViewState.Data:
    201                         PluginBase.Width = Model.Width;
    202                         PluginBase.Height = Model.Height;
     193                        PluginBase.Width = Model.GetWidth();
     194                        PluginBase.Height = Model.GetHeight();
    203195                        ViewPanel.Visibility = Visibility.Visible;
    204196                        break;
    205197                    case PluginViewState.Log:
    206                         PluginBase.Width = Model.Width;
    207                         PluginBase.Height = Model.Height;
     198                        PluginBase.Width = Model.GetWidth();
     199                        PluginBase.Height = Model.GetHeight();
    208200                        ViewPanel.Visibility = Visibility.Visible;
    209201                        break;
     
    215207
    216208                    case PluginViewState.Setting:
    217                         PluginBase.Width = Model.Width;
    218                         PluginBase.Height = Model.Height;
     209                        PluginBase.Width = Model.GetWidth();
     210                        PluginBase.Height = Model.GetHeight();
    219211                        ViewPanel.Visibility = Visibility.Visible;
    220212                        break;
    221213
    222214                    case PluginViewState.Description:
    223                         PluginBase.Width = Model.Width;
    224                         PluginBase.Height = Model.Height;
     215                        PluginBase.Width = Model.GetWidth();
     216                        PluginBase.Height = Model.GetHeight();
    225217                        ViewPanel.Visibility = Visibility.Visible;
    226218                        break;
     
    309301            Settings.DisplayPluginSettings(Model.Plugin, Model.Plugin.GetPluginInfoAttribute().Caption, Cryptool.PluginBase.DisplayPluginMode.Normal);
    310302
    311             foreach (ConnectorModel ConnectorModel in model.InputConnectors)
     303            foreach (ConnectorModel ConnectorModel in model.GetInputConnectors())
    312304            {
    313305                if (ConnectorModel.IControl)
     
    318310            }
    319311
    320             foreach (ConnectorModel ConnectorModel in model.OutputConnectors)
     312            foreach (ConnectorModel ConnectorModel in model.GetOutputConnectors())
    321313            {
    322314                if (ConnectorModel.IControl)
    323315                {
    324316                    PluginModel pm = null;
    325                     if (ConnectorModel.OutputConnections.Count > 0)
     317                    if (ConnectorModel.GetOutputConnections().Count > 0)
    326318                    {
    327                         pm = ConnectorModel.OutputConnections[0].To.PluginModel;
     319                        pm = ConnectorModel.GetOutputConnections()[0].To.PluginModel;
    328320                    }
    329321
     
    567559
    568560        public void SetPosition(Point value)
    569         {
     561        {           
    570562            if (value.Y < 0)
    571563                Canvas.SetTop(this, 0);
     
    579571
    580572            Point p = GetPosition();
    581             if (Model.WorkspaceModel.UndoRedoManager != null &&
    582                 !Model.WorkspaceModel.UndoRedoManager.Working
    583                 && !Model.Position.Equals(p))
    584             {
    585                 Model.WorkspaceModel.UndoRedoManager.DidOperation(
    586                     new MoveModelElementOperation(Model)
    587                     {
    588                         SingleOperation = true,
    589                         OldPosition = Model.Position,
    590                         NewPosition = p
    591                     });
    592             }
    593             Model.Position = p;           
     573            Model.WorkspaceModel.ModifyModel(new MoveModelElementOperation(Model, p));
     574
    594575            PositionOnWorkSpaceX = p.X;
    595576            PositionOnWorkSpaceY = p.Y;           
     
    610591            this.Model = model;
    611592            this.Model.UpdateableView = this;
    612             this.Model.LogUpdated += new EventHandler<LogUpdated>(Model_LogUpdated);
     593            //this.Model.LogUpdated += new EventHandler<LogUpdated>(Model_LogUpdated);
    613594            this.DataContext = Model;
    614595            this.ConnectorViewList = new List<ConnectorView>();
     
    616597            this.Icon = this.Model.getImage();
    617598            this.PluginName.Text = model.Plugin.GetPluginInfoAttribute().Caption;
    618             this.CTextBox.Text = Model.Name;
     599            this.CTextBox.Text = Model.GetName();
    619600            this.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(PluginContainerView_MouseLeftButtonDown);
    620601            this.PreviewMouseLeftButtonUp += new MouseButtonEventHandler(PluginContainerView_PreviewMouseLeftButtonUp);
     
    640621        void PluginContainerView_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    641622        {
    642             if (!Model.WorkspaceModel.SelectedPluginsList.Contains(this) && Model.WorkspaceModel.WorkspaceEditor.IsCtrlToggled)
    643             {
    644                 Model.WorkspaceModel.SelectedPluginsList.Add(this);
     623            if (!((WorkspaceManager)Model.WorkspaceModel.MyEditor).SelectedPluginsList.Contains(this) && ((WorkspaceManager)Model.WorkspaceModel.MyEditor).IsCtrlToggled)
     624            {
     625                ((WorkspaceManager)Model.WorkspaceModel.MyEditor).SelectedPluginsList.Add(this);
    645626                IsSelected = true;
    646627            }
    647             else if (!Model.WorkspaceModel.WorkspaceEditor.IsCtrlToggled)
    648             {
    649                 foreach (PluginContainerView plugin in Model.WorkspaceModel.SelectedPluginsList)
     628            else if (!((WorkspaceManager)Model.WorkspaceModel.MyEditor).IsCtrlToggled)
     629            {
     630                foreach (PluginContainerView plugin in ((WorkspaceManager)Model.WorkspaceModel.MyEditor).SelectedPluginsList)
    650631                {
    651632                    plugin.IsSelected = false;
    652633                }
    653                 Model.WorkspaceModel.SelectedPluginsList.Clear();
    654                 Model.WorkspaceModel.SelectedPluginsList.Add(this);
     634                ((WorkspaceManager)Model.WorkspaceModel.MyEditor).SelectedPluginsList.Clear();
     635                ((WorkspaceManager)Model.WorkspaceModel.MyEditor).SelectedPluginsList.Add(this);
    655636                IsSelected = true;
    656637            }
     
    672653            }
    673654        }
    674 
    675         void Model_LogUpdated(object sender, LogUpdated e)
    676         {
    677             LogPresentation log = LogPanel.Child as LogPresentation;
    678             log.AddLogList(Model.GuiLogEvents);
    679         }
    680 
     655       
    681656        #endregion
    682657
     
    720695
    721696            LogPresentation LogView = LogPanel.Child as LogPresentation;
    722             LogView.LogUpdated += new EventHandler<LogUpdated>(LogView_LogUpdated);
    723697           
    724698        }
    725 
    726         void LogView_LogUpdated(object sender, LogUpdated e)
    727         {
    728             //LogPresentation logView = sender as LogPresentation;
    729             //ErrorCount.Text = logView.ErrorCount.ToString();
    730             //WarningCount.Text = logView.WarningCount.ToString();
    731             //DebugCount.Text = logView.DebugCount.ToString();
    732             //InfoCount.Text = logView.InfoCount.ToString();
    733             //LogReport.Text = e.log.Message;
    734             //BubblePopup.IsOpen = true;
    735         }
    736 
     699       
    737700        private int optionModulo(int value)
    738701        {
     
    863826            if (t.Cursor == Cursors.SizeWE)
    864827            {
    865                 if ((PluginBase.ActualWidth + e.HorizontalChange) > Model.MinWidth)
     828                if ((PluginBase.ActualWidth + e.HorizontalChange) > Model.GetMinWidth())
    866829                    PluginBase.Width = PluginBase.ActualWidth + e.HorizontalChange;
    867830            }
     
    869832            if (t.Cursor == Cursors.SizeNS)
    870833            {
    871                 if ((PluginBase.ActualHeight + e.VerticalChange) > Model.MinHeight)
     834                if ((PluginBase.ActualHeight + e.VerticalChange) > Model.GetMinHeight())
    872835                    PluginBase.Height = PluginBase.ActualHeight + e.VerticalChange;
    873836            }
     
    875838            if (t.Cursor == Cursors.SizeNWSE)
    876839            {
    877                 if ((PluginBase.ActualHeight + e.VerticalChange) > Model.MinHeight)
     840                if ((PluginBase.ActualHeight + e.VerticalChange) > Model.GetMinHeight())
    878841                    PluginBase.Height = PluginBase.ActualHeight + e.VerticalChange;
    879842
    880                 if ((PluginBase.ActualWidth + e.HorizontalChange) > Model.MinWidth)
     843                if ((PluginBase.ActualWidth + e.HorizontalChange) > Model.GetMinWidth())
    881844                    PluginBase.Width = PluginBase.ActualWidth + e.HorizontalChange;
    882845            }
    883846
    884             Model.Height = PluginBase.ActualHeight;
    885             Model.Width = PluginBase.ActualWidth;
    886            
    887      
     847            Model.WorkspaceModel.ModifyModel(new ResizeModelElementOperation(Model, PluginBase.ActualWidth,PluginBase.ActualHeight));     
    888848        }
    889849
     
    999959        private void Thumb_DragDelta_1(object sender, DragDeltaEventArgs e)
    1000960        {
    1001             List<PluginContainerView> list = new List<PluginContainerView>(Model.WorkspaceModel.SelectedPluginsList);
     961            List<PluginContainerView> list = new List<PluginContainerView>(((WorkspaceManager)Model.WorkspaceModel.MyEditor).SelectedPluginsList);
    1002962            list.Sort((a,b) => a.GetPosition().X.CompareTo(b.GetPosition().X));
    1003963            foreach (PluginContainerView plugin in list)
     
    1013973            }
    1014974
    1015             Model.WorkspaceModel.WorkspaceManagerEditor.HasChanges = true;
     975            ((WorkspaceManager)Model.WorkspaceModel.MyEditor).HasChanges = true;
    1016976        }
    1017977
    1018978        private void CTextBox_TextChanged(object sender, TextChangedEventArgs e)
    1019979        {
    1020             Model.Name = CTextBox.Text;
     980            //Model.Name = CTextBox.Text;
     981            //Todo: Create ChangeValueOperation and call it here
    1021982        }
    1022983
  • trunk/CrypPlugins/WorkspaceManager/View/Container/WorkSpaceEditorView.xaml.cs

    r2708 r2803  
    2121using System.Collections.ObjectModel;
    2222using System.Windows.Threading;
     23using WorkspaceManagerModel.Model.Interfaces;
     24using WorkspaceManagerModel.Model.Operations;
    2325
    2426namespace WorkspaceManager.View.Container
     
    3335    /// </summary>
    3436    ///
    35     public partial class WorkSpaceEditorView : UserControl,IUpdateableView
     37    public partial class WorkSpaceEditorView : UserControl, IUpdateableView
    3638    {
    3739
     
    6062        {
    6163            get { return model; }
    62             set { model = value; }
     64            set { model = value;
     65                  model.DeletedChildElement += DeleteChild;
     66                  model.NewChildElement += NewChild;
     67                  model.ChildPositionChanged += ChildPositionChanged;
     68                  model.ChildSizeChanged += ChildSizeChanged;
     69            }
    6370        }
    6471
     
    239246            {
    240247                List<PluginModel> list = new List<PluginModel>();
    241                 foreach (PluginContainerView plugin in Model.SelectedPluginsList)
     248                foreach (PluginContainerView plugin in ((WorkspaceManager)Model.MyEditor).SelectedPluginsList)
    242249                {
    243250                    list.Add(plugin.Model);
     
    258265                if (!(v is PluginCopyWrapper))
    259266                    return;
    260 
     267                /*
     268                 * todo: create new paste method
     269                 *
     270                 *
    261271                foreach (PluginModel model in v.Model)
    262272                {
     
    265275                    model.generateConnectors();
    266276                    this.AddPluginContainerView(model.Position, model);
    267                 }
     277                }*/
    268278
    269279                //foreach (ConnectionModel connModel in Model.AllConnectionModels)
     
    346356            if (this.State == EditorState.READY)
    347357            {
    348                 Model.deletePluginModel(e.container.Model);
     358                Model.ModifyModel(new DeletePluginModelOperation(e.container.Model));
    349359                root.Children.Remove(e.container);
    350                 Model.WorkspaceManagerEditor.HasChanges = true;
     360                ((WorkspaceManager)Model.MyEditor).HasChanges = true;
    351361            }
    352362        }
     
    372382                this.root.Children.Add(newPluginContainerView);
    373383                Canvas.SetZIndex(newPluginContainerView, 100);
    374                 Model.WorkspaceManagerEditor.HasChanges = true;
     384                ((WorkspaceManager)Model.MyEditor).HasChanges = true;
    375385            }
    376386        }
     
    398408        {
    399409            if (this.State == EditorState.READY)
    400             {
    401                 ConnectionModel connectionModel = this.Model.newConnectionModel(((ConnectorView)source).Model, ((ConnectorView)target).Model, ((ConnectorView)source).Model.ConnectorType);
     410            {               
     411                ConnectionModel connectionModel = (ConnectionModel)this.Model.ModifyModel(new NewConnectionModelOperation(((ConnectorView)source).Model,((ConnectorView)target).Model,((ConnectorView)source).Model.ConnectorType));
     412
    402413                CryptoLineView conn = new CryptoLineView(connectionModel,source,target);
    403414                conn.StartPointSource = source;
    404415                conn.EndPointSource = target;
    405                 connectionModel.UpdateableView = conn;
    406                 connectionModel.OnDelete += DeleteConnection;
     416                connectionModel.UpdateableView = conn;               
    407417                conn.SetBinding(CryptoLineView.StartPointProperty, CreateConnectorBinding(source));
    408418                conn.SetBinding(CryptoLineView.EndPointProperty, CreateConnectorBinding(target));
     
    413423        }
    414424
    415         public void DeleteConnection(Object sender, EventArgs args)
    416         {
    417             if (sender is ConnectionModel)
    418             {
    419                 if(((ConnectionModel)sender).UpdateableView != null){
    420                     UIElement uielement = (UIElement)((ConnectionModel)sender).UpdateableView;
    421                     root.Children.Remove(uielement);
     425        /// <summary>
     426        /// A child is deleted on model side
     427        /// </summary>
     428        /// <param name="sender"></param>
     429        /// <param name="args"></param>
     430        public void DeleteChild(Object sender, ModelArgs args)
     431        {
     432            if (args.EffectedModelElement is ConnectionModel)
     433            {
     434                if (((ConnectionModel)args.EffectedModelElement).UpdateableView != null)
     435                {
     436                    UIElement uielement = (UIElement)((ConnectionModel)args.EffectedModelElement).UpdateableView;
     437                    if (root.Children.Contains(uielement))
     438                    {
     439                        root.Children.Remove(uielement);
     440                    }
     441                }
     442            }
     443            else if (args.EffectedModelElement is PluginModel)
     444            {
     445                if (((PluginModel)args.EffectedModelElement).UpdateableView != null)
     446                {
     447                    UIElement uielement = (UIElement)((PluginModel)args.EffectedModelElement).UpdateableView;
     448                    if (root.Children.Contains(uielement))
     449                    {
     450                        root.Children.Remove(uielement);
     451                    }
     452                }
     453            }
     454            else if (args.EffectedModelElement is ImageModel)
     455            {
     456                if (((ImageModel)args.EffectedModelElement).UpdateableView != null)
     457                {
     458                    UIElement uielement = (UIElement)((ImageModel)args.EffectedModelElement).UpdateableView;
     459                    if (root.Children.Contains(uielement))
     460                    {
     461                        root.Children.Remove(uielement);
     462                    }
     463                }
     464            }
     465            else if (args.EffectedModelElement is TextModel)
     466            {
     467                if (((TextModel)args.EffectedModelElement).UpdateableView != null)
     468                {
     469                    UIElement uielement = (UIElement)((TextModel)args.EffectedModelElement).UpdateableView;
     470                    if (root.Children.Contains(uielement))
     471                    {
     472                        root.Children.Remove(uielement);
     473                    }
     474                }
     475            }
     476        }
     477
     478        /// <summary>
     479        /// A child is created on model side
     480        /// </summary>
     481        /// <param name="sender"></param>
     482        /// <param name="args"></param>
     483        public void NewChild(Object sender, ModelArgs args)
     484        {
     485            if (args.EffectedModelElement is ConnectionModel)
     486            {
     487                if (((ConnectionModel)args.EffectedModelElement).UpdateableView != null)
     488                {
     489                    CryptoLineView conn = (CryptoLineView)((ConnectionModel)args.EffectedModelElement).UpdateableView;
     490                    if (!root.Children.Contains(conn))
     491                    {
     492                        root.Children.Add(conn);
     493                        ConnectionList.Add(conn);
     494                        Canvas.SetZIndex(conn, 0);
     495                    }
     496                }
     497            }
     498            else if (args.EffectedModelElement is PluginModel)
     499            {
     500                if (((PluginModel)args.EffectedModelElement).UpdateableView != null)
     501                {
     502                    PluginContainerView plugin = (PluginContainerView)((PluginModel)args.EffectedModelElement).UpdateableView;
     503                    if (!root.Children.Contains(plugin))
     504                    {
     505                        root.Children.Add(plugin);
     506                    }
     507                }
     508            }
     509            else if (args.EffectedModelElement is ImageModel)
     510            {
     511                if (((ImageModel)args.EffectedModelElement).UpdateableView != null)
     512                {
     513                    ImageWrapper imgWrapper = (ImageWrapper)((ImageModel)args.EffectedModelElement).UpdateableView;
     514                    if (!root.Children.Contains(imgWrapper))
     515                    {
     516                        root.Children.Add(imgWrapper);
     517                    }
     518                }
     519            }
     520            else if (args.EffectedModelElement is TextModel)
     521            {
     522                if (((TextModel)args.EffectedModelElement).UpdateableView != null)
     523                {
     524                    TextInputWrapper txtInputWrapper = (TextInputWrapper)((TextModel)args.EffectedModelElement).UpdateableView;
     525                    if (!root.Children.Contains(txtInputWrapper))
     526                    {
     527                        root.Children.Add(txtInputWrapper);
     528                    }
     529                }
     530            }
     531        }
     532
     533        /// <summary>
     534        /// The position of a child has changed on model side
     535        /// </summary>
     536        /// <param name="sender"></param>
     537        /// <param name="args"></param>
     538        public void ChildPositionChanged(Object sender, PositionArgs args)
     539        {
     540            if(args.OldPosition.Equals(args.NewPosition)){
     541                return;
     542            }
     543            else if (args.EffectedModelElement is PluginModel)
     544            {
     545                if (((PluginModel)args.EffectedModelElement).UpdateableView != null)
     546                {
     547                    PluginContainerView pluginContainerView = (PluginContainerView)((PluginModel)args.EffectedModelElement).UpdateableView;
     548                    pluginContainerView.SetPosition(args.NewPosition);
     549                }
     550            }
     551            else if (args.EffectedModelElement is ImageModel)
     552            {
     553                if (((ImageModel)args.EffectedModelElement).UpdateableView != null)
     554                {
     555                    ImageWrapper imgWrapper = (ImageWrapper)((ImageModel)args.EffectedModelElement).UpdateableView;
     556                    imgWrapper.Position = args.NewPosition;
     557                    imgWrapper.RenderTransform = new TranslateTransform(imgWrapper.Position.X, imgWrapper.Position.Y);
     558                }
     559            }
     560            else if (args.EffectedModelElement is TextModel)
     561            {
     562                if (((TextModel)args.EffectedModelElement).UpdateableView != null)
     563                {
     564                    TextInputWrapper txtWrapper = (TextInputWrapper)((TextModel)args.EffectedModelElement).UpdateableView;
     565                    txtWrapper.Position = args.NewPosition;
     566                    txtWrapper.RenderTransform = new TranslateTransform(txtWrapper.Position.X, txtWrapper.Position.Y);
     567                }
     568            }
     569        }
     570
     571        /// <summary>
     572        /// The size of a child changed on model side
     573        /// </summary>
     574        /// <param name="sender"></param>
     575        /// <param name="args"></param>
     576        public void ChildSizeChanged(Object sender, SizeArgs args)
     577        {
     578            if(args.NewHeight.Equals(args.OldHeight) &&
     579               args.NewWidth.Equals(args.OldWidth)){
     580                return;
     581            }
     582            else if (args.EffectedModelElement is PluginModel)
     583            {
     584                if (((PluginModel)args.EffectedModelElement).UpdateableView != null)
     585                {
     586                    PluginContainerView pluginContainerView = (PluginContainerView)((PluginModel)args.EffectedModelElement).UpdateableView;
     587                    pluginContainerView.PluginBase.Width = args.NewWidth;
     588                    pluginContainerView.PluginBase.Height = args.NewHeight;
     589                }
     590            }
     591            else if (args.EffectedModelElement is ImageModel)
     592            {
     593                if (((ImageModel)args.EffectedModelElement).UpdateableView != null)
     594                {
     595                    ImageWrapper imgWrapper = (ImageWrapper)((ImageModel)args.EffectedModelElement).UpdateableView;
     596                    imgWrapper.Width = args.NewWidth;
     597                    imgWrapper.Height = args.NewHeight;
     598                }
     599            }
     600            else if (args.EffectedModelElement is TextModel)
     601            {
     602                if (((TextModel)args.EffectedModelElement).UpdateableView != null)
     603                {
     604                    TextInputWrapper txtWrapper = (TextInputWrapper)((TextModel)args.EffectedModelElement).UpdateableView;
     605                    txtWrapper.Width = args.NewWidth;
     606                    txtWrapper.Height = args.NewHeight;
    422607                }
    423608            }
     
    560745            Canvas.SetZIndex(selectedPluginContainer, 101);
    561746
    562             PluginChangedEventArgs args = new PluginChangedEventArgs(this.selectedPluginContainer.Model.Plugin, this.selectedPluginContainer.Model.Name, DisplayPluginMode.Normal);
    563             this.Model.WorkspaceManagerEditor.onSelectedPluginChanged(args);
     747            PluginChangedEventArgs args = new PluginChangedEventArgs(this.selectedPluginContainer.Model.Plugin, this.selectedPluginContainer.Model.GetName(), DisplayPluginMode.Normal);
     748            ((WorkspaceManager)this.Model.MyEditor).onSelectedPluginChanged(args);
    564749
    565750            e.Handled = true;
     
    575760                    {
    576761                        DragDropDataObject obj = e.Data.GetData("Cryptool.PluginBase.Editor.DragDropDataObject") as DragDropDataObject;
    577                         PluginModel pluginModel = Model.newPluginModel(DragDropDataObjectToPluginConverter.CreatePluginInstance(obj.AssemblyFullName, obj.TypeFullName));
     762                        //PluginModel pluginModel = Model.newPluginModel(DragDropDataObjectToPluginConverter.CreatePluginInstance(obj.AssemblyFullName, obj.TypeFullName));
     763                        PluginModel pluginModel = (PluginModel)Model.ModifyModel(new NewPluginModelOperation(new Point(0,0),0,0,DragDropDataObjectToPluginConverter.CreatePluginInstance(obj.AssemblyFullName, obj.TypeFullName)));
    578764                        if (obj != null)
    579765                            this.AddPluginContainerView(e.GetPosition(root), pluginModel);
    580                         Model.WorkspaceManagerEditor.HasChanges = true;
     766                        ((WorkspaceManager)this.Model.MyEditor).HasChanges = true;
    581767                    }
    582768                    catch (Exception ex)
    583769                    {
    584                         this.Model.WorkspaceManagerEditor.GuiLogMessage("Could not add Plugin to Workspace:" + ex.Message, NotificationLevel.Error);
    585                         this.Model.WorkspaceManagerEditor.GuiLogMessage(ex.StackTrace, NotificationLevel.Error);
     770                        ((WorkspaceManager)this.Model.MyEditor).GuiLogMessage("Could not add Plugin to Workspace:" + ex.Message, NotificationLevel.Error);
     771                        ((WorkspaceManager)this.Model.MyEditor).GuiLogMessage(ex.StackTrace, NotificationLevel.Error);
    586772                        return;
    587773                    }
     
    621807        internal void Load(WorkspaceModel WorkspaceModel)
    622808        {
    623             this.Model = WorkspaceModel;
    624 
    625             foreach (PluginModel model in this.Model.AllPluginModels)
     809            this.Model = WorkspaceModel;           
     810            foreach (PluginModel model in this.Model.GetAllPluginModels())
    626811            {
    627812                bool skip = false;
    628                 foreach (ConnectorModel connModel in model.InputConnectors)
    629                 {
    630                     if (connModel.IControl && connModel.InputConnections.Count > 0)
     813                foreach (ConnectorModel connModel in model.GetInputConnectors())
     814                {
     815                    if (connModel.IControl && connModel.GetInputConnections().Count > 0)
    631816                    {
    632817                        skip = true;
     
    637822                    this.loadPluginContainerView(model);
    638823            }
    639             foreach (ConnectionModel connModel in WorkspaceModel.AllConnectionModels)
     824            foreach (ConnectionModel connModel in WorkspaceModel.GetAllConnectionModels())
    640825            {
    641826                if (connModel.To.IControl)
     
    643828
    644829                CryptoLineView conn = new CryptoLineView(connModel,null,null);
    645                 connModel.UpdateableView = conn;
    646                 connModel.OnDelete += DeleteConnection;
     830                connModel.UpdateableView = conn;               
    647831
    648832                foreach (UIElement element in root.Children)
     
    680864        {
    681865            PluginContainerView newPluginContainerView = new PluginContainerView(model);
     866            //model.PositionChanged += newPluginContainerView.OnPositionChanged;
    682867
    683868            newPluginContainerView.Delete += new EventHandler<PluginContainerViewDeleteViewEventArgs>(PluginDelete);
     
    687872            newPluginContainerView.MouseLeftButtonUp += new MouseButtonEventHandler(shape_MouseLeftButtonUp);
    688873            newPluginContainerView.ReleaseDummyLine += new EventHandler(newPluginContainerView_ReleaseDummyLine);
    689             newPluginContainerView.SetPosition(model.Position);
     874            newPluginContainerView.SetPosition(model.GetPosition());
    690875            this.root.Children.Add(newPluginContainerView);
    691876            Canvas.SetZIndex(newPluginContainerView, 100);
     
    704889            if (!e.Handled)
    705890            {
    706                 PluginChangedEventArgs args = new PluginChangedEventArgs(this.model.WorkspaceManagerEditor, "WorkspaceManager", DisplayPluginMode.Normal);
    707                 this.Model.WorkspaceManagerEditor.onSelectedPluginChanged(args);
     891                PluginChangedEventArgs args = new PluginChangedEventArgs(((WorkspaceManager)this.Model.MyEditor), "WorkspaceManager", DisplayPluginMode.Normal);
     892                ((WorkspaceManager)this.Model.MyEditor).onSelectedPluginChanged(args);
    708893            }
    709894        }
  • trunk/CrypPlugins/WorkspaceManager/View/Converter/BlurViewStateConverter.cs

    r1834 r2803  
    55using System.Windows.Data;
    66using WorkspaceManager.View.Container;
     7using WorkspaceManager.Model;
    78
    89namespace WorkspaceManager.View.Converter
  • trunk/CrypPlugins/WorkspaceManager/View/Converter/ConnectorBindingConverter.cs

    r2118 r2803  
    77using System.Globalization;
    88using WorkspaceManager.View.Container;
     9using WorkspaceManager.Model;
    910
    1011namespace WorkspaceManager.View.Converter
  • trunk/CrypPlugins/WorkspaceManager/View/Converter/DragDeltaViewStateConverter.cs

    r1991 r2803  
    66using WorkspaceManager.View.Container;
    77using System.Windows;
     8using WorkspaceManager.Model;
    89
    910namespace WorkspaceManager.View.Converter
  • trunk/CrypPlugins/WorkspaceManager/View/Converter/OverlapConverter.cs

    r1813 r2803  
    77using System.Windows;
    88using System.Windows.Controls;
     9using WorkspaceManager.Model;
    910
    1011namespace WorkspaceManager.View.Converter
  • trunk/CrypPlugins/WorkspaceManager/View/Converter/ViewStateCaptionConverter.cs

    r2119 r2803  
    55using System.Windows.Data;
    66using WorkspaceManager.View.Container;
     7using WorkspaceManager.Model;
    78
    89namespace WorkspaceManager.View.Converter
  • trunk/CrypPlugins/WorkspaceManager/View/Converter/ViewStateConverter.cs

    r1991 r2803  
    66using WorkspaceManager.View.Container;
    77using System.Windows;
     8using WorkspaceManager.Model;
    89
    910namespace WorkspaceManager.View.Converter
  • trunk/CrypPlugins/WorkspaceManager/View/Converter/ViewStateIconConverter.cs

    r1892 r2803  
    66using WorkspaceManager.View.Container;
    77using System.Windows.Media.Imaging;
     8using WorkspaceManager.Model;
    89
    910namespace WorkspaceManager.View.Converter
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/CryptoLineView/CryptoLineView.cs

    r2388 r2803  
    1717using WorkspaceManager.View.VisualComponents.StackFrameDijkstra;
    1818using System.Windows.Data;
     19using WorkspaceManagerModel.Model.Interfaces;
     20using WorkspaceManagerModel.Model.Operations;
    1921
    2022namespace WorkspaceManager.View.VisualComponents
     
    107109            if (args.RightButton == MouseButtonState.Pressed)
    108110            {
    109                 if (this.model != null && !this.model.WorkspaceModel.WorkspaceManagerEditor.isExecuting())
    110                 {
    111                     this.model.WorkspaceModel.deleteConnectionModel(this.model);
     111                if (this.model != null && !((WorkspaceManager)this.model.WorkspaceModel.MyEditor).isExecuting())
     112                {
     113                    this.model.WorkspaceModel.ModifyModel(new DeleteConnectionModelOperation(this.model));
    112114                }
    113115            }           
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/ImageWrapper.xaml.cs

    r2544 r2803  
    1616using WorkspaceManager.View.Interface;
    1717using WorkspaceManager.View.Container;
     18using WorkspaceManagerModel.Model.Operations;
     19using WorkspaceManagerModel.Model.Interfaces;
    1820
    1921namespace WorkspaceManager.View.VisualComponents
     
    2325    /// Interaction logic for ImageWrapper.xaml
    2426    /// </summary>
    25     public partial class ImageWrapper : UserControl
     27    public partial class ImageWrapper : UserControl, IUpdateableView
    2628    {
    2729        public event EventHandler<ImageDeleteEventArgs> Delete;
     
    6466            this.contentParent = parent;
    6567            this.Position = point;
    66             this.Model.Position = point;
     68            this.Model.WorkspaceModel.ModifyModel(new MoveModelElementOperation(Model, this.Position));
    6769            this.RenderTransform = new TranslateTransform(Position.X, Position.Y);
    68             this.root.Background = new ImageBrush() {ImageSource = this.Image.Source, Stretch = Stretch.Fill};
     70            this.root.Background = new ImageBrush() {ImageSource = this.Image.Source, Stretch = Stretch.Fill};           
    6971        }
    7072
    7173        void ImageWrapper_Loaded(object sender, RoutedEventArgs e)
    7274        {
    73             if (Model.Width == 0 || Model.Height == 0)
     75            if (Model.GetWidth() == 0 || Model.GetHeight() == 0)
    7476            {
    7577                this.Width = Image.Source.Width;
     
    7880            else
    7981            {
    80                 this.Width = Model.Width;
    81                 this.Height = Model.Height;
     82                this.Width = Model.GetWidth();
     83                this.Height = Model.GetHeight();
    8284            }
    8385
    84             this.ParentPanel.IsEnabled = Model.IsEnabled;
     86            //this.ParentPanel.IsEnabled = Model.IsEnabled;
    8587        }
    8688
     
    108110                    this.Width = this.ActualWidth + e.HorizontalChange;
    109111
    110                 Model.Height = this.ActualHeight;
    111                 Model.Width = this.ActualWidth;
     112                Model.WorkspaceModel.ModifyModel(new ResizeModelElementOperation(Model, this.Width, this.Height));
    112113            }
    113114            e.Handled = true;
     
    118119            (this.RenderTransform as TranslateTransform).X += e.HorizontalChange;
    119120            (this.RenderTransform as TranslateTransform).Y += e.VerticalChange;
    120             Model.Position.X = (this.RenderTransform as TranslateTransform).X;
    121             Model.Position.Y = (this.RenderTransform as TranslateTransform).Y;
     121            Point point = new Point((this.RenderTransform as TranslateTransform).X, (this.RenderTransform as TranslateTransform).Y);
     122            Model.WorkspaceModel.ModifyModel(new MoveModelElementOperation(Model, point));
    122123        }
    123124
     
    139140            {
    140141                this.ParentPanel.IsEnabled = false;
    141                 this.Model.IsEnabled = false;
     142                //this.Model.IsEnabled = false;
    142143                this.contentParent.SelectedItem = null;
    143144                return;
     
    147148            {
    148149                this.ParentPanel.IsEnabled = true;
    149                 this.Model.IsEnabled = true;
     150                //this.Model.IsEnabled = true;
    150151                this.contentParent.SelectedItem = this;
    151152                return;
     
    169170        }
    170171
     172
     173        #region UpdateableView Members
     174
     175        public void update()
     176        {
     177        }
     178
     179        #endregion
    171180    }
    172181
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/LogPresentation.xaml.cs

    r2118 r2803  
    4242
    4343        public int InfoCount { get; set; }
    44 
    45         public event EventHandler<LogUpdated> LogUpdated;
    46 
     44       
    4745        public LogPresentation()
    4846        {
     
    9189                    ValueCollection.Add(new CollectionElement(element));
    9290
    93                     if (this.LogUpdated != null)
    94                         this.LogUpdated.Invoke(this, new LogUpdated { log = element });
     91                    /*if (this.LogUpdated != null)
     92                        this.LogUpdated.Invoke(this, new LogUpdated { log = element });*/
    9593                }
    9694                list.Clear();
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/TextInputWrapper.xaml.cs

    r1991 r2803  
    1414using WorkspaceManager.Model;
    1515using System.Windows.Controls.Primitives;
     16using WorkspaceManagerModel.Model.Operations;
     17using WorkspaceManagerModel.Model.Interfaces;
    1618
    1719namespace WorkspaceManager.View.VisualComponents
     
    2022    /// Interaction logic for TextInputWrapper.xaml
    2123    /// </summary>
    22     public partial class TextInputWrapper : UserControl
     24    public partial class TextInputWrapper : UserControl, IUpdateableView
    2325    {
    2426        public event EventHandler<TextInputDeleteEventArgs> Delete;
     
    8587            this.mainRTB.TextChanged += MainRTBTextChanged;
    8688            this.Position = point;
     89            this.Model.WorkspaceModel.ModifyModel(new MoveModelElementOperation(Model, this.Position));
    8790            this.ContentParent = userContentWrapper;
    8891            this.RenderTransform = new TranslateTransform(point.X, point.Y);
     
    105108        void TextInputWrapper_Loaded(object sender, RoutedEventArgs e)
    106109        {
    107             this.Width = Model.Width;
    108             this.Height = Model.Height;
     110            this.Width = Model.GetWidth();
     111            this.Height = Model.GetHeight();
    109112            this.ParentPanel.IsEnabled = Model.IsEnabled;           
    110113        }
     
    114117            (this.RenderTransform as TranslateTransform).X += e.HorizontalChange;
    115118            (this.RenderTransform as TranslateTransform).Y += e.VerticalChange;
    116             Model.Position.X = (this.RenderTransform as TranslateTransform).X;
    117             Model.Position.Y = (this.RenderTransform as TranslateTransform).Y;
     119
     120            Point point = new Point((this.RenderTransform as TranslateTransform).X,(this.RenderTransform as TranslateTransform).Y);
     121            Model.WorkspaceModel.ModifyModel(new MoveModelElementOperation(Model,point));
    118122        }
    119123
     
    181185                    this.Width = this.ActualWidth + e.HorizontalChange;
    182186
    183                 Model.Height = this.ActualHeight;
    184                 Model.Width = this.ActualWidth;
     187                Model.WorkspaceModel.ModifyModel(new ResizeModelElementOperation(Model, this.Width, this.Height));
    185188            }
    186189        }
     
    196199            pop1.IsOpen = false;
    197200            pop1 = new ColorPickPopUp(sender as Rectangle) { IsOpen = true };
    198         }       
     201        }
     202
     203        #region UpdateableView Members
     204
     205        public void update()
     206        {
     207           
     208        }
     209
     210        #endregion
    199211    }
    200212
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/UserContentWrapper.xaml.cs

    r1895 r2803  
    1414using WorkspaceManager.Model;
    1515using WorkspaceManager.View.Interface;
     16using WorkspaceManagerModel.Model.Operations;
     17using WorkspaceManagerModel.Model.Interfaces;
    1618
    1719namespace WorkspaceManager.View.VisualComponents
     
    2123    /// Interaction logic for UserContentWrapper.xaml
    2224    /// </summary>
    23     public partial class UserContentWrapper : UserControl
     25    public partial class UserContentWrapper : UserControl, IUpdateableView
    2426    {
    2527        public WorkspaceModel Model;
     
    6365            TextInputList = new List<TextInputWrapper>();
    6466            Model = WorkspaceModel;
    65             foreach (ImageModel ImageModel in WorkspaceModel.AllImageModels)
     67            foreach (ImageModel ImageModel in WorkspaceModel.GetAllImageModels())
    6668            {
    6769                AddImage(ImageModel);
    6870            }
    6971
    70             foreach (TextModel TextModel in WorkspaceModel.AllTextModels)
     72            foreach (TextModel TextModel in WorkspaceModel.GetAllTextModels())
    7173            {
    7274                AddText(TextModel);
     
    8890            try
    8991            {
    90                 ImageModel model = Model.newImageModel(imgUri);
     92                ImageModel model = (ImageModel)Model.ModifyModel(new NewImageModelOperation(imgUri));               
    9193                ImageWrapper imgWrap = new ImageWrapper(model, point, this);
     94                model.UpdateableView = imgWrap;
    9295                imgWrap.Delete += new EventHandler<ImageDeleteEventArgs>(imgWrap_Delete);
    9396                ImageList.Add(imgWrap);
     
    102105        public void AddImage(ImageModel model)
    103106        {
    104             ImageWrapper imgWrap = new ImageWrapper(model, model.Position, this);
     107            ImageWrapper imgWrap = new ImageWrapper(model, model.GetPosition(), this);
     108            model.UpdateableView = imgWrap;
    105109            imgWrap.Delete += new EventHandler<ImageDeleteEventArgs>(imgWrap_Delete);
    106110            ImageList.Add(imgWrap);
     
    110114        public void AddText(Point point)
    111115        {
    112             TextModel model = Model.newTextModel();
     116            TextModel model = (TextModel)Model.ModifyModel(new NewTextModelOperation());           
    113117            TextInputWrapper txtWrap = new TextInputWrapper(model, point, this);
     118            model.UpdateableView = txtWrap;
    114119            txtWrap.Delete += new EventHandler<TextInputDeleteEventArgs>(txtWrap_Delete);
    115120            TextInputList.Add(txtWrap);
     
    119124        public void AddText(TextModel model)
    120125        {
    121             TextInputWrapper txtWrap = new TextInputWrapper(model, model.Position, this);
     126            TextInputWrapper txtWrap = new TextInputWrapper(model, model.GetPosition(), this);
     127            model.UpdateableView = txtWrap;
    122128            txtWrap.Delete += new EventHandler<TextInputDeleteEventArgs>(txtWrap_Delete);
    123129            TextInputList.Add(txtWrap);
     
    129135            ContentRoot.Children.Remove(e.img);
    130136            ImageList.Remove(e.img);
    131             Model.deleteImageModel(e.img.Model);
     137            Model.ModifyModel(new DeleteImageModelOperation(e.img.Model));
    132138        }
    133139
     
    136142            ContentRoot.Children.Remove(e.txt);
    137143            TextInputList.Remove(e.txt);
    138             Model.deleteTextModel(e.txt.Model);
     144            Model.ModifyModel(new DeleteTextModelOperation(e.txt.Model));
    139145        }
     146
     147        #region UpdateableView Members
     148
     149        public void update()
     150        {
     151        }
     152
     153        #endregion
    140154    }
    141155}
  • trunk/CrypPlugins/WorkspaceManager/WorkspaceManager.cs

    r2799 r2803  
    4444using System.Windows.Markup;
    4545using WorkspaceManager.Model.Tools;
     46using System.Collections.ObjectModel;
    4647
    4748//Disable warnings for unused or unassigned fields and events:
     
    6566        public WorkspaceManager()
    6667        {
     68            this.SelectedPluginsList = new ObservableCollection<PluginContainerView>();           
    6769            Properties.Settings.Default.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(Default_PropertyChanged);
    6870            Settings = new WorkspaceManagerSettings(this);
    6971            WorkspaceModel = new WorkspaceModel();
    70             WorkspaceModel.WorkspaceManagerEditor = this;
    71             UndoRedoManager = new UndoRedoManager();
     72            WorkspaceModel.MyEditor = this;
    7273            WorkspaceSpaceEditorView = new WorkSpaceEditorView(WorkspaceModel);
    7374            HasChanges = false;           
     
    9091        private volatile bool executing = false;
    9192        private volatile bool stopping = false;
    92         private UndoRedoManager UndoRedoManager = null;
    9393
    9494        #endregion
     
    134134        public void New()
    135135        {
    136             foreach (PluginModel pluginModel in new List<PluginModel>(WorkspaceModel.AllPluginModels))
    137             {
    138                 WorkspaceModel.deletePluginModel(pluginModel);
    139             }
     136            //foreach (PluginModel pluginModel in new List<PluginModel>(WorkspaceModel.GetAllPluginModels()))
     137            //{
     138            //    WorkspaceModel.deletePluginModel(pluginModel);
     139            //}
    140140            this.HasChanges = false;
    141141            CurrentFilename = "unnamed project";
     
    144144                this.OnProjectTitleChanged.BeginInvoke(this, "unnamed project", null, null);
    145145            }
    146             UndoRedoManager.ClearStacks();
    147             WorkspaceModel.UndoRedoManager = UndoRedoManager;
     146            WorkspaceModel.UndoRedoManager.ClearStacks();
    148147            WorkspaceModel.UpdateableView = this.WorkspaceSpaceEditorView;
     148            WorkspaceModel.MyEditor = this;
     149            this.SelectedPluginsList.Clear();
    149150        }
    150151
     
    160161                WorkspaceModel = model;
    161162                WorkspaceSpaceEditorView.Load(WorkspaceModel);
    162                 WorkspaceModel.UndoRedoManager = UndoRedoManager;
    163163                WorkspaceModel.UpdateableView = this.WorkspaceSpaceEditorView;
     164                WorkspaceModel.MyEditor = this;
     165                WorkspaceModel.UndoRedoManager.ClearStacks();
    164166            }
    165167            catch (Exception ex)
     
    180182                New();
    181183                GuiLogMessage("Loading Model: " + fileName, NotificationLevel.Info);               
    182                 WorkspaceModel = ModelPersistance.loadModel(fileName,this);               
     184                WorkspaceModel = ModelPersistance.loadModel(fileName);               
    183185                WorkspaceSpaceEditorView.Load(WorkspaceModel);
    184                 WorkspaceModel.UndoRedoManager = UndoRedoManager;
    185186                WorkspaceModel.UpdateableView = this.WorkspaceSpaceEditorView;
    186187                HasChanges = false;
    187188                this.OnProjectTitleChanged.BeginInvoke(this, System.IO.Path.GetFileName(fileName), null, null);
    188189                CurrentFilename = fileName;
     190                WorkspaceModel.MyEditor = this;
     191                WorkspaceModel.UndoRedoManager.ClearStacks();
    189192            }
    190193            catch (Exception ex)
     
    254257        public void Undo()
    255258        {
    256             if (UndoRedoManager != null)
     259            if (WorkspaceModel.UndoRedoManager != null)
    257260            {
    258261                try
    259262                {
    260                     UndoRedoManager.Undo();
     263                    WorkspaceModel.UndoRedoManager.Undo();
    261264                }
    262265                catch (Exception ex)
     
    272275        public void Redo()
    273276        {
    274             if (UndoRedoManager != null)
     277            if (WorkspaceModel.UndoRedoManager != null)
    275278            {
    276279                try
    277280                {
    278                     UndoRedoManager.Redo();
     281                    WorkspaceModel.UndoRedoManager.Redo();
    279282                }
    280283                catch (Exception ex)
     
    396399            get
    397400            {
    398                 if (UndoRedoManager != null)
    399                 {
    400                     return !this.isExecuting() && UndoRedoManager.CanUndo();
     401                if (WorkspaceModel.UndoRedoManager != null)
     402                {
     403                    return !this.isExecuting() && WorkspaceModel.UndoRedoManager.CanUndo();
    401404                }
    402405                else
     
    414417            get
    415418            {
    416                 if (UndoRedoManager != null)
    417                 {
    418                     return !this.isExecuting() && UndoRedoManager.CanRedo();
     419                if (WorkspaceModel.UndoRedoManager != null)
     420                {
     421                    return !this.isExecuting() && WorkspaceModel.UndoRedoManager.CanRedo();
    419422                }
    420423                else
     
    576579
    577580                this.ExecutionEngine = new ExecutionEngine(this);
     581                this.ExecutionEngine.OnGuiLogNotificationOccured += this.GuiLogNotificationOccured;
    578582
    579583                try
     
    788792            if (args.NotificationLevel == NotificationLevel.Warning)
    789793            {               
    790                 foreach (PluginModel pluginModel in this.WorkspaceModel.AllPluginModels)
     794                foreach (PluginModel pluginModel in this.WorkspaceModel.GetAllPluginModels())
    791795                {
    792796                    if (pluginModel.Plugin == sender)
     
    800804            if (args.NotificationLevel == NotificationLevel.Error)
    801805            {               
    802                 foreach (PluginModel pluginModel in this.WorkspaceModel.AllPluginModels)
     806                foreach (PluginModel pluginModel in this.WorkspaceModel.GetAllPluginModels())
    803807                {
    804808                    if (pluginModel.Plugin == sender)
     
    871875        public void Active()
    872876        {
    873             var b = true;
    874877        }
    875878
     
    903906        }
    904907
    905        
     908        private ObservableCollection<PluginContainerView> selectedPluginsList;
     909
     910        /// <summary>
     911        /// Selected Collection of Plugin's
     912        /// </summary>
     913        public ObservableCollection<PluginContainerView> SelectedPluginsList
     914        {
     915            get
     916            {
     917                return selectedPluginsList;
     918            }
     919            set
     920            {
     921                selectedPluginsList = value;
     922            }
     923        }
    906924
    907925        public event EventHandler<ZoomChanged> OnZoomChanged;
     926        public bool IsCtrlToggled = false;
     927        public EditorState State { get; set; }
    908928    }
    909929}
  • trunk/CrypPlugins/WorkspaceManager/WorkspaceManager.csproj

    r2632 r2803  
    6161  </ItemGroup>
    6262  <ItemGroup>
    63     <Compile Include="Model\Elements\ImageModel.cs" />
    64     <Compile Include="Model\Elements\TextModel.cs" />
    65     <Compile Include="Execution\ExecutionEngine.cs" />
    66     <Compile Include="Model\Tools\ColorHelper.cs" />
    67     <Compile Include="Model\Elements\ConnectionModel.cs" />
    68     <Compile Include="Model\Elements\ConnectorModel.cs" />
    69     <Compile Include="Model\Tools\ModelPersistance.cs" />
    70     <Compile Include="Model\Elements\PluginModel.cs" />
    71     <Compile Include="Model\Elements\VisualElementModel.cs" />
    72     <Compile Include="Model\Elements\WorkspaceModel.cs" />
    73     <Compile Include="Model\Tools\UndoRedoManager.cs" />
    74     <Compile Include="Model\Tools\XMLSerialization.cs" />
    7563    <Compile Include="Properties\AssemblyInfo.cs" />
    7664    <Compile Include="Properties\Resources.de-DE.Designer.cs">
     
    131119    <Compile Include="View\Interface\IConnection.cs" />
    132120    <Compile Include="View\Interface\IDraggable.cs" />
    133     <Compile Include="View\Interface\IUpdateableView.cs" />
    134121    <Compile Include="View\VisualComponents\CircularProgressBar.xaml.cs">
    135122      <DependentUpon>CircularProgressBar.xaml</DependentUpon>
     
    211198      <Name>CrypPluginBase</Name>
    212199      <Private>False</Private>
     200    </ProjectReference>
     201    <ProjectReference Include="..\..\WorkspaceManagerModel\WorkspaceManagerModel.csproj">
     202      <Project>{C35A6E71-D6FE-478B-A12D-FAD54FC4EDC9}</Project>
     203      <Name>WorkspaceManagerModel</Name>
    213204    </ProjectReference>
    214205  </ItemGroup>
  • trunk/CrypTool 2.0.sln

    r2673 r2803  
    257257Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SolitaireAnalyser", "CrypPlugins\SolitaireAnalyser\SolitaireAnalyser.csproj", "{AEB6BEFA-DC4B-4774-A36F-52A9DFBFE3AA}"
    258258EndProject
     259Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorkspaceManagerModel", "WorkspaceManagerModel\WorkspaceManagerModel.csproj", "{C35A6E71-D6FE-478B-A12D-FAD54FC4EDC9}"
     260EndProject
    259261Global
    260262        GlobalSection(SolutionConfigurationPlatforms) = preSolution
     263                Debug|Any CPU = Debug|Any CPU
    261264                Debug|x86 = Debug|x86
     265                Release|Any CPU = Release|Any CPU
    262266                Release|x86 = Release|x86
    263267        EndGlobalSection
    264268        GlobalSection(ProjectConfigurationPlatforms) = postSolution
     269                {347B5433-A40E-4ACC-AD6B-A245509AB42E}.Debug|Any CPU.ActiveCfg = Debug|x86
    265270                {347B5433-A40E-4ACC-AD6B-A245509AB42E}.Debug|x86.ActiveCfg = Debug|x86
    266271                {347B5433-A40E-4ACC-AD6B-A245509AB42E}.Debug|x86.Build.0 = Debug|x86
     272                {347B5433-A40E-4ACC-AD6B-A245509AB42E}.Release|Any CPU.ActiveCfg = Release|x86
    267273                {347B5433-A40E-4ACC-AD6B-A245509AB42E}.Release|x86.ActiveCfg = Release|x86
    268274                {347B5433-A40E-4ACC-AD6B-A245509AB42E}.Release|x86.Build.0 = Release|x86
     275                {25DB2B47-A457-4EC2-960B-395CE07AE093}.Debug|Any CPU.ActiveCfg = Debug|x86
    269276                {25DB2B47-A457-4EC2-960B-395CE07AE093}.Debug|x86.ActiveCfg = Debug|x86
    270277                {25DB2B47-A457-4EC2-960B-395CE07AE093}.Debug|x86.Build.0 = Debug|x86
     278                {25DB2B47-A457-4EC2-960B-395CE07AE093}.Release|Any CPU.ActiveCfg = Release|x86
    271279                {25DB2B47-A457-4EC2-960B-395CE07AE093}.Release|x86.ActiveCfg = Release|x86
    272280                {25DB2B47-A457-4EC2-960B-395CE07AE093}.Release|x86.Build.0 = Release|x86
     281                {FF5D473C-0716-4D3E-9078-2EBD979F94C6}.Debug|Any CPU.ActiveCfg = Debug|x86
    273282                {FF5D473C-0716-4D3E-9078-2EBD979F94C6}.Debug|x86.ActiveCfg = Debug|x86
    274283                {FF5D473C-0716-4D3E-9078-2EBD979F94C6}.Debug|x86.Build.0 = Debug|x86
     284                {FF5D473C-0716-4D3E-9078-2EBD979F94C6}.Release|Any CPU.ActiveCfg = Release|x86
    275285                {FF5D473C-0716-4D3E-9078-2EBD979F94C6}.Release|x86.ActiveCfg = Release|x86
    276286                {FF5D473C-0716-4D3E-9078-2EBD979F94C6}.Release|x86.Build.0 = Release|x86
     287                {475E8850-4D82-4C5E-AD19-5FDA82BC7576}.Debug|Any CPU.ActiveCfg = Debug|x86
    277288                {475E8850-4D82-4C5E-AD19-5FDA82BC7576}.Debug|x86.ActiveCfg = Debug|x86
    278289                {475E8850-4D82-4C5E-AD19-5FDA82BC7576}.Debug|x86.Build.0 = Debug|x86
     290                {475E8850-4D82-4C5E-AD19-5FDA82BC7576}.Release|Any CPU.ActiveCfg = Release|x86
    279291                {475E8850-4D82-4C5E-AD19-5FDA82BC7576}.Release|x86.ActiveCfg = Release|x86
    280292                {475E8850-4D82-4C5E-AD19-5FDA82BC7576}.Release|x86.Build.0 = Release|x86
     293                {AFBEAA94-3998-4C4A-805F-670ECF12029E}.Debug|Any CPU.ActiveCfg = Debug|x86
    281294                {AFBEAA94-3998-4C4A-805F-670ECF12029E}.Debug|x86.ActiveCfg = Debug|x86
    282295                {AFBEAA94-3998-4C4A-805F-670ECF12029E}.Debug|x86.Build.0 = Debug|x86
     296                {AFBEAA94-3998-4C4A-805F-670ECF12029E}.Release|Any CPU.ActiveCfg = Release|x86
    283297                {AFBEAA94-3998-4C4A-805F-670ECF12029E}.Release|x86.ActiveCfg = Release|x86
    284298                {AFBEAA94-3998-4C4A-805F-670ECF12029E}.Release|x86.Build.0 = Release|x86
     299                {C867D829-43FC-429D-A68D-B969D627CE3C}.Debug|Any CPU.ActiveCfg = Debug|x86
    285300                {C867D829-43FC-429D-A68D-B969D627CE3C}.Debug|x86.ActiveCfg = Debug|x86
    286301                {C867D829-43FC-429D-A68D-B969D627CE3C}.Debug|x86.Build.0 = Debug|x86
     302                {C867D829-43FC-429D-A68D-B969D627CE3C}.Release|Any CPU.ActiveCfg = Release|x86
    287303                {C867D829-43FC-429D-A68D-B969D627CE3C}.Release|x86.ActiveCfg = Release|x86
    288304                {C867D829-43FC-429D-A68D-B969D627CE3C}.Release|x86.Build.0 = Release|x86
     305                {A5529873-06EA-4E38-8B99-5ABD84B20446}.Debug|Any CPU.ActiveCfg = Debug|x86
    289306                {A5529873-06EA-4E38-8B99-5ABD84B20446}.Debug|x86.ActiveCfg = Debug|x86
    290307                {A5529873-06EA-4E38-8B99-5ABD84B20446}.Debug|x86.Build.0 = Debug|x86
     308                {A5529873-06EA-4E38-8B99-5ABD84B20446}.Release|Any CPU.ActiveCfg = Release|x86
    291309                {A5529873-06EA-4E38-8B99-5ABD84B20446}.Release|x86.ActiveCfg = Release|x86
    292310                {A5529873-06EA-4E38-8B99-5ABD84B20446}.Release|x86.Build.0 = Release|x86
     311                {571529E4-A474-47BD-810E-0C8434A76711}.Debug|Any CPU.ActiveCfg = Debug|x86
    293312                {571529E4-A474-47BD-810E-0C8434A76711}.Debug|x86.ActiveCfg = Debug|x86
    294313                {571529E4-A474-47BD-810E-0C8434A76711}.Debug|x86.Build.0 = Debug|x86
     314                {571529E4-A474-47BD-810E-0C8434A76711}.Release|Any CPU.ActiveCfg = Release|x86
    295315                {571529E4-A474-47BD-810E-0C8434A76711}.Release|x86.ActiveCfg = Release|x86
    296316                {571529E4-A474-47BD-810E-0C8434A76711}.Release|x86.Build.0 = Release|x86
     317                {2A81A3B2-ABC0-4850-9C89-3830AD07FD6B}.Debug|Any CPU.ActiveCfg = Debug|x86
    297318                {2A81A3B2-ABC0-4850-9C89-3830AD07FD6B}.Debug|x86.ActiveCfg = Debug|x86
    298319                {2A81A3B2-ABC0-4850-9C89-3830AD07FD6B}.Debug|x86.Build.0 = Debug|x86
     320                {2A81A3B2-ABC0-4850-9C89-3830AD07FD6B}.Release|Any CPU.ActiveCfg = Release|x86
    299321                {2A81A3B2-ABC0-4850-9C89-3830AD07FD6B}.Release|x86.ActiveCfg = Release|x86
    300322                {2A81A3B2-ABC0-4850-9C89-3830AD07FD6B}.Release|x86.Build.0 = Release|x86
     323                {1137719A-7468-4DEF-84B1-77AB82049656}.Debug|Any CPU.ActiveCfg = Debug|x86
    301324                {1137719A-7468-4DEF-84B1-77AB82049656}.Debug|x86.ActiveCfg = Debug|x86
    302325                {1137719A-7468-4DEF-84B1-77AB82049656}.Debug|x86.Build.0 = Debug|x86
     326                {1137719A-7468-4DEF-84B1-77AB82049656}.Release|Any CPU.ActiveCfg = Release|x86
    303327                {1137719A-7468-4DEF-84B1-77AB82049656}.Release|x86.ActiveCfg = Release|x86
    304328                {1137719A-7468-4DEF-84B1-77AB82049656}.Release|x86.Build.0 = Release|x86
     329                {443FE8F7-03CC-4D37-BC7C-8E212C68A89E}.Debug|Any CPU.ActiveCfg = Debug|x86
    305330                {443FE8F7-03CC-4D37-BC7C-8E212C68A89E}.Debug|x86.ActiveCfg = Debug|x86
    306331                {443FE8F7-03CC-4D37-BC7C-8E212C68A89E}.Debug|x86.Build.0 = Debug|x86
     332                {443FE8F7-03CC-4D37-BC7C-8E212C68A89E}.Release|Any CPU.ActiveCfg = Release|x86
    307333                {443FE8F7-03CC-4D37-BC7C-8E212C68A89E}.Release|x86.ActiveCfg = Release|x86
    308334                {443FE8F7-03CC-4D37-BC7C-8E212C68A89E}.Release|x86.Build.0 = Release|x86
     335                {4019990F-8D4E-4981-937C-6780D4395241}.Debug|Any CPU.ActiveCfg = Debug|x86
    309336                {4019990F-8D4E-4981-937C-6780D4395241}.Debug|x86.ActiveCfg = Debug|x86
    310337                {4019990F-8D4E-4981-937C-6780D4395241}.Debug|x86.Build.0 = Debug|x86
     338                {4019990F-8D4E-4981-937C-6780D4395241}.Release|Any CPU.ActiveCfg = Release|x86
    311339                {4019990F-8D4E-4981-937C-6780D4395241}.Release|x86.ActiveCfg = Release|x86
    312340                {4019990F-8D4E-4981-937C-6780D4395241}.Release|x86.Build.0 = Release|x86
     341                {77EE0460-29E8-4227-A874-DECA9985BC64}.Debug|Any CPU.ActiveCfg = Debug|x86
    313342                {77EE0460-29E8-4227-A874-DECA9985BC64}.Debug|x86.ActiveCfg = Debug|x86
    314343                {77EE0460-29E8-4227-A874-DECA9985BC64}.Debug|x86.Build.0 = Debug|x86
     344                {77EE0460-29E8-4227-A874-DECA9985BC64}.Release|Any CPU.ActiveCfg = Release|x86
    315345                {77EE0460-29E8-4227-A874-DECA9985BC64}.Release|x86.ActiveCfg = Release|x86
    316346                {77EE0460-29E8-4227-A874-DECA9985BC64}.Release|x86.Build.0 = Release|x86
     347                {D0693215-9A47-414B-BD99-1BE37C42EABB}.Debug|Any CPU.ActiveCfg = Debug|x86
    317348                {D0693215-9A47-414B-BD99-1BE37C42EABB}.Debug|x86.ActiveCfg = Debug|x86
    318349                {D0693215-9A47-414B-BD99-1BE37C42EABB}.Debug|x86.Build.0 = Debug|x86
     350                {D0693215-9A47-414B-BD99-1BE37C42EABB}.Release|Any CPU.ActiveCfg = Release|x86
    319351                {D0693215-9A47-414B-BD99-1BE37C42EABB}.Release|x86.ActiveCfg = Release|x86
    320352                {D0693215-9A47-414B-BD99-1BE37C42EABB}.Release|x86.Build.0 = Release|x86
     353                {9EA9DD0F-D50D-49CB-BA86-10EF2FD7512A}.Debug|Any CPU.ActiveCfg = Debug|x86
    321354                {9EA9DD0F-D50D-49CB-BA86-10EF2FD7512A}.Debug|x86.ActiveCfg = Debug|x86
    322355                {9EA9DD0F-D50D-49CB-BA86-10EF2FD7512A}.Debug|x86.Build.0 = Debug|x86
     356                {9EA9DD0F-D50D-49CB-BA86-10EF2FD7512A}.Release|Any CPU.ActiveCfg = Release|x86
    323357                {9EA9DD0F-D50D-49CB-BA86-10EF2FD7512A}.Release|x86.ActiveCfg = Release|x86
    324358                {9EA9DD0F-D50D-49CB-BA86-10EF2FD7512A}.Release|x86.Build.0 = Release|x86
     359                {BBDE8372-1DF7-45B4-A2AB-EA47FF52376D}.Debug|Any CPU.ActiveCfg = Debug|x86
    325360                {BBDE8372-1DF7-45B4-A2AB-EA47FF52376D}.Debug|x86.ActiveCfg = Debug|x86
    326361                {BBDE8372-1DF7-45B4-A2AB-EA47FF52376D}.Debug|x86.Build.0 = Debug|x86
     362                {BBDE8372-1DF7-45B4-A2AB-EA47FF52376D}.Release|Any CPU.ActiveCfg = Release|x86
    327363                {BBDE8372-1DF7-45B4-A2AB-EA47FF52376D}.Release|x86.ActiveCfg = Release|x86
    328364                {BBDE8372-1DF7-45B4-A2AB-EA47FF52376D}.Release|x86.Build.0 = Release|x86
     365                {55E20598-2415-474B-BDD7-4BE042C0CCA8}.Debug|Any CPU.ActiveCfg = Debug|x86
    329366                {55E20598-2415-474B-BDD7-4BE042C0CCA8}.Debug|x86.ActiveCfg = Debug|x86
    330367                {55E20598-2415-474B-BDD7-4BE042C0CCA8}.Debug|x86.Build.0 = Debug|x86
     368                {55E20598-2415-474B-BDD7-4BE042C0CCA8}.Release|Any CPU.ActiveCfg = Release|x86
    331369                {55E20598-2415-474B-BDD7-4BE042C0CCA8}.Release|x86.ActiveCfg = Release|x86
    332370                {55E20598-2415-474B-BDD7-4BE042C0CCA8}.Release|x86.Build.0 = Release|x86
     371                {3AA1DE4E-A8E8-4858-A833-D7F4B771DD8F}.Debug|Any CPU.ActiveCfg = Debug|x86
    333372                {3AA1DE4E-A8E8-4858-A833-D7F4B771DD8F}.Debug|x86.ActiveCfg = Debug|x86
    334373                {3AA1DE4E-A8E8-4858-A833-D7F4B771DD8F}.Debug|x86.Build.0 = Debug|x86
     374                {3AA1DE4E-A8E8-4858-A833-D7F4B771DD8F}.Release|Any CPU.ActiveCfg = Release|x86
    335375                {3AA1DE4E-A8E8-4858-A833-D7F4B771DD8F}.Release|x86.ActiveCfg = Release|x86
    336376                {3AA1DE4E-A8E8-4858-A833-D7F4B771DD8F}.Release|x86.Build.0 = Release|x86
     377                {C5325D3D-C78B-4294-8CF6-B29E3B64C5F9}.Debug|Any CPU.ActiveCfg = Debug|x86
    337378                {C5325D3D-C78B-4294-8CF6-B29E3B64C5F9}.Debug|x86.ActiveCfg = Debug|x86
    338379                {C5325D3D-C78B-4294-8CF6-B29E3B64C5F9}.Debug|x86.Build.0 = Debug|x86
     380                {C5325D3D-C78B-4294-8CF6-B29E3B64C5F9}.Release|Any CPU.ActiveCfg = Release|x86
    339381                {C5325D3D-C78B-4294-8CF6-B29E3B64C5F9}.Release|x86.ActiveCfg = Release|x86
    340382                {C5325D3D-C78B-4294-8CF6-B29E3B64C5F9}.Release|x86.Build.0 = Release|x86
     383                {24E7548E-C0B7-49AD-9A23-C1331B893E96}.Debug|Any CPU.ActiveCfg = Debug|x86
    341384                {24E7548E-C0B7-49AD-9A23-C1331B893E96}.Debug|x86.ActiveCfg = Debug|x86
    342385                {24E7548E-C0B7-49AD-9A23-C1331B893E96}.Debug|x86.Build.0 = Debug|x86
     386                {24E7548E-C0B7-49AD-9A23-C1331B893E96}.Release|Any CPU.ActiveCfg = Release|x86
    343387                {24E7548E-C0B7-49AD-9A23-C1331B893E96}.Release|x86.ActiveCfg = Release|x86
    344388                {24E7548E-C0B7-49AD-9A23-C1331B893E96}.Release|x86.Build.0 = Release|x86
     389                {C7C03D54-9D6D-458E-B538-19F4CD31841E}.Debug|Any CPU.ActiveCfg = Debug|x86
    345390                {C7C03D54-9D6D-458E-B538-19F4CD31841E}.Debug|x86.ActiveCfg = Debug|x86
    346391                {C7C03D54-9D6D-458E-B538-19F4CD31841E}.Debug|x86.Build.0 = Debug|x86
     392                {C7C03D54-9D6D-458E-B538-19F4CD31841E}.Release|Any CPU.ActiveCfg = Release|x86
    347393                {C7C03D54-9D6D-458E-B538-19F4CD31841E}.Release|x86.ActiveCfg = Release|x86
    348394                {C7C03D54-9D6D-458E-B538-19F4CD31841E}.Release|x86.Build.0 = Release|x86
     395                {2BBA5775-A0F2-4846-BC88-46BE3B0F38B1}.Debug|Any CPU.ActiveCfg = Debug|x86
    349396                {2BBA5775-A0F2-4846-BC88-46BE3B0F38B1}.Debug|x86.ActiveCfg = Debug|x86
    350397                {2BBA5775-A0F2-4846-BC88-46BE3B0F38B1}.Debug|x86.Build.0 = Debug|x86
     398                {2BBA5775-A0F2-4846-BC88-46BE3B0F38B1}.Release|Any CPU.ActiveCfg = Release|x86
    351399                {2BBA5775-A0F2-4846-BC88-46BE3B0F38B1}.Release|x86.ActiveCfg = Release|x86
    352400                {2BBA5775-A0F2-4846-BC88-46BE3B0F38B1}.Release|x86.Build.0 = Release|x86
     401                {CFD7EBCC-F00B-40E5-A1B7-504337953B89}.Debug|Any CPU.ActiveCfg = Debug|x86
    353402                {CFD7EBCC-F00B-40E5-A1B7-504337953B89}.Debug|x86.ActiveCfg = Debug|x86
    354403                {CFD7EBCC-F00B-40E5-A1B7-504337953B89}.Debug|x86.Build.0 = Debug|x86
     404                {CFD7EBCC-F00B-40E5-A1B7-504337953B89}.Release|Any CPU.ActiveCfg = Release|x86
    355405                {CFD7EBCC-F00B-40E5-A1B7-504337953B89}.Release|x86.ActiveCfg = Release|x86
    356406                {CFD7EBCC-F00B-40E5-A1B7-504337953B89}.Release|x86.Build.0 = Release|x86
     407                {AB072143-0ECF-403C-BB69-E7AEEC4528F9}.Debug|Any CPU.ActiveCfg = Debug|x86
    357408                {AB072143-0ECF-403C-BB69-E7AEEC4528F9}.Debug|x86.ActiveCfg = Debug|x86
    358409                {AB072143-0ECF-403C-BB69-E7AEEC4528F9}.Debug|x86.Build.0 = Debug|x86
     410                {AB072143-0ECF-403C-BB69-E7AEEC4528F9}.Release|Any CPU.ActiveCfg = Release|x86
    359411                {AB072143-0ECF-403C-BB69-E7AEEC4528F9}.Release|x86.ActiveCfg = Release|x86
    360412                {AB072143-0ECF-403C-BB69-E7AEEC4528F9}.Release|x86.Build.0 = Release|x86
     413                {75795A85-9C0D-4E83-9D75-E940117CDF20}.Debug|Any CPU.ActiveCfg = Debug|x86
    361414                {75795A85-9C0D-4E83-9D75-E940117CDF20}.Debug|x86.ActiveCfg = Debug|x86
    362415                {75795A85-9C0D-4E83-9D75-E940117CDF20}.Debug|x86.Build.0 = Debug|x86
     416                {75795A85-9C0D-4E83-9D75-E940117CDF20}.Release|Any CPU.ActiveCfg = Release|x86
    363417                {75795A85-9C0D-4E83-9D75-E940117CDF20}.Release|x86.ActiveCfg = Release|x86
    364418                {75795A85-9C0D-4E83-9D75-E940117CDF20}.Release|x86.Build.0 = Release|x86
     419                {84E0B32B-70EE-4033-A2B8-2F0B41043D3D}.Debug|Any CPU.ActiveCfg = Debug|x86
    365420                {84E0B32B-70EE-4033-A2B8-2F0B41043D3D}.Debug|x86.ActiveCfg = Debug|x86
    366421                {84E0B32B-70EE-4033-A2B8-2F0B41043D3D}.Debug|x86.Build.0 = Debug|x86
     422                {84E0B32B-70EE-4033-A2B8-2F0B41043D3D}.Release|Any CPU.ActiveCfg = Release|x86
    367423                {84E0B32B-70EE-4033-A2B8-2F0B41043D3D}.Release|x86.ActiveCfg = Release|x86
    368424                {84E0B32B-70EE-4033-A2B8-2F0B41043D3D}.Release|x86.Build.0 = Release|x86
     425                {5DA3E5DB-62B9-4621-AA69-56512BDECE7B}.Debug|Any CPU.ActiveCfg = Debug|x86
    369426                {5DA3E5DB-62B9-4621-AA69-56512BDECE7B}.Debug|x86.ActiveCfg = Debug|x86
    370427                {5DA3E5DB-62B9-4621-AA69-56512BDECE7B}.Debug|x86.Build.0 = Debug|x86
     428                {5DA3E5DB-62B9-4621-AA69-56512BDECE7B}.Release|Any CPU.ActiveCfg = Release|x86
    371429                {5DA3E5DB-62B9-4621-AA69-56512BDECE7B}.Release|x86.ActiveCfg = Release|x86
    372430                {5DA3E5DB-62B9-4621-AA69-56512BDECE7B}.Release|x86.Build.0 = Release|x86
     431                {3A4251D0-DAB0-4A1C-94A4-75BC2C2A5DEE}.Debug|Any CPU.ActiveCfg = Debug|x86
    373432                {3A4251D0-DAB0-4A1C-94A4-75BC2C2A5DEE}.Debug|x86.ActiveCfg = Debug|x86
    374433                {3A4251D0-DAB0-4A1C-94A4-75BC2C2A5DEE}.Debug|x86.Build.0 = Debug|x86
     434                {3A4251D0-DAB0-4A1C-94A4-75BC2C2A5DEE}.Release|Any CPU.ActiveCfg = Release|x86
    375435                {3A4251D0-DAB0-4A1C-94A4-75BC2C2A5DEE}.Release|x86.ActiveCfg = Release|x86
    376436                {3A4251D0-DAB0-4A1C-94A4-75BC2C2A5DEE}.Release|x86.Build.0 = Release|x86
     437                {A2AFDF98-2007-4B2B-A768-DCD6A03B6FEA}.Debug|Any CPU.ActiveCfg = Debug|x86
    377438                {A2AFDF98-2007-4B2B-A768-DCD6A03B6FEA}.Debug|x86.ActiveCfg = Debug|x86
    378439                {A2AFDF98-2007-4B2B-A768-DCD6A03B6FEA}.Debug|x86.Build.0 = Debug|x86
     440                {A2AFDF98-2007-4B2B-A768-DCD6A03B6FEA}.Release|Any CPU.ActiveCfg = Release|x86
    379441                {A2AFDF98-2007-4B2B-A768-DCD6A03B6FEA}.Release|x86.ActiveCfg = Release|x86
    380442                {A2AFDF98-2007-4B2B-A768-DCD6A03B6FEA}.Release|x86.Build.0 = Release|x86
     443                {71F1475B-53C4-4188-A01D-30DA4F63B77F}.Debug|Any CPU.ActiveCfg = Debug|x86
    381444                {71F1475B-53C4-4188-A01D-30DA4F63B77F}.Debug|x86.ActiveCfg = Debug|x86
    382445                {71F1475B-53C4-4188-A01D-30DA4F63B77F}.Debug|x86.Build.0 = Debug|x86
     446                {71F1475B-53C4-4188-A01D-30DA4F63B77F}.Release|Any CPU.ActiveCfg = Release|x86
    383447                {71F1475B-53C4-4188-A01D-30DA4F63B77F}.Release|x86.ActiveCfg = Release|x86
    384448                {71F1475B-53C4-4188-A01D-30DA4F63B77F}.Release|x86.Build.0 = Release|x86
     449                {9B9CD0E9-D048-45FD-BF0F-7C5A8E714AA2}.Debug|Any CPU.ActiveCfg = Debug|x86
    385450                {9B9CD0E9-D048-45FD-BF0F-7C5A8E714AA2}.Debug|x86.ActiveCfg = Debug|x86
    386451                {9B9CD0E9-D048-45FD-BF0F-7C5A8E714AA2}.Debug|x86.Build.0 = Debug|x86
     452                {9B9CD0E9-D048-45FD-BF0F-7C5A8E714AA2}.Release|Any CPU.ActiveCfg = Release|x86
    387453                {9B9CD0E9-D048-45FD-BF0F-7C5A8E714AA2}.Release|x86.ActiveCfg = Release|x86
    388454                {9B9CD0E9-D048-45FD-BF0F-7C5A8E714AA2}.Release|x86.Build.0 = Release|x86
     455                {C2DE271E-BAC1-48A8-9D06-432F4978DC94}.Debug|Any CPU.ActiveCfg = Debug|x86
    389456                {C2DE271E-BAC1-48A8-9D06-432F4978DC94}.Debug|x86.ActiveCfg = Debug|x86
    390457                {C2DE271E-BAC1-48A8-9D06-432F4978DC94}.Debug|x86.Build.0 = Debug|x86
     458                {C2DE271E-BAC1-48A8-9D06-432F4978DC94}.Release|Any CPU.ActiveCfg = Release|x86
    391459                {C2DE271E-BAC1-48A8-9D06-432F4978DC94}.Release|x86.ActiveCfg = Release|x86
    392460                {C2DE271E-BAC1-48A8-9D06-432F4978DC94}.Release|x86.Build.0 = Release|x86
     461                {EEEC04B8-BDD4-4F56-8B7B-4753BB270D11}.Debug|Any CPU.ActiveCfg = Debug|x86
    393462                {EEEC04B8-BDD4-4F56-8B7B-4753BB270D11}.Debug|x86.ActiveCfg = Debug|x86
    394463                {EEEC04B8-BDD4-4F56-8B7B-4753BB270D11}.Debug|x86.Build.0 = Debug|x86
     464                {EEEC04B8-BDD4-4F56-8B7B-4753BB270D11}.Release|Any CPU.ActiveCfg = Release|x86
    395465                {EEEC04B8-BDD4-4F56-8B7B-4753BB270D11}.Release|x86.ActiveCfg = Release|x86
    396466                {EEEC04B8-BDD4-4F56-8B7B-4753BB270D11}.Release|x86.Build.0 = Release|x86
     467                {6F44863A-B9EE-4371-90BD-7FDF849DD2C4}.Debug|Any CPU.ActiveCfg = Debug|x86
    397468                {6F44863A-B9EE-4371-90BD-7FDF849DD2C4}.Debug|x86.ActiveCfg = Debug|x86
    398469                {6F44863A-B9EE-4371-90BD-7FDF849DD2C4}.Debug|x86.Build.0 = Debug|x86
     470                {6F44863A-B9EE-4371-90BD-7FDF849DD2C4}.Release|Any CPU.ActiveCfg = Release|x86
    399471                {6F44863A-B9EE-4371-90BD-7FDF849DD2C4}.Release|x86.ActiveCfg = Release|x86
    400472                {6F44863A-B9EE-4371-90BD-7FDF849DD2C4}.Release|x86.Build.0 = Release|x86
     473                {E3D15A1E-65D0-457A-9894-7F4E36369163}.Debug|Any CPU.ActiveCfg = Debug|x86
    401474                {E3D15A1E-65D0-457A-9894-7F4E36369163}.Debug|x86.ActiveCfg = Debug|x86
    402475                {E3D15A1E-65D0-457A-9894-7F4E36369163}.Debug|x86.Build.0 = Debug|x86
     476                {E3D15A1E-65D0-457A-9894-7F4E36369163}.Release|Any CPU.ActiveCfg = Release|x86
    403477                {E3D15A1E-65D0-457A-9894-7F4E36369163}.Release|x86.ActiveCfg = Release|x86
    404478                {E3D15A1E-65D0-457A-9894-7F4E36369163}.Release|x86.Build.0 = Release|x86
     479                {A2A7E7E6-05E6-46AD-B8AE-862D9DA78A1E}.Debug|Any CPU.ActiveCfg = Debug|x86
    405480                {A2A7E7E6-05E6-46AD-B8AE-862D9DA78A1E}.Debug|x86.ActiveCfg = Debug|x86
    406481                {A2A7E7E6-05E6-46AD-B8AE-862D9DA78A1E}.Debug|x86.Build.0 = Debug|x86
     482                {A2A7E7E6-05E6-46AD-B8AE-862D9DA78A1E}.Release|Any CPU.ActiveCfg = Release|x86
    407483                {A2A7E7E6-05E6-46AD-B8AE-862D9DA78A1E}.Release|x86.ActiveCfg = Release|x86
    408484                {A2A7E7E6-05E6-46AD-B8AE-862D9DA78A1E}.Release|x86.Build.0 = Release|x86
     485                {DCAD5E2F-BA8C-430A-9651-995E97FE460D}.Debug|Any CPU.ActiveCfg = Debug|x86
    409486                {DCAD5E2F-BA8C-430A-9651-995E97FE460D}.Debug|x86.ActiveCfg = Debug|x86
    410487                {DCAD5E2F-BA8C-430A-9651-995E97FE460D}.Debug|x86.Build.0 = Debug|x86
     488                {DCAD5E2F-BA8C-430A-9651-995E97FE460D}.Release|Any CPU.ActiveCfg = Release|x86
    411489                {DCAD5E2F-BA8C-430A-9651-995E97FE460D}.Release|x86.ActiveCfg = Release|x86
    412490                {DCAD5E2F-BA8C-430A-9651-995E97FE460D}.Release|x86.Build.0 = Release|x86
     491                {3C1DD11E-4A0C-4B53-9C42-8268A4DE5A0E}.Debug|Any CPU.ActiveCfg = Debug|x86
    413492                {3C1DD11E-4A0C-4B53-9C42-8268A4DE5A0E}.Debug|x86.ActiveCfg = Debug|x86
    414493                {3C1DD11E-4A0C-4B53-9C42-8268A4DE5A0E}.Debug|x86.Build.0 = Debug|x86
     494                {3C1DD11E-4A0C-4B53-9C42-8268A4DE5A0E}.Release|Any CPU.ActiveCfg = Release|x86
    415495                {3C1DD11E-4A0C-4B53-9C42-8268A4DE5A0E}.Release|x86.ActiveCfg = Release|x86
    416496                {3C1DD11E-4A0C-4B53-9C42-8268A4DE5A0E}.Release|x86.Build.0 = Release|x86
     497                {A91DE3E2-DF16-42E1-B164-7B02F4B2665F}.Debug|Any CPU.ActiveCfg = Debug|x86
    417498                {A91DE3E2-DF16-42E1-B164-7B02F4B2665F}.Debug|x86.ActiveCfg = Debug|x86
    418499                {A91DE3E2-DF16-42E1-B164-7B02F4B2665F}.Debug|x86.Build.0 = Debug|x86
     500                {A91DE3E2-DF16-42E1-B164-7B02F4B2665F}.Release|Any CPU.ActiveCfg = Release|x86
    419501                {A91DE3E2-DF16-42E1-B164-7B02F4B2665F}.Release|x86.ActiveCfg = Release|x86
    420502                {A91DE3E2-DF16-42E1-B164-7B02F4B2665F}.Release|x86.Build.0 = Release|x86
     503                {C9BDBD03-DA86-408F-81A0-548D279A1BD8}.Debug|Any CPU.ActiveCfg = Debug|x86
    421504                {C9BDBD03-DA86-408F-81A0-548D279A1BD8}.Debug|x86.ActiveCfg = Debug|x86
    422505                {C9BDBD03-DA86-408F-81A0-548D279A1BD8}.Debug|x86.Build.0 = Debug|x86
     506                {C9BDBD03-DA86-408F-81A0-548D279A1BD8}.Release|Any CPU.ActiveCfg = Release|x86
    423507                {C9BDBD03-DA86-408F-81A0-548D279A1BD8}.Release|x86.ActiveCfg = Release|x86
    424508                {C9BDBD03-DA86-408F-81A0-548D279A1BD8}.Release|x86.Build.0 = Release|x86
     509                {2830F337-A7A3-4A68-87AC-64F3AA79C70B}.Debug|Any CPU.ActiveCfg = Debug|x86
    425510                {2830F337-A7A3-4A68-87AC-64F3AA79C70B}.Debug|x86.ActiveCfg = Debug|x86
    426511                {2830F337-A7A3-4A68-87AC-64F3AA79C70B}.Debug|x86.Build.0 = Debug|x86
     512                {2830F337-A7A3-4A68-87AC-64F3AA79C70B}.Release|Any CPU.ActiveCfg = Release|x86
    427513                {2830F337-A7A3-4A68-87AC-64F3AA79C70B}.Release|x86.ActiveCfg = Release|x86
    428514                {2830F337-A7A3-4A68-87AC-64F3AA79C70B}.Release|x86.Build.0 = Release|x86
     515                {0798D3DB-9F45-4CA8-8592-23F063C45CB4}.Debug|Any CPU.ActiveCfg = Debug|x86
    429516                {0798D3DB-9F45-4CA8-8592-23F063C45CB4}.Debug|x86.ActiveCfg = Debug|x86
    430517                {0798D3DB-9F45-4CA8-8592-23F063C45CB4}.Debug|x86.Build.0 = Debug|x86
     518                {0798D3DB-9F45-4CA8-8592-23F063C45CB4}.Release|Any CPU.ActiveCfg = Release|x86
    431519                {0798D3DB-9F45-4CA8-8592-23F063C45CB4}.Release|x86.ActiveCfg = Release|x86
    432520                {0798D3DB-9F45-4CA8-8592-23F063C45CB4}.Release|x86.Build.0 = Release|x86
     521                {270EDC38-25CA-483E-A2EC-1CD158F81387}.Debug|Any CPU.ActiveCfg = Debug|x86
    433522                {270EDC38-25CA-483E-A2EC-1CD158F81387}.Debug|x86.ActiveCfg = Debug|x86
    434523                {270EDC38-25CA-483E-A2EC-1CD158F81387}.Debug|x86.Build.0 = Debug|x86
     524                {270EDC38-25CA-483E-A2EC-1CD158F81387}.Release|Any CPU.ActiveCfg = Release|x86
    435525                {270EDC38-25CA-483E-A2EC-1CD158F81387}.Release|x86.ActiveCfg = Release|x86
    436526                {270EDC38-25CA-483E-A2EC-1CD158F81387}.Release|x86.Build.0 = Release|x86
     527                {A42A026A-CE2F-421D-BE46-93E659485A9C}.Debug|Any CPU.ActiveCfg = Debug|x86
    437528                {A42A026A-CE2F-421D-BE46-93E659485A9C}.Debug|x86.ActiveCfg = Debug|x86
    438529                {A42A026A-CE2F-421D-BE46-93E659485A9C}.Debug|x86.Build.0 = Debug|x86
     530                {A42A026A-CE2F-421D-BE46-93E659485A9C}.Release|Any CPU.ActiveCfg = Release|x86
    439531                {A42A026A-CE2F-421D-BE46-93E659485A9C}.Release|x86.ActiveCfg = Release|x86
    440532                {A42A026A-CE2F-421D-BE46-93E659485A9C}.Release|x86.Build.0 = Release|x86
     533                {80200C92-77FC-4508-B520-D51530BE2608}.Debug|Any CPU.ActiveCfg = Debug|x86
    441534                {80200C92-77FC-4508-B520-D51530BE2608}.Debug|x86.ActiveCfg = Debug|x86
    442535                {80200C92-77FC-4508-B520-D51530BE2608}.Debug|x86.Build.0 = Debug|x86
     536                {80200C92-77FC-4508-B520-D51530BE2608}.Release|Any CPU.ActiveCfg = Release|x86
    443537                {80200C92-77FC-4508-B520-D51530BE2608}.Release|x86.ActiveCfg = Release|x86
    444538                {80200C92-77FC-4508-B520-D51530BE2608}.Release|x86.Build.0 = Release|x86
     539                {F4CCBE43-F19E-49A1-982E-B66919F5D701}.Debug|Any CPU.ActiveCfg = Debug|x86
    445540                {F4CCBE43-F19E-49A1-982E-B66919F5D701}.Debug|x86.ActiveCfg = Debug|x86
    446541                {F4CCBE43-F19E-49A1-982E-B66919F5D701}.Debug|x86.Build.0 = Debug|x86
     542                {F4CCBE43-F19E-49A1-982E-B66919F5D701}.Release|Any CPU.ActiveCfg = Release|x86
    447543                {F4CCBE43-F19E-49A1-982E-B66919F5D701}.Release|x86.ActiveCfg = Release|x86
    448544                {F4CCBE43-F19E-49A1-982E-B66919F5D701}.Release|x86.Build.0 = Release|x86
     545                {BBE9497C-4AE2-4493-A611-DEBB37DFBBC8}.Debug|Any CPU.ActiveCfg = Debug|x86
    449546                {BBE9497C-4AE2-4493-A611-DEBB37DFBBC8}.Debug|x86.ActiveCfg = Debug|x86
    450547                {BBE9497C-4AE2-4493-A611-DEBB37DFBBC8}.Debug|x86.Build.0 = Debug|x86
     548                {BBE9497C-4AE2-4493-A611-DEBB37DFBBC8}.Release|Any CPU.ActiveCfg = Release|x86
    451549                {BBE9497C-4AE2-4493-A611-DEBB37DFBBC8}.Release|x86.ActiveCfg = Release|x86
    452550                {BBE9497C-4AE2-4493-A611-DEBB37DFBBC8}.Release|x86.Build.0 = Release|x86
     551                {CA939946-8E20-40F0-946A-8C637B0BB593}.Debug|Any CPU.ActiveCfg = Debug|x86
    453552                {CA939946-8E20-40F0-946A-8C637B0BB593}.Debug|x86.ActiveCfg = Debug|x86
    454553                {CA939946-8E20-40F0-946A-8C637B0BB593}.Debug|x86.Build.0 = Debug|x86
     554                {CA939946-8E20-40F0-946A-8C637B0BB593}.Release|Any CPU.ActiveCfg = Release|x86
    455555                {CA939946-8E20-40F0-946A-8C637B0BB593}.Release|x86.ActiveCfg = Release|x86
    456556                {CA939946-8E20-40F0-946A-8C637B0BB593}.Release|x86.Build.0 = Release|x86
     557                {5A1D2545-AAC1-43BF-9632-517C58FC1781}.Debug|Any CPU.ActiveCfg = Debug|x86
    457558                {5A1D2545-AAC1-43BF-9632-517C58FC1781}.Debug|x86.ActiveCfg = Debug|x86
    458559                {5A1D2545-AAC1-43BF-9632-517C58FC1781}.Debug|x86.Build.0 = Debug|x86
     560                {5A1D2545-AAC1-43BF-9632-517C58FC1781}.Release|Any CPU.ActiveCfg = Release|x86
    459561                {5A1D2545-AAC1-43BF-9632-517C58FC1781}.Release|x86.ActiveCfg = Release|x86
    460562                {5A1D2545-AAC1-43BF-9632-517C58FC1781}.Release|x86.Build.0 = Release|x86
     563                {3A68ECB5-6074-4A8D-A6BD-2413C5A4B243}.Debug|Any CPU.ActiveCfg = Debug|x86
    461564                {3A68ECB5-6074-4A8D-A6BD-2413C5A4B243}.Debug|x86.ActiveCfg = Debug|x86
    462565                {3A68ECB5-6074-4A8D-A6BD-2413C5A4B243}.Debug|x86.Build.0 = Debug|x86
     566                {3A68ECB5-6074-4A8D-A6BD-2413C5A4B243}.Release|Any CPU.ActiveCfg = Release|x86
    463567                {3A68ECB5-6074-4A8D-A6BD-2413C5A4B243}.Release|x86.ActiveCfg = Release|x86
    464568                {3A68ECB5-6074-4A8D-A6BD-2413C5A4B243}.Release|x86.Build.0 = Release|x86
     569                {67C393B3-1FC5-4B3D-A42B-2455B5DF4C31}.Debug|Any CPU.ActiveCfg = Debug|x86
    465570                {67C393B3-1FC5-4B3D-A42B-2455B5DF4C31}.Debug|x86.ActiveCfg = Debug|x86
    466571                {67C393B3-1FC5-4B3D-A42B-2455B5DF4C31}.Debug|x86.Build.0 = Debug|x86
     572                {67C393B3-1FC5-4B3D-A42B-2455B5DF4C31}.Release|Any CPU.ActiveCfg = Release|x86
    467573                {67C393B3-1FC5-4B3D-A42B-2455B5DF4C31}.Release|x86.ActiveCfg = Release|x86
    468574                {67C393B3-1FC5-4B3D-A42B-2455B5DF4C31}.Release|x86.Build.0 = Release|x86
     575                {E46A6AA6-56EE-4AE5-8725-DCD07DC95527}.Debug|Any CPU.ActiveCfg = Debug|x86
    469576                {E46A6AA6-56EE-4AE5-8725-DCD07DC95527}.Debug|x86.ActiveCfg = Debug|x86
    470577                {E46A6AA6-56EE-4AE5-8725-DCD07DC95527}.Debug|x86.Build.0 = Debug|x86
     578                {E46A6AA6-56EE-4AE5-8725-DCD07DC95527}.Release|Any CPU.ActiveCfg = Release|x86
    471579                {E46A6AA6-56EE-4AE5-8725-DCD07DC95527}.Release|x86.ActiveCfg = Release|x86
    472580                {E46A6AA6-56EE-4AE5-8725-DCD07DC95527}.Release|x86.Build.0 = Release|x86
     581                {4E2D7D54-2C6B-46E2-ACFA-BDA517679AE1}.Debug|Any CPU.ActiveCfg = Debug|x86
    473582                {4E2D7D54-2C6B-46E2-ACFA-BDA517679AE1}.Debug|x86.ActiveCfg = Debug|x86
    474583                {4E2D7D54-2C6B-46E2-ACFA-BDA517679AE1}.Debug|x86.Build.0 = Debug|x86
     584                {4E2D7D54-2C6B-46E2-ACFA-BDA517679AE1}.Release|Any CPU.ActiveCfg = Release|x86
    475585                {4E2D7D54-2C6B-46E2-ACFA-BDA517679AE1}.Release|x86.ActiveCfg = Release|x86
    476586                {4E2D7D54-2C6B-46E2-ACFA-BDA517679AE1}.Release|x86.Build.0 = Release|x86
     587                {7520A48F-E118-44C7-935F-2FC9A80D1181}.Debug|Any CPU.ActiveCfg = Debug|x86
    477588                {7520A48F-E118-44C7-935F-2FC9A80D1181}.Debug|x86.ActiveCfg = Debug|x86
    478589                {7520A48F-E118-44C7-935F-2FC9A80D1181}.Debug|x86.Build.0 = Debug|x86
     590                {7520A48F-E118-44C7-935F-2FC9A80D1181}.Release|Any CPU.ActiveCfg = Release|x86
    479591                {7520A48F-E118-44C7-935F-2FC9A80D1181}.Release|x86.ActiveCfg = Release|x86
    480592                {7520A48F-E118-44C7-935F-2FC9A80D1181}.Release|x86.Build.0 = Release|x86
     593                {B2F7104B-C302-409A-B6C7-3A74B6E5C5A1}.Debug|Any CPU.ActiveCfg = Debug|x86
    481594                {B2F7104B-C302-409A-B6C7-3A74B6E5C5A1}.Debug|x86.ActiveCfg = Debug|x86
    482595                {B2F7104B-C302-409A-B6C7-3A74B6E5C5A1}.Debug|x86.Build.0 = Debug|x86
     596                {B2F7104B-C302-409A-B6C7-3A74B6E5C5A1}.Release|Any CPU.ActiveCfg = Release|x86
    483597                {B2F7104B-C302-409A-B6C7-3A74B6E5C5A1}.Release|x86.ActiveCfg = Release|x86
    484598                {B2F7104B-C302-409A-B6C7-3A74B6E5C5A1}.Release|x86.Build.0 = Release|x86
     599                {F8150D58-1AD6-4411-AF27-FC8578D24C73}.Debug|Any CPU.ActiveCfg = Debug|x86
    485600                {F8150D58-1AD6-4411-AF27-FC8578D24C73}.Debug|x86.ActiveCfg = Debug|x86
    486601                {F8150D58-1AD6-4411-AF27-FC8578D24C73}.Debug|x86.Build.0 = Debug|x86
     602                {F8150D58-1AD6-4411-AF27-FC8578D24C73}.Release|Any CPU.ActiveCfg = Release|x86
    487603                {F8150D58-1AD6-4411-AF27-FC8578D24C73}.Release|x86.ActiveCfg = Release|x86
    488604                {F8150D58-1AD6-4411-AF27-FC8578D24C73}.Release|x86.Build.0 = Release|x86
     605                {56617BC2-3504-410C-AB98-E551EFCE4E3D}.Debug|Any CPU.ActiveCfg = Debug|x86
    489606                {56617BC2-3504-410C-AB98-E551EFCE4E3D}.Debug|x86.ActiveCfg = Debug|x86
    490607                {56617BC2-3504-410C-AB98-E551EFCE4E3D}.Debug|x86.Build.0 = Debug|x86
     608                {56617BC2-3504-410C-AB98-E551EFCE4E3D}.Release|Any CPU.ActiveCfg = Release|x86
    491609                {56617BC2-3504-410C-AB98-E551EFCE4E3D}.Release|x86.ActiveCfg = Release|x86
    492610                {56617BC2-3504-410C-AB98-E551EFCE4E3D}.Release|x86.Build.0 = Release|x86
     611                {FB8BAD02-DDE2-411E-A495-071232CFDE58}.Debug|Any CPU.ActiveCfg = Debug|x86
    493612                {FB8BAD02-DDE2-411E-A495-071232CFDE58}.Debug|x86.ActiveCfg = Debug|x86
    494613                {FB8BAD02-DDE2-411E-A495-071232CFDE58}.Debug|x86.Build.0 = Debug|x86
     614                {FB8BAD02-DDE2-411E-A495-071232CFDE58}.Release|Any CPU.ActiveCfg = Release|x86
    495615                {FB8BAD02-DDE2-411E-A495-071232CFDE58}.Release|x86.ActiveCfg = Release|x86
    496616                {FB8BAD02-DDE2-411E-A495-071232CFDE58}.Release|x86.Build.0 = Release|x86
     617                {AF5B966D-76A8-43A1-B6D2-3831FD4EF1C7}.Debug|Any CPU.ActiveCfg = Debug|x86
    497618                {AF5B966D-76A8-43A1-B6D2-3831FD4EF1C7}.Debug|x86.ActiveCfg = Debug|x86
    498619                {AF5B966D-76A8-43A1-B6D2-3831FD4EF1C7}.Debug|x86.Build.0 = Debug|x86
     620                {AF5B966D-76A8-43A1-B6D2-3831FD4EF1C7}.Release|Any CPU.ActiveCfg = Release|x86
    499621                {AF5B966D-76A8-43A1-B6D2-3831FD4EF1C7}.Release|x86.ActiveCfg = Release|x86
    500622                {AF5B966D-76A8-43A1-B6D2-3831FD4EF1C7}.Release|x86.Build.0 = Release|x86
     623                {35359F4F-B6AE-4339-9E3C-8C3E6BD10AB1}.Debug|Any CPU.ActiveCfg = Debug|x86
    501624                {35359F4F-B6AE-4339-9E3C-8C3E6BD10AB1}.Debug|x86.ActiveCfg = Debug|x86
    502625                {35359F4F-B6AE-4339-9E3C-8C3E6BD10AB1}.Debug|x86.Build.0 = Debug|x86
     626                {35359F4F-B6AE-4339-9E3C-8C3E6BD10AB1}.Release|Any CPU.ActiveCfg = Release|x86
    503627                {35359F4F-B6AE-4339-9E3C-8C3E6BD10AB1}.Release|x86.ActiveCfg = Release|x86
    504628                {35359F4F-B6AE-4339-9E3C-8C3E6BD10AB1}.Release|x86.Build.0 = Release|x86
     629                {0579E099-66B2-43C3-B8A0-43CAE4895E68}.Debug|Any CPU.ActiveCfg = Debug|x86
    505630                {0579E099-66B2-43C3-B8A0-43CAE4895E68}.Debug|x86.ActiveCfg = Debug|x86
    506631                {0579E099-66B2-43C3-B8A0-43CAE4895E68}.Debug|x86.Build.0 = Debug|x86
     632                {0579E099-66B2-43C3-B8A0-43CAE4895E68}.Release|Any CPU.ActiveCfg = Release|x86
    507633                {0579E099-66B2-43C3-B8A0-43CAE4895E68}.Release|x86.ActiveCfg = Release|x86
    508634                {0579E099-66B2-43C3-B8A0-43CAE4895E68}.Release|x86.Build.0 = Release|x86
     635                {627580E2-0CFC-4C4E-983E-AA7E0D7547F4}.Debug|Any CPU.ActiveCfg = Debug|x86
    509636                {627580E2-0CFC-4C4E-983E-AA7E0D7547F4}.Debug|x86.ActiveCfg = Debug|x86
    510637                {627580E2-0CFC-4C4E-983E-AA7E0D7547F4}.Debug|x86.Build.0 = Debug|x86
     638                {627580E2-0CFC-4C4E-983E-AA7E0D7547F4}.Release|Any CPU.ActiveCfg = Release|x86
    511639                {627580E2-0CFC-4C4E-983E-AA7E0D7547F4}.Release|x86.ActiveCfg = Release|x86
    512640                {627580E2-0CFC-4C4E-983E-AA7E0D7547F4}.Release|x86.Build.0 = Release|x86
     641                {44097D91-4DA3-451F-9AB3-FC98215740A6}.Debug|Any CPU.ActiveCfg = Debug|x86
    513642                {44097D91-4DA3-451F-9AB3-FC98215740A6}.Debug|x86.ActiveCfg = Debug|x86
    514643                {44097D91-4DA3-451F-9AB3-FC98215740A6}.Debug|x86.Build.0 = Debug|x86
     644                {44097D91-4DA3-451F-9AB3-FC98215740A6}.Release|Any CPU.ActiveCfg = Release|x86
    515645                {44097D91-4DA3-451F-9AB3-FC98215740A6}.Release|x86.ActiveCfg = Release|x86
    516646                {44097D91-4DA3-451F-9AB3-FC98215740A6}.Release|x86.Build.0 = Release|x86
     647                {588D9152-F9F9-4E82-B910-8645DE32AFF6}.Debug|Any CPU.ActiveCfg = Debug|x86
    517648                {588D9152-F9F9-4E82-B910-8645DE32AFF6}.Debug|x86.ActiveCfg = Debug|x86
    518649                {588D9152-F9F9-4E82-B910-8645DE32AFF6}.Debug|x86.Build.0 = Debug|x86
     650                {588D9152-F9F9-4E82-B910-8645DE32AFF6}.Release|Any CPU.ActiveCfg = Release|x86
    519651                {588D9152-F9F9-4E82-B910-8645DE32AFF6}.Release|x86.ActiveCfg = Release|x86
    520652                {588D9152-F9F9-4E82-B910-8645DE32AFF6}.Release|x86.Build.0 = Release|x86
     653                {7A233B47-26A4-4386-BC79-AF4363DDB4E1}.Debug|Any CPU.ActiveCfg = Debug|x86
    521654                {7A233B47-26A4-4386-BC79-AF4363DDB4E1}.Debug|x86.ActiveCfg = Debug|x86
    522655                {7A233B47-26A4-4386-BC79-AF4363DDB4E1}.Debug|x86.Build.0 = Debug|x86
     656                {7A233B47-26A4-4386-BC79-AF4363DDB4E1}.Release|Any CPU.ActiveCfg = Release|x86
    523657                {7A233B47-26A4-4386-BC79-AF4363DDB4E1}.Release|x86.ActiveCfg = Release|x86
    524658                {7A233B47-26A4-4386-BC79-AF4363DDB4E1}.Release|x86.Build.0 = Release|x86
     659                {88CB13C3-85B4-4329-B5ED-62D73EF48556}.Debug|Any CPU.ActiveCfg = Debug|x86
    525660                {88CB13C3-85B4-4329-B5ED-62D73EF48556}.Debug|x86.ActiveCfg = Debug|x86
    526661                {88CB13C3-85B4-4329-B5ED-62D73EF48556}.Debug|x86.Build.0 = Debug|x86
     662                {88CB13C3-85B4-4329-B5ED-62D73EF48556}.Release|Any CPU.ActiveCfg = Release|x86
    527663                {88CB13C3-85B4-4329-B5ED-62D73EF48556}.Release|x86.ActiveCfg = Release|x86
    528664                {88CB13C3-85B4-4329-B5ED-62D73EF48556}.Release|x86.Build.0 = Release|x86
     665                {7622B8CE-2F04-4380-9484-D642F6F2478E}.Debug|Any CPU.ActiveCfg = Debug|x86
    529666                {7622B8CE-2F04-4380-9484-D642F6F2478E}.Debug|x86.ActiveCfg = Debug|x86
    530667                {7622B8CE-2F04-4380-9484-D642F6F2478E}.Debug|x86.Build.0 = Debug|x86
     668                {7622B8CE-2F04-4380-9484-D642F6F2478E}.Release|Any CPU.ActiveCfg = Release|x86
    531669                {7622B8CE-2F04-4380-9484-D642F6F2478E}.Release|x86.ActiveCfg = Release|x86
    532670                {7622B8CE-2F04-4380-9484-D642F6F2478E}.Release|x86.Build.0 = Release|x86
     671                {9A8A0EC9-80AB-4015-923A-0CCFB198741A}.Debug|Any CPU.ActiveCfg = Debug|x86
    533672                {9A8A0EC9-80AB-4015-923A-0CCFB198741A}.Debug|x86.ActiveCfg = Debug|x86
    534673                {9A8A0EC9-80AB-4015-923A-0CCFB198741A}.Debug|x86.Build.0 = Debug|x86
     674                {9A8A0EC9-80AB-4015-923A-0CCFB198741A}.Release|Any CPU.ActiveCfg = Release|x86
    535675                {9A8A0EC9-80AB-4015-923A-0CCFB198741A}.Release|x86.ActiveCfg = Release|x86
    536676                {9A8A0EC9-80AB-4015-923A-0CCFB198741A}.Release|x86.Build.0 = Release|x86
     677                {68FF3A1A-16F7-4657-B79F-5A12F884F442}.Debug|Any CPU.ActiveCfg = Debug|x86
    537678                {68FF3A1A-16F7-4657-B79F-5A12F884F442}.Debug|x86.ActiveCfg = Debug|x86
    538679                {68FF3A1A-16F7-4657-B79F-5A12F884F442}.Debug|x86.Build.0 = Debug|x86
     680                {68FF3A1A-16F7-4657-B79F-5A12F884F442}.Release|Any CPU.ActiveCfg = Release|x86
    539681                {68FF3A1A-16F7-4657-B79F-5A12F884F442}.Release|x86.ActiveCfg = Release|x86
    540682                {68FF3A1A-16F7-4657-B79F-5A12F884F442}.Release|x86.Build.0 = Release|x86
     683                {B682CEB4-86F6-4C0D-918C-232C82E75673}.Debug|Any CPU.ActiveCfg = Debug|x86
    541684                {B682CEB4-86F6-4C0D-918C-232C82E75673}.Debug|x86.ActiveCfg = Debug|x86
    542685                {B682CEB4-86F6-4C0D-918C-232C82E75673}.Debug|x86.Build.0 = Debug|x86
     686                {B682CEB4-86F6-4C0D-918C-232C82E75673}.Release|Any CPU.ActiveCfg = Release|x86
    543687                {B682CEB4-86F6-4C0D-918C-232C82E75673}.Release|x86.ActiveCfg = Release|x86
    544688                {B682CEB4-86F6-4C0D-918C-232C82E75673}.Release|x86.Build.0 = Release|x86
     689                {D71E93D0-27FE-41AA-8F15-0EE959DB4342}.Debug|Any CPU.ActiveCfg = Debug|x86
    545690                {D71E93D0-27FE-41AA-8F15-0EE959DB4342}.Debug|x86.ActiveCfg = Debug|x86
    546691                {D71E93D0-27FE-41AA-8F15-0EE959DB4342}.Debug|x86.Build.0 = Debug|x86
     692                {D71E93D0-27FE-41AA-8F15-0EE959DB4342}.Release|Any CPU.ActiveCfg = Release|x86
    547693                {D71E93D0-27FE-41AA-8F15-0EE959DB4342}.Release|x86.ActiveCfg = Release|x86
    548694                {D71E93D0-27FE-41AA-8F15-0EE959DB4342}.Release|x86.Build.0 = Release|x86
     695                {62296CE7-A264-497A-A63A-F7B517F4A0CC}.Debug|Any CPU.ActiveCfg = Debug|x86
    549696                {62296CE7-A264-497A-A63A-F7B517F4A0CC}.Debug|x86.ActiveCfg = Debug|x86
    550697                {62296CE7-A264-497A-A63A-F7B517F4A0CC}.Debug|x86.Build.0 = Debug|x86
     698                {62296CE7-A264-497A-A63A-F7B517F4A0CC}.Release|Any CPU.ActiveCfg = Release|x86
    551699                {62296CE7-A264-497A-A63A-F7B517F4A0CC}.Release|x86.ActiveCfg = Release|x86
    552700                {62296CE7-A264-497A-A63A-F7B517F4A0CC}.Release|x86.Build.0 = Release|x86
     701                {809EEF0F-DE14-4300-9E3E-A60A7DFFB3EB}.Debug|Any CPU.ActiveCfg = Debug|x86
    553702                {809EEF0F-DE14-4300-9E3E-A60A7DFFB3EB}.Debug|x86.ActiveCfg = Debug|x86
    554703                {809EEF0F-DE14-4300-9E3E-A60A7DFFB3EB}.Debug|x86.Build.0 = Debug|x86
     704                {809EEF0F-DE14-4300-9E3E-A60A7DFFB3EB}.Release|Any CPU.ActiveCfg = Release|x86
    555705                {809EEF0F-DE14-4300-9E3E-A60A7DFFB3EB}.Release|x86.ActiveCfg = Release|x86
    556706                {809EEF0F-DE14-4300-9E3E-A60A7DFFB3EB}.Release|x86.Build.0 = Release|x86
     707                {1C42ADB9-643E-4B1C-A862-7DBE3CD22A7A}.Debug|Any CPU.ActiveCfg = Debug|x86
    557708                {1C42ADB9-643E-4B1C-A862-7DBE3CD22A7A}.Debug|x86.ActiveCfg = Debug|x86
    558709                {1C42ADB9-643E-4B1C-A862-7DBE3CD22A7A}.Debug|x86.Build.0 = Debug|x86
     710                {1C42ADB9-643E-4B1C-A862-7DBE3CD22A7A}.Release|Any CPU.ActiveCfg = Release|x86
    559711                {1C42ADB9-643E-4B1C-A862-7DBE3CD22A7A}.Release|x86.ActiveCfg = Release|x86
    560712                {1C42ADB9-643E-4B1C-A862-7DBE3CD22A7A}.Release|x86.Build.0 = Release|x86
     713                {0255CD48-A39D-406F-B89F-78D8AE56B9CE}.Debug|Any CPU.ActiveCfg = Debug|x86
    561714                {0255CD48-A39D-406F-B89F-78D8AE56B9CE}.Debug|x86.ActiveCfg = Debug|x86
    562715                {0255CD48-A39D-406F-B89F-78D8AE56B9CE}.Debug|x86.Build.0 = Debug|x86
     716                {0255CD48-A39D-406F-B89F-78D8AE56B9CE}.Release|Any CPU.ActiveCfg = Release|x86
    563717                {0255CD48-A39D-406F-B89F-78D8AE56B9CE}.Release|x86.ActiveCfg = Release|x86
    564718                {0255CD48-A39D-406F-B89F-78D8AE56B9CE}.Release|x86.Build.0 = Release|x86
     719                {44570501-A850-4518-A1F1-A8795D91D826}.Debug|Any CPU.ActiveCfg = Debug|x86
    565720                {44570501-A850-4518-A1F1-A8795D91D826}.Debug|x86.ActiveCfg = Debug|x86
    566721                {44570501-A850-4518-A1F1-A8795D91D826}.Debug|x86.Build.0 = Debug|x86
     722                {44570501-A850-4518-A1F1-A8795D91D826}.Release|Any CPU.ActiveCfg = Release|x86
    567723                {44570501-A850-4518-A1F1-A8795D91D826}.Release|x86.ActiveCfg = Release|x86
    568724                {44570501-A850-4518-A1F1-A8795D91D826}.Release|x86.Build.0 = Release|x86
     725                {3C72FF93-48C2-4929-B3B2-83F165AAE636}.Debug|Any CPU.ActiveCfg = Debug|x86
    569726                {3C72FF93-48C2-4929-B3B2-83F165AAE636}.Debug|x86.ActiveCfg = Debug|x86
    570727                {3C72FF93-48C2-4929-B3B2-83F165AAE636}.Debug|x86.Build.0 = Debug|x86
     728                {3C72FF93-48C2-4929-B3B2-83F165AAE636}.Release|Any CPU.ActiveCfg = Release|x86
    571729                {3C72FF93-48C2-4929-B3B2-83F165AAE636}.Release|x86.ActiveCfg = Release|x86
    572730                {3C72FF93-48C2-4929-B3B2-83F165AAE636}.Release|x86.Build.0 = Release|x86
     731                {9DC8FE92-6839-4837-8AAA-D7456F2B288F}.Debug|Any CPU.ActiveCfg = Debug|x86
    573732                {9DC8FE92-6839-4837-8AAA-D7456F2B288F}.Debug|x86.ActiveCfg = Debug|x86
    574733                {9DC8FE92-6839-4837-8AAA-D7456F2B288F}.Debug|x86.Build.0 = Debug|x86
     734                {9DC8FE92-6839-4837-8AAA-D7456F2B288F}.Release|Any CPU.ActiveCfg = Release|x86
    575735                {9DC8FE92-6839-4837-8AAA-D7456F2B288F}.Release|x86.ActiveCfg = Release|x86
    576736                {9DC8FE92-6839-4837-8AAA-D7456F2B288F}.Release|x86.Build.0 = Release|x86
     737                {A066F077-B078-4234-BDD4-3632C0B3C18F}.Debug|Any CPU.ActiveCfg = Debug|x86
    577738                {A066F077-B078-4234-BDD4-3632C0B3C18F}.Debug|x86.ActiveCfg = Debug|x86
    578739                {A066F077-B078-4234-BDD4-3632C0B3C18F}.Debug|x86.Build.0 = Debug|x86
     740                {A066F077-B078-4234-BDD4-3632C0B3C18F}.Release|Any CPU.ActiveCfg = Release|x86
    579741                {A066F077-B078-4234-BDD4-3632C0B3C18F}.Release|x86.ActiveCfg = Release|x86
    580742                {A066F077-B078-4234-BDD4-3632C0B3C18F}.Release|x86.Build.0 = Release|x86
     743                {3ECF3335-7331-4E1A-942F-3340CDEC3EB9}.Debug|Any CPU.ActiveCfg = Debug|x86
    581744                {3ECF3335-7331-4E1A-942F-3340CDEC3EB9}.Debug|x86.ActiveCfg = Debug|x86
    582745                {3ECF3335-7331-4E1A-942F-3340CDEC3EB9}.Debug|x86.Build.0 = Debug|x86
     746                {3ECF3335-7331-4E1A-942F-3340CDEC3EB9}.Release|Any CPU.ActiveCfg = Release|x86
    583747                {3ECF3335-7331-4E1A-942F-3340CDEC3EB9}.Release|x86.ActiveCfg = Release|x86
    584748                {3ECF3335-7331-4E1A-942F-3340CDEC3EB9}.Release|x86.Build.0 = Release|x86
     749                {1B04DDAA-3DA9-4AC9-85C0-E819C790CA34}.Debug|Any CPU.ActiveCfg = Debug|x86
    585750                {1B04DDAA-3DA9-4AC9-85C0-E819C790CA34}.Debug|x86.ActiveCfg = Debug|x86
    586751                {1B04DDAA-3DA9-4AC9-85C0-E819C790CA34}.Debug|x86.Build.0 = Debug|x86
     752                {1B04DDAA-3DA9-4AC9-85C0-E819C790CA34}.Release|Any CPU.ActiveCfg = Release|x86
    587753                {1B04DDAA-3DA9-4AC9-85C0-E819C790CA34}.Release|x86.ActiveCfg = Release|x86
    588754                {1B04DDAA-3DA9-4AC9-85C0-E819C790CA34}.Release|x86.Build.0 = Release|x86
     755                {37D80203-C651-4396-8F5B-D67B7EC62763}.Debug|Any CPU.ActiveCfg = Debug|x86
    589756                {37D80203-C651-4396-8F5B-D67B7EC62763}.Debug|x86.ActiveCfg = Debug|x86
    590757                {37D80203-C651-4396-8F5B-D67B7EC62763}.Debug|x86.Build.0 = Debug|x86
     758                {37D80203-C651-4396-8F5B-D67B7EC62763}.Release|Any CPU.ActiveCfg = Release|x86
    591759                {37D80203-C651-4396-8F5B-D67B7EC62763}.Release|x86.ActiveCfg = Release|x86
    592760                {37D80203-C651-4396-8F5B-D67B7EC62763}.Release|x86.Build.0 = Release|x86
     761                {D5B859A7-73AB-4BFE-A1FB-11BB104B210C}.Debug|Any CPU.ActiveCfg = Debug|x86
    593762                {D5B859A7-73AB-4BFE-A1FB-11BB104B210C}.Debug|x86.ActiveCfg = Debug|x86
    594763                {D5B859A7-73AB-4BFE-A1FB-11BB104B210C}.Debug|x86.Build.0 = Debug|x86
     764                {D5B859A7-73AB-4BFE-A1FB-11BB104B210C}.Release|Any CPU.ActiveCfg = Release|x86
    595765                {D5B859A7-73AB-4BFE-A1FB-11BB104B210C}.Release|x86.ActiveCfg = Release|x86
    596766                {D5B859A7-73AB-4BFE-A1FB-11BB104B210C}.Release|x86.Build.0 = Release|x86
     767                {C7507435-D076-406C-8F8F-0DBBDFB17D9A}.Debug|Any CPU.ActiveCfg = Debug|x86
    597768                {C7507435-D076-406C-8F8F-0DBBDFB17D9A}.Debug|x86.ActiveCfg = Debug|x86
    598769                {C7507435-D076-406C-8F8F-0DBBDFB17D9A}.Debug|x86.Build.0 = Debug|x86
     770                {C7507435-D076-406C-8F8F-0DBBDFB17D9A}.Release|Any CPU.ActiveCfg = Release|x86
    599771                {C7507435-D076-406C-8F8F-0DBBDFB17D9A}.Release|x86.ActiveCfg = Release|x86
    600772                {C7507435-D076-406C-8F8F-0DBBDFB17D9A}.Release|x86.Build.0 = Release|x86
     773                {2100AC2F-3F2B-48A2-AF42-87EC52C8A703}.Debug|Any CPU.ActiveCfg = Debug|x86
    601774                {2100AC2F-3F2B-48A2-AF42-87EC52C8A703}.Debug|x86.ActiveCfg = Debug|x86
    602775                {2100AC2F-3F2B-48A2-AF42-87EC52C8A703}.Debug|x86.Build.0 = Debug|x86
     776                {2100AC2F-3F2B-48A2-AF42-87EC52C8A703}.Release|Any CPU.ActiveCfg = Release|x86
    603777                {2100AC2F-3F2B-48A2-AF42-87EC52C8A703}.Release|x86.ActiveCfg = Release|x86
    604778                {2100AC2F-3F2B-48A2-AF42-87EC52C8A703}.Release|x86.Build.0 = Release|x86
     779                {D7940152-CBCF-4A65-96BB-6BEDB20DED7E}.Debug|Any CPU.ActiveCfg = Debug|x86
    605780                {D7940152-CBCF-4A65-96BB-6BEDB20DED7E}.Debug|x86.ActiveCfg = Debug|x86
    606781                {D7940152-CBCF-4A65-96BB-6BEDB20DED7E}.Debug|x86.Build.0 = Debug|x86
     782                {D7940152-CBCF-4A65-96BB-6BEDB20DED7E}.Release|Any CPU.ActiveCfg = Release|x86
    607783                {D7940152-CBCF-4A65-96BB-6BEDB20DED7E}.Release|x86.ActiveCfg = Release|x86
    608784                {D7940152-CBCF-4A65-96BB-6BEDB20DED7E}.Release|x86.Build.0 = Release|x86
     785                {AA14E2EC-E9D7-4AC4-AE69-25007D555E9B}.Debug|Any CPU.ActiveCfg = Debug|x86
    609786                {AA14E2EC-E9D7-4AC4-AE69-25007D555E9B}.Debug|x86.ActiveCfg = Debug|x86
    610787                {AA14E2EC-E9D7-4AC4-AE69-25007D555E9B}.Debug|x86.Build.0 = Debug|x86
     788                {AA14E2EC-E9D7-4AC4-AE69-25007D555E9B}.Release|Any CPU.ActiveCfg = Release|x86
    611789                {AA14E2EC-E9D7-4AC4-AE69-25007D555E9B}.Release|x86.ActiveCfg = Release|x86
    612790                {AA14E2EC-E9D7-4AC4-AE69-25007D555E9B}.Release|x86.Build.0 = Release|x86
     791                {0FEE94EF-C54B-496D-AA98-7E4682B2280B}.Debug|Any CPU.ActiveCfg = Debug|x86
    613792                {0FEE94EF-C54B-496D-AA98-7E4682B2280B}.Debug|x86.ActiveCfg = Debug|x86
    614793                {0FEE94EF-C54B-496D-AA98-7E4682B2280B}.Debug|x86.Build.0 = Debug|x86
     794                {0FEE94EF-C54B-496D-AA98-7E4682B2280B}.Release|Any CPU.ActiveCfg = Release|x86
    615795                {0FEE94EF-C54B-496D-AA98-7E4682B2280B}.Release|x86.ActiveCfg = Release|x86
    616796                {0FEE94EF-C54B-496D-AA98-7E4682B2280B}.Release|x86.Build.0 = Release|x86
     797                {A1E7F287-DFC1-44C2-A681-C62DF46B43C5}.Debug|Any CPU.ActiveCfg = Debug|x86
    617798                {A1E7F287-DFC1-44C2-A681-C62DF46B43C5}.Debug|x86.ActiveCfg = Debug|x86
    618799                {A1E7F287-DFC1-44C2-A681-C62DF46B43C5}.Debug|x86.Build.0 = Debug|x86
     800                {A1E7F287-DFC1-44C2-A681-C62DF46B43C5}.Release|Any CPU.ActiveCfg = Release|x86
    619801                {A1E7F287-DFC1-44C2-A681-C62DF46B43C5}.Release|x86.ActiveCfg = Release|x86
    620802                {A1E7F287-DFC1-44C2-A681-C62DF46B43C5}.Release|x86.Build.0 = Release|x86
     803                {612FEE87-F51F-4BE6-81D1-F91EA4A5DD43}.Debug|Any CPU.ActiveCfg = Debug|x86
    621804                {612FEE87-F51F-4BE6-81D1-F91EA4A5DD43}.Debug|x86.ActiveCfg = Debug|x86
    622805                {612FEE87-F51F-4BE6-81D1-F91EA4A5DD43}.Debug|x86.Build.0 = Debug|x86
     806                {612FEE87-F51F-4BE6-81D1-F91EA4A5DD43}.Release|Any CPU.ActiveCfg = Release|x86
    623807                {612FEE87-F51F-4BE6-81D1-F91EA4A5DD43}.Release|x86.ActiveCfg = Release|x86
    624808                {612FEE87-F51F-4BE6-81D1-F91EA4A5DD43}.Release|x86.Build.0 = Release|x86
     809                {F1258427-AFDF-4DF7-ABF1-758A2325F505}.Debug|Any CPU.ActiveCfg = Debug|x86
    625810                {F1258427-AFDF-4DF7-ABF1-758A2325F505}.Debug|x86.ActiveCfg = Debug|x86
    626811                {F1258427-AFDF-4DF7-ABF1-758A2325F505}.Debug|x86.Build.0 = Debug|x86
     812                {F1258427-AFDF-4DF7-ABF1-758A2325F505}.Release|Any CPU.ActiveCfg = Release|x86
    627813                {F1258427-AFDF-4DF7-ABF1-758A2325F505}.Release|x86.ActiveCfg = Release|x86
    628814                {F1258427-AFDF-4DF7-ABF1-758A2325F505}.Release|x86.Build.0 = Release|x86
     815                {D726EBB6-0E54-477A-9C4C-F18848135055}.Debug|Any CPU.ActiveCfg = Debug|x86
    629816                {D726EBB6-0E54-477A-9C4C-F18848135055}.Debug|x86.ActiveCfg = Debug|x86
    630817                {D726EBB6-0E54-477A-9C4C-F18848135055}.Debug|x86.Build.0 = Debug|x86
     818                {D726EBB6-0E54-477A-9C4C-F18848135055}.Release|Any CPU.ActiveCfg = Release|x86
    631819                {D726EBB6-0E54-477A-9C4C-F18848135055}.Release|x86.ActiveCfg = Release|x86
    632820                {D726EBB6-0E54-477A-9C4C-F18848135055}.Release|x86.Build.0 = Release|x86
     821                {F5DDFE63-0904-4523-AA30-11FF5E91C362}.Debug|Any CPU.ActiveCfg = Debug|x86
    633822                {F5DDFE63-0904-4523-AA30-11FF5E91C362}.Debug|x86.ActiveCfg = Debug|x86
    634823                {F5DDFE63-0904-4523-AA30-11FF5E91C362}.Debug|x86.Build.0 = Debug|x86
     824                {F5DDFE63-0904-4523-AA30-11FF5E91C362}.Release|Any CPU.ActiveCfg = Release|x86
    635825                {F5DDFE63-0904-4523-AA30-11FF5E91C362}.Release|x86.ActiveCfg = Release|x86
    636826                {F5DDFE63-0904-4523-AA30-11FF5E91C362}.Release|x86.Build.0 = Release|x86
     827                {7D3E4C88-7EA8-45EA-AC1E-FC8ED8EDDB7A}.Debug|Any CPU.ActiveCfg = Debug|x86
    637828                {7D3E4C88-7EA8-45EA-AC1E-FC8ED8EDDB7A}.Debug|x86.ActiveCfg = Debug|x86
    638829                {7D3E4C88-7EA8-45EA-AC1E-FC8ED8EDDB7A}.Debug|x86.Build.0 = Debug|x86
     830                {7D3E4C88-7EA8-45EA-AC1E-FC8ED8EDDB7A}.Release|Any CPU.ActiveCfg = Release|x86
    639831                {7D3E4C88-7EA8-45EA-AC1E-FC8ED8EDDB7A}.Release|x86.ActiveCfg = Release|x86
    640832                {7D3E4C88-7EA8-45EA-AC1E-FC8ED8EDDB7A}.Release|x86.Build.0 = Release|x86
     833                {12829116-8FAD-4D09-A0AA-D75D88F07626}.Debug|Any CPU.ActiveCfg = Debug|x86
    641834                {12829116-8FAD-4D09-A0AA-D75D88F07626}.Debug|x86.ActiveCfg = Debug|x86
    642835                {12829116-8FAD-4D09-A0AA-D75D88F07626}.Debug|x86.Build.0 = Debug|x86
     836                {12829116-8FAD-4D09-A0AA-D75D88F07626}.Release|Any CPU.ActiveCfg = Release|x86
    643837                {12829116-8FAD-4D09-A0AA-D75D88F07626}.Release|x86.ActiveCfg = Release|x86
    644838                {12829116-8FAD-4D09-A0AA-D75D88F07626}.Release|x86.Build.0 = Release|x86
     839                {DC146510-2069-4A1E-A39A-9773DBEA79CD}.Debug|Any CPU.ActiveCfg = Debug|x86
    645840                {DC146510-2069-4A1E-A39A-9773DBEA79CD}.Debug|x86.ActiveCfg = Debug|x86
    646841                {DC146510-2069-4A1E-A39A-9773DBEA79CD}.Debug|x86.Build.0 = Debug|x86
     842                {DC146510-2069-4A1E-A39A-9773DBEA79CD}.Release|Any CPU.ActiveCfg = Release|x86
    647843                {DC146510-2069-4A1E-A39A-9773DBEA79CD}.Release|x86.ActiveCfg = Release|x86
    648844                {DC146510-2069-4A1E-A39A-9773DBEA79CD}.Release|x86.Build.0 = Release|x86
     845                {1696C227-2A99-4A14-AE81-6A8438D42D06}.Debug|Any CPU.ActiveCfg = Debug|x86
    649846                {1696C227-2A99-4A14-AE81-6A8438D42D06}.Debug|x86.ActiveCfg = Debug|x86
    650847                {1696C227-2A99-4A14-AE81-6A8438D42D06}.Debug|x86.Build.0 = Debug|x86
     848                {1696C227-2A99-4A14-AE81-6A8438D42D06}.Release|Any CPU.ActiveCfg = Release|x86
    651849                {1696C227-2A99-4A14-AE81-6A8438D42D06}.Release|x86.ActiveCfg = Release|x86
    652850                {1696C227-2A99-4A14-AE81-6A8438D42D06}.Release|x86.Build.0 = Release|x86
     851                {C53B0D8F-CB9C-461B-8802-062F342FFC5D}.Debug|Any CPU.ActiveCfg = Debug|x86
    653852                {C53B0D8F-CB9C-461B-8802-062F342FFC5D}.Debug|x86.ActiveCfg = Debug|x86
    654853                {C53B0D8F-CB9C-461B-8802-062F342FFC5D}.Debug|x86.Build.0 = Debug|x86
     854                {C53B0D8F-CB9C-461B-8802-062F342FFC5D}.Release|Any CPU.ActiveCfg = Release|x86
    655855                {C53B0D8F-CB9C-461B-8802-062F342FFC5D}.Release|x86.ActiveCfg = Release|x86
    656856                {C53B0D8F-CB9C-461B-8802-062F342FFC5D}.Release|x86.Build.0 = Release|x86
     857                {4C93AC25-D344-4A35-81C8-C2A5E2C3B438}.Debug|Any CPU.ActiveCfg = Debug|x86
    657858                {4C93AC25-D344-4A35-81C8-C2A5E2C3B438}.Debug|x86.ActiveCfg = Debug|x86
    658859                {4C93AC25-D344-4A35-81C8-C2A5E2C3B438}.Debug|x86.Build.0 = Debug|x86
     860                {4C93AC25-D344-4A35-81C8-C2A5E2C3B438}.Release|Any CPU.ActiveCfg = Release|x86
    659861                {4C93AC25-D344-4A35-81C8-C2A5E2C3B438}.Release|x86.ActiveCfg = Release|x86
    660862                {4C93AC25-D344-4A35-81C8-C2A5E2C3B438}.Release|x86.Build.0 = Release|x86
     863                {59DEB752-BEB6-4B2B-86A9-78B150537529}.Debug|Any CPU.ActiveCfg = Debug|x86
    661864                {59DEB752-BEB6-4B2B-86A9-78B150537529}.Debug|x86.ActiveCfg = Debug|x86
    662865                {59DEB752-BEB6-4B2B-86A9-78B150537529}.Debug|x86.Build.0 = Debug|x86
     866                {59DEB752-BEB6-4B2B-86A9-78B150537529}.Release|Any CPU.ActiveCfg = Release|x86
    663867                {59DEB752-BEB6-4B2B-86A9-78B150537529}.Release|x86.ActiveCfg = Release|x86
    664868                {59DEB752-BEB6-4B2B-86A9-78B150537529}.Release|x86.Build.0 = Release|x86
     869                {B300C1F7-42CB-4668-9CCB-319D6AF8E3EB}.Debug|Any CPU.ActiveCfg = Debug|x86
    665870                {B300C1F7-42CB-4668-9CCB-319D6AF8E3EB}.Debug|x86.ActiveCfg = Debug|x86
    666871                {B300C1F7-42CB-4668-9CCB-319D6AF8E3EB}.Debug|x86.Build.0 = Debug|x86
     872                {B300C1F7-42CB-4668-9CCB-319D6AF8E3EB}.Release|Any CPU.ActiveCfg = Release|x86
    667873                {B300C1F7-42CB-4668-9CCB-319D6AF8E3EB}.Release|x86.ActiveCfg = Release|x86
    668874                {B300C1F7-42CB-4668-9CCB-319D6AF8E3EB}.Release|x86.Build.0 = Release|x86
     875                {7186387E-0469-42C3-96A9-F9AFFB656419}.Debug|Any CPU.ActiveCfg = Debug|x86
    669876                {7186387E-0469-42C3-96A9-F9AFFB656419}.Debug|x86.ActiveCfg = Debug|x86
    670877                {7186387E-0469-42C3-96A9-F9AFFB656419}.Debug|x86.Build.0 = Debug|x86
     878                {7186387E-0469-42C3-96A9-F9AFFB656419}.Release|Any CPU.ActiveCfg = Release|x86
    671879                {7186387E-0469-42C3-96A9-F9AFFB656419}.Release|x86.ActiveCfg = Release|x86
    672880                {7186387E-0469-42C3-96A9-F9AFFB656419}.Release|x86.Build.0 = Release|x86
     881                {7D4A4CE5-7E4F-480B-BC8F-E1FEBE558B8B}.Debug|Any CPU.ActiveCfg = Debug|x86
    673882                {7D4A4CE5-7E4F-480B-BC8F-E1FEBE558B8B}.Debug|x86.ActiveCfg = Debug|x86
    674883                {7D4A4CE5-7E4F-480B-BC8F-E1FEBE558B8B}.Debug|x86.Build.0 = Debug|x86
     884                {7D4A4CE5-7E4F-480B-BC8F-E1FEBE558B8B}.Release|Any CPU.ActiveCfg = Release|x86
    675885                {7D4A4CE5-7E4F-480B-BC8F-E1FEBE558B8B}.Release|x86.ActiveCfg = Release|x86
    676886                {7D4A4CE5-7E4F-480B-BC8F-E1FEBE558B8B}.Release|x86.Build.0 = Release|x86
     887                {949B4294-2894-43B4-BD73-E0B031F5434F}.Debug|Any CPU.ActiveCfg = Debug|x86
    677888                {949B4294-2894-43B4-BD73-E0B031F5434F}.Debug|x86.ActiveCfg = Debug|x86
    678889                {949B4294-2894-43B4-BD73-E0B031F5434F}.Debug|x86.Build.0 = Debug|x86
     890                {949B4294-2894-43B4-BD73-E0B031F5434F}.Release|Any CPU.ActiveCfg = Release|x86
    679891                {949B4294-2894-43B4-BD73-E0B031F5434F}.Release|x86.ActiveCfg = Release|x86
    680892                {949B4294-2894-43B4-BD73-E0B031F5434F}.Release|x86.Build.0 = Release|x86
     893                {5E02857D-3D80-4C14-9D38-246135B739F4}.Debug|Any CPU.ActiveCfg = Debug|x86
    681894                {5E02857D-3D80-4C14-9D38-246135B739F4}.Debug|x86.ActiveCfg = Debug|x86
    682895                {5E02857D-3D80-4C14-9D38-246135B739F4}.Debug|x86.Build.0 = Debug|x86
     896                {5E02857D-3D80-4C14-9D38-246135B739F4}.Release|Any CPU.ActiveCfg = Release|x86
    683897                {5E02857D-3D80-4C14-9D38-246135B739F4}.Release|x86.ActiveCfg = Release|x86
    684898                {5E02857D-3D80-4C14-9D38-246135B739F4}.Release|x86.Build.0 = Release|x86
     899                {3BF629D7-CDB5-4F53-8D99-AE3639AA72A3}.Debug|Any CPU.ActiveCfg = Debug|x86
    685900                {3BF629D7-CDB5-4F53-8D99-AE3639AA72A3}.Debug|x86.ActiveCfg = Debug|x86
    686901                {3BF629D7-CDB5-4F53-8D99-AE3639AA72A3}.Debug|x86.Build.0 = Debug|x86
     902                {3BF629D7-CDB5-4F53-8D99-AE3639AA72A3}.Release|Any CPU.ActiveCfg = Release|x86
    687903                {3BF629D7-CDB5-4F53-8D99-AE3639AA72A3}.Release|x86.ActiveCfg = Release|x86
    688904                {3BF629D7-CDB5-4F53-8D99-AE3639AA72A3}.Release|x86.Build.0 = Release|x86
     905                {07BBFCE4-CAFB-41F4-A888-6D847D6DC3F9}.Debug|Any CPU.ActiveCfg = Debug|x86
    689906                {07BBFCE4-CAFB-41F4-A888-6D847D6DC3F9}.Debug|x86.ActiveCfg = Debug|x86
    690907                {07BBFCE4-CAFB-41F4-A888-6D847D6DC3F9}.Debug|x86.Build.0 = Debug|x86
     908                {07BBFCE4-CAFB-41F4-A888-6D847D6DC3F9}.Release|Any CPU.ActiveCfg = Release|x86
    691909                {07BBFCE4-CAFB-41F4-A888-6D847D6DC3F9}.Release|x86.ActiveCfg = Release|x86
    692910                {07BBFCE4-CAFB-41F4-A888-6D847D6DC3F9}.Release|x86.Build.0 = Release|x86
     911                {AE633B61-EA75-40F0-BFF8-04B707FB1159}.Debug|Any CPU.ActiveCfg = Debug|x86
    693912                {AE633B61-EA75-40F0-BFF8-04B707FB1159}.Debug|x86.ActiveCfg = Debug|x86
    694913                {AE633B61-EA75-40F0-BFF8-04B707FB1159}.Debug|x86.Build.0 = Debug|x86
     914                {AE633B61-EA75-40F0-BFF8-04B707FB1159}.Release|Any CPU.ActiveCfg = Release|x86
    695915                {AE633B61-EA75-40F0-BFF8-04B707FB1159}.Release|x86.ActiveCfg = Release|x86
    696916                {AE633B61-EA75-40F0-BFF8-04B707FB1159}.Release|x86.Build.0 = Release|x86
     917                {A7BE7721-3F38-4B95-B659-736A1FCA4A67}.Debug|Any CPU.ActiveCfg = Debug|x86
    697918                {A7BE7721-3F38-4B95-B659-736A1FCA4A67}.Debug|x86.ActiveCfg = Debug|x86
    698919                {A7BE7721-3F38-4B95-B659-736A1FCA4A67}.Debug|x86.Build.0 = Debug|x86
     920                {A7BE7721-3F38-4B95-B659-736A1FCA4A67}.Release|Any CPU.ActiveCfg = Release|x86
    699921                {A7BE7721-3F38-4B95-B659-736A1FCA4A67}.Release|x86.ActiveCfg = Release|x86
    700922                {A7BE7721-3F38-4B95-B659-736A1FCA4A67}.Release|x86.Build.0 = Release|x86
     923                {675CF5B3-980B-481C-BBF8-65D9564996EB}.Debug|Any CPU.ActiveCfg = Debug|x86
    701924                {675CF5B3-980B-481C-BBF8-65D9564996EB}.Debug|x86.ActiveCfg = Debug|x86
    702925                {675CF5B3-980B-481C-BBF8-65D9564996EB}.Debug|x86.Build.0 = Debug|x86
     926                {675CF5B3-980B-481C-BBF8-65D9564996EB}.Release|Any CPU.ActiveCfg = Release|x86
    703927                {675CF5B3-980B-481C-BBF8-65D9564996EB}.Release|x86.ActiveCfg = Release|x86
    704928                {675CF5B3-980B-481C-BBF8-65D9564996EB}.Release|x86.Build.0 = Release|x86
     929                {118668D4-613C-4D27-973B-092D5B25A692}.Debug|Any CPU.ActiveCfg = Debug|x86
    705930                {118668D4-613C-4D27-973B-092D5B25A692}.Debug|x86.ActiveCfg = Debug|x86
    706931                {118668D4-613C-4D27-973B-092D5B25A692}.Debug|x86.Build.0 = Debug|x86
     932                {118668D4-613C-4D27-973B-092D5B25A692}.Release|Any CPU.ActiveCfg = Release|x86
    707933                {118668D4-613C-4D27-973B-092D5B25A692}.Release|x86.ActiveCfg = Release|x86
    708934                {118668D4-613C-4D27-973B-092D5B25A692}.Release|x86.Build.0 = Release|x86
     935                {0AE1DE18-FDAA-489A-B658-80F0837E3587}.Debug|Any CPU.ActiveCfg = Debug|x86
    709936                {0AE1DE18-FDAA-489A-B658-80F0837E3587}.Debug|x86.ActiveCfg = Debug|x86
    710937                {0AE1DE18-FDAA-489A-B658-80F0837E3587}.Debug|x86.Build.0 = Debug|x86
     938                {0AE1DE18-FDAA-489A-B658-80F0837E3587}.Release|Any CPU.ActiveCfg = Release|x86
    711939                {0AE1DE18-FDAA-489A-B658-80F0837E3587}.Release|x86.ActiveCfg = Release|x86
    712940                {0AE1DE18-FDAA-489A-B658-80F0837E3587}.Release|x86.Build.0 = Release|x86
     941                {21CF7D7A-50AC-45CF-AA87-E7ADF4201B85}.Debug|Any CPU.ActiveCfg = Debug|x86
    713942                {21CF7D7A-50AC-45CF-AA87-E7ADF4201B85}.Debug|x86.ActiveCfg = Debug|x86
    714943                {21CF7D7A-50AC-45CF-AA87-E7ADF4201B85}.Debug|x86.Build.0 = Debug|x86
     944                {21CF7D7A-50AC-45CF-AA87-E7ADF4201B85}.Release|Any CPU.ActiveCfg = Release|x86
    715945                {21CF7D7A-50AC-45CF-AA87-E7ADF4201B85}.Release|x86.ActiveCfg = Release|x86
    716946                {21CF7D7A-50AC-45CF-AA87-E7ADF4201B85}.Release|x86.Build.0 = Release|x86
     947                {0B94492B-6B12-4233-940A-6AF6024BDA74}.Debug|Any CPU.ActiveCfg = Debug|x86
    717948                {0B94492B-6B12-4233-940A-6AF6024BDA74}.Debug|x86.ActiveCfg = Debug|x86
    718949                {0B94492B-6B12-4233-940A-6AF6024BDA74}.Debug|x86.Build.0 = Debug|x86
     950                {0B94492B-6B12-4233-940A-6AF6024BDA74}.Release|Any CPU.ActiveCfg = Release|x86
    719951                {0B94492B-6B12-4233-940A-6AF6024BDA74}.Release|x86.ActiveCfg = Release|x86
    720952                {0B94492B-6B12-4233-940A-6AF6024BDA74}.Release|x86.Build.0 = Release|x86
     953                {AA75627F-6087-4DEA-9AAB-F19A7835DD1C}.Debug|Any CPU.ActiveCfg = Debug|x86
    721954                {AA75627F-6087-4DEA-9AAB-F19A7835DD1C}.Debug|x86.ActiveCfg = Debug|x86
    722955                {AA75627F-6087-4DEA-9AAB-F19A7835DD1C}.Debug|x86.Build.0 = Debug|x86
     956                {AA75627F-6087-4DEA-9AAB-F19A7835DD1C}.Release|Any CPU.ActiveCfg = Release|x86
    723957                {AA75627F-6087-4DEA-9AAB-F19A7835DD1C}.Release|x86.ActiveCfg = Release|x86
     958                {4C135886-4BC1-4092-A65E-3BA920876559}.Debug|Any CPU.ActiveCfg = Debug|x86
    724959                {4C135886-4BC1-4092-A65E-3BA920876559}.Debug|x86.ActiveCfg = Debug|x86
    725960                {4C135886-4BC1-4092-A65E-3BA920876559}.Debug|x86.Build.0 = Debug|x86
     961                {4C135886-4BC1-4092-A65E-3BA920876559}.Release|Any CPU.ActiveCfg = Release|x86
    726962                {4C135886-4BC1-4092-A65E-3BA920876559}.Release|x86.ActiveCfg = Release|x86
     963                {D7C63148-5AEB-41B2-B39D-E21902EF7121}.Debug|Any CPU.ActiveCfg = Debug|x86
    727964                {D7C63148-5AEB-41B2-B39D-E21902EF7121}.Debug|x86.ActiveCfg = Debug|x86
    728965                {D7C63148-5AEB-41B2-B39D-E21902EF7121}.Debug|x86.Build.0 = Debug|x86
     966                {D7C63148-5AEB-41B2-B39D-E21902EF7121}.Release|Any CPU.ActiveCfg = Release|x86
    729967                {D7C63148-5AEB-41B2-B39D-E21902EF7121}.Release|x86.ActiveCfg = Release|x86
    730968                {D7C63148-5AEB-41B2-B39D-E21902EF7121}.Release|x86.Build.0 = Release|x86
     969                {0946E1A6-5488-4711-AD10-D54D6A5D2F32}.Debug|Any CPU.ActiveCfg = Debug|x86
    731970                {0946E1A6-5488-4711-AD10-D54D6A5D2F32}.Debug|x86.ActiveCfg = Debug|x86
    732971                {0946E1A6-5488-4711-AD10-D54D6A5D2F32}.Debug|x86.Build.0 = Debug|x86
     972                {0946E1A6-5488-4711-AD10-D54D6A5D2F32}.Release|Any CPU.ActiveCfg = Release|x86
    733973                {0946E1A6-5488-4711-AD10-D54D6A5D2F32}.Release|x86.ActiveCfg = Release|x86
    734974                {0946E1A6-5488-4711-AD10-D54D6A5D2F32}.Release|x86.Build.0 = Release|x86
     975                {FF247A82-21AD-4010-B2FB-D93EE2B02677}.Debug|Any CPU.ActiveCfg = Debug|x86
    735976                {FF247A82-21AD-4010-B2FB-D93EE2B02677}.Debug|x86.ActiveCfg = Debug|x86
    736977                {FF247A82-21AD-4010-B2FB-D93EE2B02677}.Debug|x86.Build.0 = Debug|x86
     978                {FF247A82-21AD-4010-B2FB-D93EE2B02677}.Release|Any CPU.ActiveCfg = Release|x86
    737979                {FF247A82-21AD-4010-B2FB-D93EE2B02677}.Release|x86.ActiveCfg = Release|x86
    738980                {FF247A82-21AD-4010-B2FB-D93EE2B02677}.Release|x86.Build.0 = Release|x86
     981                {36F9DD52-9000-4E3D-8299-AD10C479B129}.Debug|Any CPU.ActiveCfg = Debug|x86
    739982                {36F9DD52-9000-4E3D-8299-AD10C479B129}.Debug|x86.ActiveCfg = Debug|x86
    740983                {36F9DD52-9000-4E3D-8299-AD10C479B129}.Debug|x86.Build.0 = Debug|x86
     984                {36F9DD52-9000-4E3D-8299-AD10C479B129}.Release|Any CPU.ActiveCfg = Release|x86
    741985                {36F9DD52-9000-4E3D-8299-AD10C479B129}.Release|x86.ActiveCfg = Release|x86
    742986                {36F9DD52-9000-4E3D-8299-AD10C479B129}.Release|x86.Build.0 = Release|x86
     987                {52E69F19-74A3-4766-8FE5-6F2F0E569E25}.Debug|Any CPU.ActiveCfg = Debug|x86
    743988                {52E69F19-74A3-4766-8FE5-6F2F0E569E25}.Debug|x86.ActiveCfg = Debug|x86
    744989                {52E69F19-74A3-4766-8FE5-6F2F0E569E25}.Debug|x86.Build.0 = Debug|x86
     990                {52E69F19-74A3-4766-8FE5-6F2F0E569E25}.Release|Any CPU.ActiveCfg = Release|x86
    745991                {52E69F19-74A3-4766-8FE5-6F2F0E569E25}.Release|x86.ActiveCfg = Release|x86
    746992                {52E69F19-74A3-4766-8FE5-6F2F0E569E25}.Release|x86.Build.0 = Release|x86
     993                {EDAB9E2E-3320-4C8B-AC6F-013513854786}.Debug|Any CPU.ActiveCfg = Debug|x86
    747994                {EDAB9E2E-3320-4C8B-AC6F-013513854786}.Debug|x86.ActiveCfg = Debug|x86
    748995                {EDAB9E2E-3320-4C8B-AC6F-013513854786}.Debug|x86.Build.0 = Debug|x86
     996                {EDAB9E2E-3320-4C8B-AC6F-013513854786}.Release|Any CPU.ActiveCfg = Release|x86
    749997                {EDAB9E2E-3320-4C8B-AC6F-013513854786}.Release|x86.ActiveCfg = Release|x86
    750998                {EDAB9E2E-3320-4C8B-AC6F-013513854786}.Release|x86.Build.0 = Release|x86
     999                {AEB6BEFA-DC4B-4774-A36F-52A9DFBFE3AA}.Debug|Any CPU.ActiveCfg = Debug|x86
    7511000                {AEB6BEFA-DC4B-4774-A36F-52A9DFBFE3AA}.Debug|x86.ActiveCfg = Debug|x86
    7521001                {AEB6BEFA-DC4B-4774-A36F-52A9DFBFE3AA}.Debug|x86.Build.0 = Debug|x86
     1002                {AEB6BEFA-DC4B-4774-A36F-52A9DFBFE3AA}.Release|Any CPU.ActiveCfg = Release|x86
    7531003                {AEB6BEFA-DC4B-4774-A36F-52A9DFBFE3AA}.Release|x86.ActiveCfg = Release|x86
    7541004                {AEB6BEFA-DC4B-4774-A36F-52A9DFBFE3AA}.Release|x86.Build.0 = Release|x86
     1005                {C35A6E71-D6FE-478B-A12D-FAD54FC4EDC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
     1006                {C35A6E71-D6FE-478B-A12D-FAD54FC4EDC9}.Debug|Any CPU.Build.0 = Debug|Any CPU
     1007                {C35A6E71-D6FE-478B-A12D-FAD54FC4EDC9}.Debug|x86.ActiveCfg = Debug|x86
     1008                {C35A6E71-D6FE-478B-A12D-FAD54FC4EDC9}.Debug|x86.Build.0 = Debug|x86
     1009                {C35A6E71-D6FE-478B-A12D-FAD54FC4EDC9}.Release|Any CPU.ActiveCfg = Release|Any CPU
     1010                {C35A6E71-D6FE-478B-A12D-FAD54FC4EDC9}.Release|Any CPU.Build.0 = Release|Any CPU
     1011                {C35A6E71-D6FE-478B-A12D-FAD54FC4EDC9}.Release|x86.ActiveCfg = Release|x86
     1012                {C35A6E71-D6FE-478B-A12D-FAD54FC4EDC9}.Release|x86.Build.0 = Release|x86
    7551013        EndGlobalSection
    7561014        GlobalSection(SolutionProperties) = preSolution
  • trunk/WorkspaceManagerModel/Execution/ExecutionEngine.cs

    r2756 r2803  
    7171        public bool IsRunning
    7272        {
    73             get{return this.isRunning;}
    74             private set{this.isRunning = value;}
     73            get
     74            {
     75                return this.isRunning;
     76            }
     77            private set
     78            {
     79                this.isRunning = value;
     80                if (this.workspaceModel != null)
     81                {
     82                    this.workspaceModel.IsBeingExecuted = value;
     83                }
     84            }
    7585        }
    7686
     
    8393            if (!IsRunning)
    8494            {
    85                 IsRunning = true;
    8695                this.workspaceModel = workspaceModel;
     96                IsRunning = true;               
    8797
    8898                if (amountThreads <= 0)
     
    190200        /// <param name="message"></param>
    191201        /// <param name="level"></param>
    192         public void GuiLogMessage(string message, NotificationLevel level)
     202        internal void GuiLogMessage(string message, NotificationLevel level)
    193203        {
    194204            if (OnGuiLogNotificationOccured != null)
     
    246256        private void HandleUpdateGui()
    247257        {
    248             //Get the gui Thread
    249             /*this.workspaceModel.Editor.Presentation.Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
     258            if (this.workspaceModel.MyEditor == null)
     259            {
     260                return;
     261            }
     262            //Get the gui Thread from our editor
     263            ((IEditor)this.workspaceModel.MyEditor).Presentation.Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    250264            {
    251265                List<PluginModel> pluginModels = workspaceModel.AllPluginModels;
     
    256270                        pluginModel.GuiNeedsUpdate = false;
    257271                        pluginModel.paint();
    258                         if (pluginModel.UpdateableViewElement != null)
    259                         {
    260                             pluginModel.UpdateableViewElement.update();
     272                        if (pluginModel.UpdateableView != null)
     273                        {
     274                            pluginModel.UpdateableView.update();
    261275                        }
    262276                    }
     
    267281                    if (connectionModel.GuiNeedsUpdate)
    268282                    {
    269                         if (connectionModel.UpdateableViewElement != null)
    270                         {
    271                             connectionModel.UpdateableViewElement.update();
     283                        if (connectionModel.UpdateableView != null)
     284                        {
     285                            connectionModel.UpdateableView.update();
    272286                        }
    273287                    }
    274288                }
    275289            }
    276             , null);
    277             */
     290            , null);           
    278291        }
    279292    }
     
    321334            sb.Append(" Plugins/s");
    322335
    323            // this.workspaceModel.Editor.GuiLogMessage(sb.ToString(), NotificationLevel.Debug);         
     336            this.executionEngine.GuiLogMessage(sb.ToString(), NotificationLevel.Debug);         
    324337            this.executionEngine.ExecutedPluginsCounter = 0;
    325338        }       
     
    458471                catch (Exception ex)
    459472                {
    460                     //this.PluginModel.WorkspaceModel.Editor.GuiLogMessage("An error occured while setting value of connector \"" + connectorModel.Name + "\" of \"" + PluginModel.Name + "\": " + ex.Message, NotificationLevel.Error);
     473                    this.executionEngine.GuiLogMessage("An error occured while setting value of connector \"" + connectorModel.Name + "\" of \"" + PluginModel.Name + "\": " + ex.Message, NotificationLevel.Error);
    461474                    this.PluginModel.State = PluginModelState.Error;
    462475                    this.PluginModel.GuiNeedsUpdate = true;
     
    474487            }
    475488            catch (Exception ex)
    476             {       
    477                 //this.PluginModel.WorkspaceModel.Editor.GuiLogMessage("An error occured while executing  \"" + PluginModel.Name + "\": " + ex.Message, NotificationLevel.Error);
     489            {
     490                this.executionEngine.GuiLogMessage("An error occured while executing  \"" + PluginModel.Name + "\": " + ex.Message, NotificationLevel.Error);
    478491                this.PluginModel.State = PluginModelState.Error;
    479492                this.PluginModel.GuiNeedsUpdate = true;
     
    502515                        connectorModel.HasData = false;
    503516                        connectorModel.Data = null;
     517                        foreach(ConnectionModel connectionModel in connectorModel.GetInputConnections())
     518                        {
     519
     520                        }
    504521                    }
    505522                }
    506523                catch (Exception ex)
    507524                {
    508                     //this.PluginModel.WorkspaceModel.Editor.GuiLogMessage("An error occured while 'consuming' value of connector \"" + connectorModel.Name + "\" of \"" + PluginModel.Name + "\": " + ex.Message, NotificationLevel.Error);
     525                    this.executionEngine.GuiLogMessage("An error occured while 'consuming' value of connector \"" + connectorModel.Name + "\" of \"" + PluginModel.Name + "\": " + ex.Message, NotificationLevel.Error);
    509526                    this.PluginModel.State = PluginModelState.Error;
    510527                    this.PluginModel.GuiNeedsUpdate = true;
     
    520537            {
    521538                Thread.Sleep(this.executionEngine.SleepTime);
     539            }
     540
     541            // ################
     542            //7. check if an "input" plugin may execute
     543            // ################
     544
     545            foreach (ConnectorModel connectorModel in inputConnectors)
     546            {
     547                List<ConnectionModel> inputConnections = connectorModel.InputConnections;
     548                foreach (ConnectionModel connectionModel in inputConnections)
     549                {
     550                    connectionModel.Active = false;
     551                    connectionModel.GuiNeedsUpdate = true;
     552                }
     553                foreach (ConnectionModel connectionModel in inputConnections)
     554                {
     555                    if (!connectionModel.From.PluginModel.Startable ||
     556                        (connectionModel.From.PluginModel.Startable && connectionModel.From.PluginModel.RepeatStart))
     557                    {
     558                        connectionModel.From.PluginModel.PluginProtocol.BroadcastMessage(connectionModel.From.PluginModel.MessageExecution);
     559                    }
     560                }
    522561            }
    523562        }       
  • trunk/WorkspaceManagerModel/Model/Elements/ConnectorModel.cs

    r2747 r2803  
    2323using WorkspaceManager.Execution;
    2424using System.Threading;
     25using System.Collections.ObjectModel;
    2526
    2627namespace WorkspaceManager.Model
     
    126127        /// The InputConnections of this ConnectorModel
    127128        /// </summary>
    128         public List<ConnectionModel> InputConnections;
     129        internal List<ConnectionModel> InputConnections;
     130
     131        /// <summary>
     132        /// Get the input connections of this ConnectorModel
     133        /// </summary>
     134        /// <returns></returns>
     135        public ReadOnlyCollection<ConnectionModel> GetInputConnections()
     136        {
     137            return InputConnections.AsReadOnly();
     138        }
    129139
    130140        /// <summary>
    131141        /// The OutputConnections of this ConnectorModel
    132142        /// </summary>
    133         public List<ConnectionModel> OutputConnections;
     143        internal List<ConnectionModel> OutputConnections;
     144
     145        /// <summary>
     146        /// Get the output connections of this ConnectorModel
     147        /// </summary>
     148        /// <returns></returns>
     149        public ReadOnlyCollection<ConnectionModel> GetOutputConnections()
     150        {
     151            return OutputConnections.AsReadOnly();
     152        }
    134153
    135154        /// <summary>
     
    219238        public void PropertyChangedOnPlugin(Object sender, PropertyChangedEventArgs propertyChangedEventArgs)
    220239        {
     240            if (!this.WorkspaceModel.IsBeingExecuted)
     241            {
     242                return;
     243            }
     244
    221245            if (!(sender == this.PluginModel.Plugin) ||
    222246                !propertyChangedEventArgs.PropertyName.Equals(PropertyName))
     
    251275
    252276                if (data == null)
    253                 {
    254                     return;
    255                 }
    256 
    257                 this.Data = data;
    258 
    259                 List<ConnectionModel> outputConnections = this.OutputConnections;
    260                 foreach (ConnectionModel connectionModel in outputConnections)
    261                 {
    262                     connectionModel.To.Data = data;
    263                     connectionModel.To.HasData = true;
    264                     connectionModel.Active = true;
    265                     connectionModel.GuiNeedsUpdate = true;
    266                 }
    267 
    268                 //We changed an input on the PluginModels where "To"s are belonging to so
    269                 //we have to check if there are executable now
    270                 foreach (ConnectionModel connectionModel in outputConnections)
    271                 {
    272                     if (connectionModel.To.PluginModel.PluginProtocol.QueueLength == 0)
    273                     {
    274                         connectionModel.To.PluginModel.PluginProtocol.BroadcastMessage(connectionModel.To.PluginModel.MessageExecution);
    275                     }
    276                 }
    277             }
    278             else
    279             {
    280                 this.Data = null;
    281                 this.hasData = false;
    282                 this.GuiNeedsUpdate = true;
    283 
    284                 List<ConnectionModel> inputConnections = this.InputConnections;
    285                 foreach (ConnectionModel connectionModel in inputConnections)
    286                 {
    287                     connectionModel.Active = false;
    288                     connectionModel.GuiNeedsUpdate = true;
    289                 }
    290                 foreach (ConnectionModel connectionModel in inputConnections)
    291                 {
    292                     if (!connectionModel.From.PluginModel.Startable ||
    293                         (connectionModel.From.PluginModel.Startable && connectionModel.From.PluginModel.RepeatStart))
    294                     {
    295                         if (connectionModel.From.PluginModel.PluginProtocol.QueueLength == 0)
    296                         {
    297                             connectionModel.From.PluginModel.PluginProtocol.BroadcastMessage(connectionModel.From.PluginModel.MessageExecution);
    298                         }
    299                     }
    300                 }
     277                    {
     278                        return;
     279                    }
     280       
     281                    this.Data = data;
     282       
     283                    List<ConnectionModel> outputConnections = this.OutputConnections;
     284                    foreach (ConnectionModel connectionModel in outputConnections)
     285                    {
     286                        connectionModel.To.Data = data;
     287                        connectionModel.To.HasData = true;
     288                        connectionModel.Active = true;
     289                        connectionModel.GuiNeedsUpdate = true;
     290                    }
     291       
     292                    //We changed an input on the PluginModels where "To"s are belonging to so
     293                    //we have to check if there are executable now
     294                    foreach (ConnectionModel connectionModel in outputConnections)
     295                    {
     296                        connectionModel.To.PluginModel.PluginProtocol.BroadcastMessage(connectionModel.To.PluginModel.MessageExecution);
     297                    }
    301298            }
    302299        }
  • trunk/WorkspaceManagerModel/Model/Elements/PluginModel.cs

    r2789 r2803  
    175175        /// Current View state
    176176        /// </summary>
    177         public PluginViewState ViewState { get; internal set; }
     177        public PluginViewState ViewState { get; set; }
    178178
    179179        /// <summary>
  • trunk/WorkspaceManagerModel/Model/Elements/VisualElementModel.cs

    r2794 r2803  
    7878        /// </summary>
    7979        [NonSerialized]
    80         public UpdateableView UpdateableView = null;
     80        public IUpdateableView UpdateableView = null;
    8181
    8282        /// <summary>
  • trunk/WorkspaceManagerModel/Model/Elements/WorkspaceModel.cs

    r2794 r2803  
    3737    public class WorkspaceModel : VisualElementModel
    3838    {
     39
     40        /// <summary>
     41        /// The executing editor
     42        /// </summary>
    3943        [NonSerialized]
    4044        private IEditor myEditor;
     
    4650        }
    4751
     52        /// <summary>
     53        /// Create a new WorkspaceModel
     54        /// </summary>
    4855        public WorkspaceModel()
    4956        {
     
    7178                hasChanges = value;
    7279            }
     80        }
     81
     82        /// <summary>
     83        /// Tell this model if its executed or not
     84        /// </summary>
     85        [NonSerialized]
     86        private bool beingExecuted = false;
     87        internal bool IsBeingExecuted
     88        {
     89            get { return beingExecuted; }
     90            set { beingExecuted = value; }
    7391        }
    7492
     
    158176            pluginModel.generateConnectors();
    159177            pluginModel.Plugin.Initialize();
    160             //pluginModel.Plugin.OnGuiLogNotificationOccured += pluginModel.GuiLogNotificationOccured;
     178            pluginModel.Plugin.OnGuiLogNotificationOccured += this.GuiLogMessage;
    161179            pluginModel.Plugin.OnPluginProgressChanged += pluginModel.PluginProgressChanged;
    162180            pluginModel.Plugin.OnPluginStatusChanged += pluginModel.PluginStatusChanged;
     
    295313        {
    296314            ImageModel imageModel = new ImageModel(imgUri);
     315            imageModel.WorkspaceModel = this;
    297316            this.AllImageModels.Add(imageModel);
    298317            this.HasChanges = true;
     
    302321
    303322        /// <summary>
     323        /// Add ImageModel containing the under imgUri stored Image
     324        /// </summary>
     325        /// <param name="imgUri"></param>
     326        /// <returns></returns>
     327        internal void addImageModel(ImageModel imageModel)
     328        {
     329            this.AllImageModels.Add(imageModel);
     330            this.HasChanges = true;
     331            this.OnNewChildElement(imageModel);
     332        }
     333
     334        /// <summary>
    304335        /// Creates a new TextModel
    305336        /// </summary>
     
    309340        {
    310341            TextModel textModel = new TextModel();
     342            textModel.WorkspaceModel = this;
    311343            this.AllTextModels.Add(textModel);
    312344            this.HasChanges = true;
    313345            this.OnNewChildElement(textModel);
    314346            return textModel;
     347        }
     348
     349        /// <summary>
     350        /// Add a TextModel to this WorkspaceModel
     351        /// </summary>
     352        /// <param name="imgUri"></param>
     353        /// <returns></returns>
     354        internal void addTextModel(TextModel textModel)
     355        {
     356            this.AllTextModels.Add(textModel);
     357            this.HasChanges = true;
     358            this.OnNewChildElement(textModel);
    315359        }
    316360
     
    457501
    458502        /// <summary>
     503        /// "Something" logged
     504        /// </summary>
     505        [field: NonSerialized]
     506        public event GuiLogNotificationEventHandler OnGuiLogNotificationOccured;
     507
     508        /// <summary>
    459509        /// A childs position of this WorkspaceModel changed
     510        /// </summary>     
     511        [field:NonSerialized]
     512        public event EventHandler<PositionArgs> ChildPositionChanged;
     513
     514        /// <summary>
     515        /// A childs size of this WorkspaceModel changed
    460516        /// </summary>
    461517        [field: NonSerialized]
    462         public event PositionChangedEventHandler ChildPositionChanged;
    463 
    464         /// <summary>
    465         /// A childs size of this WorkspaceModel changed
     518        public event EventHandler<SizeArgs> ChildSizeChanged;
     519
     520        /// <summary>
     521        /// A child of this WorkspaceModel is created
    466522        /// </summary>
    467523        [field: NonSerialized]
    468         public event SizeChangedEventHandler ChildSizeChanged;
    469 
    470         /// <summary>
    471         /// A child of this WorkspaceModel is created
     524        public event EventHandler<ModelArgs> NewChildElement;
     525
     526        /// <summary>
     527        /// A child of this WorkspaceModel is deleted
    472528        /// </summary>
    473529        [field: NonSerialized]
    474         public event NewChildElementEventHandler NewChildElement;
    475 
    476         /// <summary>
    477         /// A child of this WorkspaceModel is deleted
    478         /// </summary>
    479         [field: NonSerialized]
    480         public event DeleteChildElementEventHandler DeletedChildElement;
     530        public event EventHandler<ModelArgs> DeletedChildElement;
     531
     532        /// <summary>
     533        /// Loggs a gui message
     534        /// </summary>
     535        /// <param name="message"></param>
     536        /// <param name="level"></param>
     537        internal void GuiLogMessage(IPlugin sender, GuiLogEventArgs args)
     538        {
     539            if (OnGuiLogNotificationOccured != null)
     540            {
     541                OnGuiLogNotificationOccured(sender, args);
     542            }
     543        }
     544
    481545
    482546        /// <summary>
     
    533597            }
    534598        }
    535    
     599
    536600        /// <summary>
    537601        /// Checks wether a Connector and a Connector are compatible to be connected
     
    621685        }
    622686    }
    623    
    624     public delegate void PositionChangedEventHandler(VisualElementModel model, PositionArgs args);
    625     public delegate void SizeChangedEventHandler(VisualElementModel model, SizeArgs args);
    626     public delegate void NewChildElementEventHandler(VisualElementModel model, ModelArgs args);
    627     public delegate void DeleteChildElementEventHandler(VisualElementModel model, ModelArgs args);
    628687}
  • trunk/WorkspaceManagerModel/Model/Interfaces/IUpdateableViewElement.cs

    r2789 r2803  
    2222namespace WorkspaceManagerModel.Model.Interfaces
    2323{
    24     public interface UpdateableView
     24    public interface IUpdateableView
    2525    {
    2626        void update();
  • trunk/WorkspaceManagerModel/Model/Operations/Operations.cs

    r2794 r2803  
    185185
    186186    /// <summary>
     187    /// Creates a new ImageModel
     188    /// </summary>
     189    public class NewImageModelOperation : Operation
     190    {
     191        private Uri ImgUri;
     192
     193        public NewImageModelOperation(Uri imgUri)
     194            : base(null)
     195        {
     196            this.ImgUri = imgUri;           
     197        }
     198
     199        #region Operation Members
     200
     201        internal override object Execute(WorkspaceModel workspaceModel)
     202        {
     203            if (this.Model == null)
     204            {
     205                this.Model = workspaceModel.newImageModel(ImgUri);
     206            }
     207            else
     208            {
     209                workspaceModel.addImageModel((ImageModel)Model);
     210            }
     211            return this.Model;
     212        }
     213
     214        internal override void Undo(WorkspaceModel workspaceModel)
     215        {
     216            workspaceModel.deleteImageModel((ImageModel)this.Model);
     217        }
     218
     219        #endregion
     220    }
     221
     222    /// <summary>
     223    /// Deletes an ImageModel
     224    /// </summary>
     225    public class DeleteImageModelOperation : Operation
     226    {
     227        public DeleteImageModelOperation(ImageModel model) :
     228            base(model)
     229        {
     230        }
     231
     232        #region Operation Members
     233
     234        internal override object Execute(WorkspaceModel workspaceModel)
     235        {
     236            workspaceModel.deleteImageModel((ImageModel)Model);
     237            return true;
     238        }
     239
     240        internal override void Undo(WorkspaceModel workspaceModel)
     241        {
     242            workspaceModel.addImageModel((ImageModel)this.Model);
     243        }
     244
     245        #endregion
     246    }
     247
     248    /// <summary>
     249    /// Creates a new TextModel
     250    /// </summary>
     251    public class NewTextModelOperation : Operation
     252    {
     253        public NewTextModelOperation()
     254            : base(null)
     255        {
     256        }
     257
     258        #region Operation Members
     259
     260        internal override object Execute(WorkspaceModel workspaceModel)
     261        {
     262            if (this.Model == null)
     263            {
     264                this.Model = workspaceModel.newTextModel();
     265            }
     266            else
     267            {
     268                workspaceModel.addTextModel((TextModel)Model);
     269            }
     270            return this.Model;
     271        }
     272
     273        internal override void Undo(WorkspaceModel workspaceModel)
     274        {
     275            workspaceModel.deleteTextModel((TextModel)this.Model);
     276        }
     277
     278        #endregion
     279    }
     280
     281    /// <summary>
     282    /// Deletes a TextModel
     283    /// </summary>
     284    public class DeleteTextModelOperation : Operation
     285    {
     286        public DeleteTextModelOperation(TextModel model) :
     287            base(model)
     288        {
     289        }
     290
     291        #region Operation Members
     292
     293        internal override object Execute(WorkspaceModel workspaceModel)
     294        {
     295            workspaceModel.deleteTextModel((TextModel)Model);
     296            return true;
     297        }
     298
     299        internal override void Undo(WorkspaceModel workspaceModel)
     300        {
     301            workspaceModel.addTextModel((TextModel)this.Model);
     302        }
     303
     304        #endregion
     305    }
     306
     307
     308    /// <summary>
    187309    /// Moves the Position of an existing VisualElementModel
    188310    /// </summary>
  • trunk/WorkspaceManagerModel/Model/Tools/ModelPersistance.cs

    r2756 r2803  
    102102                        }catch(Exception ex)
    103103                        {
    104                             //workspaceManagerEditor.GuiLogMessage("Could not restore the setting \"" + persistantSetting.Name + "\" of plugin \"" + persistantPlugin.PluginModel.Name + "\" because of:" + ex.Message,NotificationLevel.Warning);
     104                            throw new Exception("Could not restore the setting \"" + persistantSetting.Name + "\" of plugin \"" + persistantPlugin.PluginModel.Name + "\"", ex);
    105105                        }
    106106                    }
     
    117117                catch(Exception ex)
    118118                {
    119                     //workspaceManagerEditor.GuiLogMessage("Error while initializing \"" + pluginModel.Name + "\". Surely plugin will not work well. Error was:" + ex.Message,NotificationLevel.Error);
    120                 }
    121                 //pluginModel.Plugin.OnGuiLogNotificationOccured += workspaceManagerEditor.GuiLogNotificationOccured;
    122                 //pluginModel.Plugin.OnGuiLogNotificationOccured += pluginModel.GuiLogNotificationOccured;
     119                    throw new Exception("Error while initializing \"" + pluginModel.Name + "\".", ex);
     120                }
     121                pluginModel.Plugin.OnGuiLogNotificationOccured += workspacemodel.GuiLogMessage;
    123122                pluginModel.Plugin.OnPluginProgressChanged += pluginModel.PluginProgressChanged;               
    124123                pluginModel.Plugin.OnPluginStatusChanged += pluginModel.PluginStatusChanged;               
     
    179178                }catch(Exception ex)
    180179                {
    181                     //workspaceManagerEditor.GuiLogMessage("Error while restoring IControl Connection between \"" + from.PluginModel.Name + "\" to \"" + to.PluginModel.Name + "\". Workspace surely will not work well. Error was:" + ex.Message, NotificationLevel.Error);
     180                    throw new Exception("Error while restoring IControl Connection between \"" + from.PluginModel.Name + "\" to \"" + to.PluginModel.Name + "\". Workspace surely will not work well.",ex);
    182181                }
    183182            }
  • trunk/WorkspaceManagerModel/Model/Tools/UndoRedoManager.cs

    r2794 r2803  
    7878                VisualElementModel model = op.Model;
    7979                while (UndoStack.Count > 0 &&
     80                    op.GetType().Equals(UndoStack.Peek().GetType()) &&
    8081                    Object.ReferenceEquals(UndoStack.Peek().Model, model) &&
    81                     UndoStack.Peek() is MoveModelElementOperation)
     82                    (UndoStack.Peek() is MoveModelElementOperation ||
     83                    UndoStack.Peek() is ResizeModelElementOperation))
    8284                {
    8385                    op = UndoStack.Pop();
     
    112114                VisualElementModel model = op.Model;
    113115                while (RedoStack.Count > 0 &&
     116                    op.GetType().Equals(RedoStack.Peek().GetType()) &&
    114117                    Object.ReferenceEquals(RedoStack.Peek().Model, model) &&
    115                     RedoStack.Peek() is MoveModelElementOperation)
     118                    (RedoStack.Peek() is MoveModelElementOperation ||
     119                    RedoStack.Peek() is ResizeModelElementOperation))
    116120                {
    117121                    op = RedoStack.Pop();
    118122                    op.Execute(WorkspaceModel);
    119123                    UndoStack.Push(op);
    120                     model = op.Model;
     124                    model = op.Model;                   
    121125                }
    122126            }
  • trunk/WorkspaceManagerModel/Model/Tools/XMLSerialization.cs

    r2766 r2803  
    417417                try
    418418                {
    419                     newObject = Type.GetType(type.InnerText).GetConstructor(BindingFlags.NonPublic |
     419                    //hack: to allow "old" models being loaded (because some model elements were in model namespace before
     420                    //creating new model)
     421                    string name = type.InnerText.Replace("WorkspaceManager.View.Container", "WorkspaceManager.Model");
     422                    newObject = Type.GetType(name).GetConstructor(BindingFlags.NonPublic |
    420423                                    BindingFlags.Instance | BindingFlags.Public,
    421424                                    null, new Type[0], null).Invoke(null);
     
    518521                            else
    519522                            {
     523                                //hack: to allow "old" models being loaded (because some model elements were in model namespace before
     524                                //creating new model)
     525                                string name = membertype.InnerText.Replace("WorkspaceManager.View.Container", "WorkspaceManager.Model");
    520526                                newmember =
    521                                     System.Activator.CreateInstance(Type.GetType(RevertXMLSymbols(membertype.InnerText)));
     527                                    System.Activator.CreateInstance(Type.GetType(RevertXMLSymbols(name)));
    522528
    523529                                if (newmember is Enum)
     
    525531                                    Int32 result = 0;
    526532                                    System.Int32.TryParse(RevertXMLSymbols(value.InnerText), out result);
     533                                   
     534                                    //hack: to allow "old" models being loaded (because some model elements were in model namespace before
     535                                    //creating new model)
     536                                    name = membertype.InnerText.Replace("WorkspaceManager.View.Container", "WorkspaceManager.Model");
     537                               
    527538                                    object newEnumValue =
    528                                         Enum.ToObject(Type.GetType(RevertXMLSymbols(membertype.InnerText)), result);
     539                                        Enum.ToObject(Type.GetType(RevertXMLSymbols(name)), result);
    529540
    530541                                    newObject.GetType().GetField(RevertXMLSymbols(membername.InnerText),
  • trunk/WorkspaceManagerModel/WorkspaceManagerModel.csproj

    r2794 r2803  
    1313    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    1414    <FileAlignment>512</FileAlignment>
     15    <TargetFrameworkProfile>
     16    </TargetFrameworkProfile>
    1517  </PropertyGroup>
    1618  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     
    3032    <ErrorReport>prompt</ErrorReport>
    3133    <WarningLevel>4</WarningLevel>
     34  </PropertyGroup>
     35  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
     36    <DebugSymbols>true</DebugSymbols>
     37    <OutputPath>bin\x86\Debug\</OutputPath>
     38    <DefineConstants>DEBUG;TRACE</DefineConstants>
     39    <DebugType>full</DebugType>
     40    <PlatformTarget>x86</PlatformTarget>
     41    <CodeAnalysisLogFile>bin\Debug\WorkspaceManagerModel.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
     42    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
     43    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
     44    <ErrorReport>prompt</ErrorReport>
     45    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
     46    <CodeAnalysisRuleSetDirectories>;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
     47    <CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
     48    <CodeAnalysisRuleDirectories>;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
     49    <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
     50    <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
     51  </PropertyGroup>
     52  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
     53    <OutputPath>bin\x86\Release\</OutputPath>
     54    <DefineConstants>TRACE</DefineConstants>
     55    <Optimize>true</Optimize>
     56    <DebugType>pdbonly</DebugType>
     57    <PlatformTarget>x86</PlatformTarget>
     58    <CodeAnalysisLogFile>bin\Release\WorkspaceManagerModel.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
     59    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
     60    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
     61    <ErrorReport>prompt</ErrorReport>
     62    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
     63    <CodeAnalysisRuleSetDirectories>;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
     64    <CodeAnalysisRuleDirectories>;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
    3265  </PropertyGroup>
    3366  <ItemGroup>
Note: See TracChangeset for help on using the changeset viewer.