Changeset 1895


Ignore:
Timestamp:
Sep 2, 2010, 4:38:18 PM (11 years ago)
Author:
kopal
Message:
  • removed Parent because it did not work well (have to implement new Parent concept)
  • TextModels (RichTextBox) data is now saved/loaded
Location:
trunk/CrypPlugins/WorkspaceManager
Files:
8 edited

Legend:

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

    r1892 r1895  
    6868
    6969        /// <summary>
     70        /// The WorkspaceModel of this ImageModel
     71        /// </summary>
     72        public WorkspaceModel WorkspaceModel { get; set; }
     73
     74        /// <summary>
    7075        /// is the image enabled ?
    7176        /// </summary>
  • trunk/CrypPlugins/WorkspaceManager/Model/ModelPersistance.cs

    r1878 r1895  
    102102                pluginModel.Plugin.OnGuiLogNotificationOccured += pluginModel.GuiLogNotificationOccured;
    103103                pluginModel.Plugin.OnPluginProgressChanged += pluginModel.PluginProgressChanged;               
    104                 pluginModel.Plugin.OnPluginStatusChanged += pluginModel.PluginStatusChanged;
    105                 if (pluginModel.Parent == null)
    106                 {
    107                     pluginModel.Parent = workspacemodel;
    108                 }
     104                pluginModel.Plugin.OnPluginStatusChanged += pluginModel.PluginStatusChanged;               
    109105                if (pluginModel.Plugin.Settings != null)
    110106                {
  • trunk/CrypPlugins/WorkspaceManager/Model/PluginModel.cs

    r1892 r1895  
    190190                        connectorModel.IControl = false;
    191191                        connectorModel.PluginModel.Plugin.PropertyChanged += connectorModel.PropertyChangedOnPlugin;
    192                         connectorModel.Parent = this;
    193192                        InputConnectors.Add(connectorModel);
    194193                        WorkspaceModel.AllConnectorModels.Add(connectorModel);
     
    206205                        connectorModel.IControl = true;
    207206                        connectorModel.PluginModel.Plugin.PropertyChanged += connectorModel.PropertyChangedOnPlugin;
    208                         connectorModel.Parent = this;
    209207                        InputConnectors.Add(connectorModel);
    210208                        WorkspaceModel.AllConnectorModels.Add(connectorModel);
     
    223221                        connectorModel.IControl = false;
    224222                        connectorModel.PluginModel.Plugin.PropertyChanged += connectorModel.PropertyChangedOnPlugin;
    225                         connectorModel.Parent = this;
    226223                        OutputConnectors.Add(connectorModel);
    227224                        WorkspaceModel.AllConnectorModels.Add(connectorModel);
     
    240237                        connectorModel.IControl = true;
    241238                        connectorModel.PluginModel.Plugin.PropertyChanged += connectorModel.PropertyChangedOnPlugin;
    242                         connectorModel.Parent = this;
    243239                        OutputConnectors.Add(connectorModel);
    244240                        WorkspaceModel.AllConnectorModels.Add(connectorModel);
     
    268264                            connectorModel.DynamicSetterName = dynamicPropertyInfoAttribute.MethodSetValue;
    269265                            connectorModel.PluginModel.Plugin.PropertyChanged += connectorModel.PropertyChangedOnPlugin;
    270                             connectorModel.Parent = this;
    271266                            eventinfo.AddEventHandler(Plugin, new DynamicPropertiesChanged(connectorModel.PropertyTypeChangedOnPlugin));                           
    272267                            InputConnectors.Add(connectorModel);
     
    289284                            connectorModel.DynamicSetterName = dynamicPropertyInfoAttribute.MethodSetValue;
    290285                            connectorModel.PluginModel.Plugin.PropertyChanged += connectorModel.PropertyChangedOnPlugin;
    291                             connectorModel.Parent = this;
    292286                            connectorModel.Outgoing = true;
    293287                            OutputConnectors.Add(connectorModel);
     
    440434        {
    441435            this.WorkspaceModel.WorkspaceManagerEditor.HasChanges = true;
    442         }
    443 
    444         /// <summary>
    445         /// Get the children of this PluginModel by iterating through all PluginModels of
    446         /// the WorkSpace this PluginModel belongs to. All Plugins having this one as Parent
    447         /// are returned in this list
    448         /// </summary>
    449         /// <returns></returns>
    450         public List<PluginModel> getChildren()
    451         {
    452             List<PluginModel> children = new List<PluginModel>();
    453          
    454             foreach (PluginModel pluginModel in this.WorkspaceModel.AllPluginModels)
    455             {
    456                 if (pluginModel.Parent == this)
    457                 {
    458                     children.Add(pluginModel);
    459                 }
    460             }           
    461             return children;
    462         }
     436        }       
    463437
    464438        #endregion
  • trunk/CrypPlugins/WorkspaceManager/Model/TextModel.cs

    r1892 r1895  
    33using System.Linq;
    44using System.Text;
     5using System.IO;
     6using System.Windows.Documents;
     7using System.Windows.Controls;
    58
    69namespace WorkspaceManager.Model
     
    1215    public class TextModel : VisualElementModel
    1316    {
    14         private string text = null;
     17        private byte[] data = null;
    1518
    1619        /// <summary>
     
    1922        public TextModel()
    2023        {
    21             this.text = "";
     24           
    2225        }
    2326
     
    2629        /// </summary>
    2730        /// <param name="text"></param>
    28         public TextModel(string text)
     31        public TextModel(byte[] data)
    2932        {
    30             this.text = text;
     33            this.data = data;
    3134        }
    3235
    3336        /// <summary>
    34         /// Get/Set the text
     37        /// The WorkspaceModel of this TextModel
    3538        /// </summary>
    36         public string Text
    37         {
    38             get { return this.text; }
    39             set { this.text = value; }
     39        public WorkspaceModel WorkspaceModel { get; set; }
     40
     41        /// <summary>
     42        /// Loads the Content of this TextModel to the given RichtTextBox
     43        /// </summary>
     44        /// <param name="rtb"></param>
     45        public void loadRTB(RichTextBox rtb){
     46           
     47            if (data == null)
     48            {
     49                return;
     50            }
     51
     52            MemoryStream memoryStream = new MemoryStream(data);
     53            FlowDocument flowDocument = new FlowDocument();
     54            TextRange textRange = new TextRange(flowDocument.ContentStart, flowDocument.ContentEnd);
     55            textRange.Load(memoryStream, System.Windows.DataFormats.XamlPackage);
     56            rtb.Document = flowDocument;           
     57        }
     58
     59        /// <summary>
     60        /// Save the Content of the given RichTextBox to this TextModel
     61        /// </summary>
     62        /// <param name="rtb"></param>
     63        public void saveRTB(RichTextBox rtb){
     64
     65            if (rtb.Document.Blocks.Count == 0)
     66            {
     67                return;
     68            }
     69
     70            MemoryStream memoryStream = new MemoryStream();
     71            TextRange textRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
     72            textRange.Save(memoryStream, System.Windows.DataFormats.XamlPackage);
     73
     74            data = new byte[memoryStream.Length];
     75            data = memoryStream.ToArray();
     76            memoryStream.Close();
     77           
    4078        }
    4179
  • trunk/CrypPlugins/WorkspaceManager/Model/VisualElementModel.cs

    r1892 r1895  
    8888        /// </summary>
    8989        [NonSerialized]
    90         public IUpdateableView UpdateableView = null;
    91 
    92         private VisualElementModel parent = null;
    93         /// <summary>
    94         /// Get/Set the Parent of this VisualElementModel
    95         /// </summary>
    96         public VisualElementModel Parent
    97         {
    98             get { return this.parent; }
    99             set { this.parent = value; }
    100         }
     90        public IUpdateableView UpdateableView = null;   
    10191    }
    10292}
  • trunk/CrypPlugins/WorkspaceManager/Model/WorkspaceModel.cs

    r1879 r1895  
    109109            pluginModel.Plugin.OnPluginProgressChanged += pluginModel.PluginProgressChanged;
    110110            pluginModel.Plugin.OnPluginStatusChanged += pluginModel.PluginStatusChanged;
    111             pluginModel.Parent = this;
    112111            if (pluginModel.Plugin.Settings != null)
    113112            {
     
    147146            to.InputConnections.Add(connectionModel);
    148147            connectionModel.ConnectionType = connectionType;
    149             connectionModel.Parent = this;
    150148
    151149            //If we connect two IControls we have to set data directly:
     
    191189            this.AllImageModels.Add(imageModel);
    192190            this.WorkspaceManagerEditor.HasChanges = true;
    193             imageModel.Parent = this;
    194191            return imageModel;
    195192        }
     
    200197        /// <param name="imgUri"></param>
    201198        /// <returns></returns>
    202         public TextModel newTextModel(string text = null )
    203         {
    204             TextModel textModel = new TextModel(text);
     199        public TextModel newTextModel()
     200        {
     201            TextModel textModel = new TextModel();
    205202            this.AllTextModels.Add(textModel);
    206203            this.WorkspaceManagerEditor.HasChanges = true;
    207             textModel.Parent = this;
    208204            return textModel;
    209205        }
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/TextInputWrapper.xaml.cs

    r1892 r1895  
    5555            this.DataContext = this;
    5656            this.Model = model;
     57            this.Model.loadRTB(this.mainRTB);
     58            this.mainRTB.TextChanged += MainRTBTextChanged;
    5759            this.Position = point;
    5860            this.ContentParent = userContentWrapper;
    59             this.RenderTransform = new TranslateTransform(point.X, point.Y);
     61            this.RenderTransform = new TranslateTransform(point.X, point.Y);           
     62        }
     63
     64        /// <summary>
     65        /// Serializes the content of the RTB to the TextModel and
     66        /// sets the editor to HasChanges=true
     67        ///
     68        /// called if the RTB is changed
     69        /// </summary>
     70        /// <param name="sender"></param>
     71        /// <param name="args"></param>
     72        private void MainRTBTextChanged(object sender, TextChangedEventArgs args)
     73        {
     74            this.Model.saveRTB(this.mainRTB);           
    6075        }
    6176
     
    6479            this.Width = Model.Width;
    6580            this.Height = Model.Height;
    66 
    67             this.ParentPanel.IsEnabled = Model.IsEnabled;
     81            this.ParentPanel.IsEnabled = Model.IsEnabled;           
    6882        }
    6983
     
    150164                Model.Width = this.ActualWidth;
    151165            }
    152         }
     166        }       
    153167    }
    154168
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/UserContentWrapper.xaml.cs

    r1892 r1895  
    110110        public void AddText(Point point)
    111111        {
    112             TextModel model = Model.newTextModel(String.Empty);
     112            TextModel model = Model.newTextModel();
    113113            TextInputWrapper txtWrap = new TextInputWrapper(model, point, this);
    114114            txtWrap.Delete += new EventHandler<TextInputDeleteEventArgs>(txtWrap_Delete);
Note: See TracChangeset for help on using the changeset viewer.