Changeset 1791


Ignore:
Timestamp:
Aug 9, 2010, 10:33:44 PM (11 years ago)
Author:
kopal
Message:
  • Plugins without Presentation now can not be maximized
  • Enum Settings will be saved/loaded correctly now
  • Change of Settings (which have a PropertyChangedEvent) will cause editor to have "hasChanges"
Location:
trunk/CrypPlugins/WorkspaceManager
Files:
5 edited

Legend:

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

    r1790 r1791  
    8282                                    pInfo.SetValue(persistantPlugin.PluginModel.Plugin.Settings, System.Boolean.Parse((String)persistantSetting.Value), null);
    8383                                }
     84                                else if (pInfo.PropertyType.IsEnum)
     85                                {
     86                                    Int32 result = 0;
     87                                    System.Int32.TryParse((String)persistantSetting.Value, out result);
     88                                    object newEnumValue = Enum.ToObject(pInfo.PropertyType, result);
     89                                    pInfo.SetValue(persistantPlugin.PluginModel.Plugin.Settings,newEnumValue,null);                                   
     90                                }
    8491                            }
    8592                        }
     
    96103                pluginModel.Plugin.OnPluginProgressChanged += pluginModel.PluginProgressChanged;
    97104                pluginModel.Plugin.OnPluginStatusChanged += pluginModel.PluginStatusChanged;
     105                pluginModel.Plugin.Settings.PropertyChanged += pluginModel.SettingsPropertyChanged;
    98106            }
    99107               
     
    174182                    {
    175183                        PersistantSetting persistantSetting = new PersistantSetting();
    176                         persistantSetting.Value = "" + pInfo.GetValue(pluginModel.Plugin.Settings, null);
     184                        if (pInfo.PropertyType.IsEnum)
     185                        {
     186                            persistantSetting.Value = "" + pInfo.GetValue(pluginModel.Plugin.Settings, null).GetHashCode();                           
     187                        }
     188                        else
     189                        {
     190                            persistantSetting.Value = "" + pInfo.GetValue(pluginModel.Plugin.Settings, null);
     191                        }
    177192                        persistantSetting.Name = pInfo.Name;
    178193                        persistantSetting.Type = pInfo.PropertyType.FullName;
  • trunk/CrypPlugins/WorkspaceManager/Model/PluginModel.cs

    r1790 r1791  
    2828using Cryptool.PluginBase.IO;
    2929using System.Reflection;
     30using System.ComponentModel;
    3031
    3132namespace WorkspaceManager.Model
     
    372373        }
    373374
     375        /// <summary>
     376        /// Called if a Setting of a Plugin is changed and notifies the Editor that
     377        /// there is a change
     378        /// </summary>
     379        /// <param name="sender"></param>
     380        /// <param name="propertyChangedEventArgs"></param>
     381        public void SettingsPropertyChanged(Object sender, PropertyChangedEventArgs propertyChangedEventArgs)
     382        {
     383            this.WorkspaceModel.WorkspaceManagerEditor.HasChanges = true;
     384        }
     385
    374386        #endregion
    375387    }
  • trunk/CrypPlugins/WorkspaceManager/Model/WorkspaceModel.cs

    r1790 r1791  
    9696            pluginModel.Plugin.OnGuiLogNotificationOccured += pluginModel.GuiLogNotificationOccured;
    9797            pluginModel.Plugin.OnPluginProgressChanged += pluginModel.PluginProgressChanged;
    98             pluginModel.Plugin.OnPluginStatusChanged += pluginModel.PluginStatusChanged;           
     98            pluginModel.Plugin.OnPluginStatusChanged += pluginModel.PluginStatusChanged;
     99            pluginModel.Plugin.Settings.PropertyChanged += pluginModel.SettingsPropertyChanged;
    99100            this.AllPluginModels.Add(pluginModel);
    100101            this.WorkspaceManagerEditor.HasChanges = true;
  • trunk/CrypPlugins/WorkspaceManager/Model/XMLSerialization.cs

    r1787 r1791  
    5757        {
    5858
    59             FileStream sourceFile = File.OpenWrite(filename);
     59            FileStream sourceFile = File.Create(filename);
    6060            if (compress)
    6161            {
  • trunk/CrypPlugins/WorkspaceManager/View/Container/PluginContainerView.xaml.cs

    r1790 r1791  
    294294            this.Icon.Height = 40;
    295295
    296             if (this.Model.Minimized == true)
     296            if (this.Model.Minimized == true || this.Model.PluginPresentation == null)
    297297            {
    298298                this.PresentationPanel.Child = this.Icon;
     
    386386        private void MinMaxBorder_MouseLeftButtonDown(object sender, RoutedEventArgs e)
    387387        {
    388             if (model.Minimized == true)
     388            if (model.Minimized == false || model.PluginPresentation == null)
     389            {
     390                PluginBase.MinHeight = MinHeight;
     391                PluginBase.MinWidth = MinWidth;
     392                PluginBase.Width = MinWidth;
     393                PluginBase.Height = MinHeight;
     394                BottomDelta.IsEnabled = false;
     395                RightDelta.IsEnabled = false;
     396                BottomRightDelta.IsEnabled = false;
     397                PresentationPanel.Child = this.Icon;
     398                model.Minimized = true;
     399                MinMaxImage.Source = new BitmapImage(new Uri("/WorkspaceManager;component/View/Image/Max.png", UriKind.RelativeOrAbsolute));
     400            }
     401            else
    389402            {
    390403                PluginBase.MinHeight = model.MinHeight;
     
    399412                MinMaxImage.Source = new BitmapImage(new Uri("/WorkspaceManager;component/View/Image/Min.png", UriKind.RelativeOrAbsolute));
    400413            }
    401             else
    402             {
    403                 PluginBase.MinHeight = MinHeight;
    404                 PluginBase.MinWidth = MinWidth;
    405                 PluginBase.Width = MinWidth;
    406                 PluginBase.Height = MinHeight;
    407                 BottomDelta.IsEnabled = false;
    408                 RightDelta.IsEnabled = false;
    409                 BottomRightDelta.IsEnabled = false;
    410                 PresentationPanel.Child = this.Icon;
    411                 model.Minimized = true;
    412                 MinMaxImage.Source = new BitmapImage(new Uri("/WorkspaceManager;component/View/Image/Max.png", UriKind.RelativeOrAbsolute));
    413             }
    414414
    415415            //foreach (ConnectorView connector in connectorViewList)
Note: See TracChangeset for help on using the changeset viewer.