Changeset 2791


Ignore:
Timestamp:
Feb 22, 2011, 3:06:38 PM (11 years ago)
Author:
kopal
Message:

added some events for new, delete, move, resize and so on to the model elements

Location:
trunk/WorkspaceManagerModel
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WorkspaceManagerModel/Model/Elements/VisualElementModel.cs

    r2789 r2791  
    132132            return Name;
    133133        }
    134     }
     134
     135        [field: NonSerialized]
     136        public event EventHandler<PositionArgs> PositionChanged;
     137
     138        [field: NonSerialized]
     139        public event EventHandler<SizeArgs> SizeChanged;
     140
     141        [field: NonSerialized]
     142        public event EventHandler<ModelArgs> NewChildElement;
     143
     144        [field: NonSerialized]
     145        public event EventHandler<ModelArgs> DeletedChildElement;
     146
     147        internal void OnPositionChanged(Point oldPosition, Point newPosition)
     148        {
     149            PositionChanged.Invoke(this, new PositionArgs(this,oldPosition, newPosition));
     150        }
     151
     152        internal void OnSizeChanged(double oldWidth, double newWidth, double oldHeight, double newHeight)
     153        {
     154            SizeChanged.Invoke(this, new SizeArgs(this, oldWidth, newWidth, oldHeight, newHeight));
     155        }
     156
     157        internal void OnNewChildElement(VisualElementModel effectedModelElement)
     158        {
     159            NewChildElement.Invoke(this, new ModelArgs(effectedModelElement));
     160        }
     161
     162        internal void OnDeletedChildElement(VisualElementModel effectedModelElement)
     163        {
     164            DeletedChildElement.Invoke(this, new ModelArgs(effectedModelElement));
     165        }
     166    }
     167
     168    public class ModelArgs : EventArgs
     169    {
     170        public VisualElementModel EffectedModelElement { get; private set; }
     171
     172        public ModelArgs(VisualElementModel effectedModelElement)
     173        {
     174            this.EffectedModelElement = effectedModelElement;
     175        }
     176    }
     177
     178    public class PositionArgs : ModelArgs
     179    {
     180        public Point OldPosition{get;internal set;}
     181        public Point NewPosition { get; internal set; }
     182        internal PositionArgs(VisualElementModel model, Point oldPosition, Point newPosition):
     183            base(model)
     184        {
     185            this.OldPosition = oldPosition;
     186            this.NewPosition = newPosition;
     187        }
     188    }
     189
     190    public class SizeArgs : ModelArgs
     191    {
     192        public double OldWidth{get;internal set;}
     193        public double NewWidth { get; internal set; }
     194        public double OldHeight { get; internal set; }
     195        public double NewHeight { get; internal set; }
     196
     197        internal SizeArgs(VisualElementModel model, double oldWidth, double newWidth, double oldHeight, double newHeight):
     198            base(model)
     199        {
     200            this.OldWidth = oldWidth;
     201            this.NewWidth = newWidth;
     202            this.OldHeight = oldHeight;
     203            this.NewHeight = newHeight;
     204        }
     205    }
     206
     207   
    135208}
  • trunk/WorkspaceManagerModel/Model/Elements/WorkspaceModel.cs

    r2789 r2791  
    166166            }           
    167167            this.AllPluginModels.Add(pluginModel);
    168             this.HasChanges = true;           
     168            this.HasChanges = true;
     169            this.OnNewChildElement(pluginModel);
    169170            return pluginModel;
    170171        }
     
    178179        {           
    179180            this.AllPluginModels.Add(pluginModel);
    180             this.HasChanges = true;
     181            foreach (ConnectorModel connectorModel in pluginModel.InputConnectors)
     182            {
     183                this.AllConnectorModels.Add(connectorModel);
     184            }
     185            foreach (ConnectorModel connectorModel in pluginModel.OutputConnectors)
     186            {
     187                this.AllConnectorModels.Add(connectorModel);
     188            }
     189            this.HasChanges = true;
     190            this.OnNewChildElement(pluginModel);
    181191        }
    182192       
     
    228238            this.AllConnectionModels.Add(connectionModel);
    229239            this.HasChanges = true;
     240            this.OnNewChildElement(connectionModel);
    230241            return connectionModel;
    231242        }
     
    234245        /// Add an existing ConnectionModel to this WorkspaceModel
    235246        /// </summary>
    236         /// <param name="model"></param>
     247        /// <param name="connectionModel"></param>
    237248        /// <param name="from"></param>
    238249        /// <param name="to"></param>
    239         internal void addConnectionModel(ConnectionModel model)
    240         {
    241             ConnectorModel from = model.From;
    242             ConnectorModel to = model.To;
    243             from.OutputConnections.Add(model);
    244             to.InputConnections.Add(model);
     250        internal void addConnectionModel(ConnectionModel connectionModel)
     251        {
     252            ConnectorModel from = connectionModel.From;
     253            ConnectorModel to = connectionModel.To;
     254            from.OutputConnections.Add(connectionModel);
     255            to.InputConnections.Add(connectionModel);
    245256           
    246257            //If we connect two IControls we have to set data directly:
     
    271282            }
    272283
    273             this.AllConnectionModels.Add(model);
    274             this.HasChanges = true;
     284            this.AllConnectionModels.Add(connectionModel);
     285            this.HasChanges = true;
     286            this.OnNewChildElement(connectionModel);
    275287        }
    276288
     
    284296            ImageModel imageModel = new ImageModel(imgUri);
    285297            this.AllImageModels.Add(imageModel);
    286             this.HasChanges = true;         
     298            this.HasChanges = true;
     299            this.OnNewChildElement(imageModel);
    287300            return imageModel;
    288301        }
     
    297310            TextModel textModel = new TextModel();
    298311            this.AllTextModels.Add(textModel);
    299             this.HasChanges = true;           
     312            this.HasChanges = true;
     313            this.OnNewChildElement(textModel);
    300314            return textModel;
    301315        }
     
    307321        /// <returns></returns>
    308322        internal bool deleteImageModel(ImageModel imageModel)
    309         {           
    310             return this.AllImageModels.Remove(imageModel);
     323        {
     324            this.OnDeletedChildElement(imageModel);
     325            return this.AllImageModels.Remove(imageModel);           
    311326        }
    312327
     
    317332        /// <returns></returns>
    318333        internal bool deleteTextModel(TextModel textModel)
    319         {           
     334        {
     335            this.OnDeletedChildElement(textModel);
    320336            return this.AllTextModels.Remove(textModel);
    321337        }
     
    344360                }
    345361                pluginModel.Plugin.Dispose();               
    346                 this.HasChanges = true;               
     362                this.HasChanges = true;
     363                this.OnDeletedChildElement(pluginModel);
    347364                return this.AllPluginModels.Remove(pluginModel);
    348365            }           
     
    372389                    deleteConnectionModel(outputConnection);
    373390                }
    374                 this.HasChanges = true;               
     391                this.HasChanges = true;
     392                this.OnDeletedChildElement(connectorModel);
    375393                return this.AllConnectorModels.Remove(connectorModel);
    376394            }
     
    391409            connectionModel.From.OutputConnections.Remove(connectionModel);           
    392410            this.HasChanges = true;
    393            
     411            this.OnDeletedChildElement(connectionModel);
    394412            return this.AllConnectionModels.Remove(connectionModel);
    395413        }
     
    416434                connector.Data = null;
    417435            }
    418         }
    419 
    420         /// <summary>
    421         /// Reconnects a Connection with an other Connector
    422         /// </summary>
    423         /// <param name="connectionModel"></param>
    424         /// <param name="connectorModel"></param>
    425         /// <returns></returns>
    426         internal bool reconnectConnection(ConnectionModel connectionModel, ConnectorModel connectorModel)
    427         {
    428             if (connectionModel.To != null)
    429             {
    430                 connectionModel.To.InputConnections.Remove(connectionModel);
    431             }
    432             connectionModel.To = connectorModel;
    433             connectorModel.InputConnections.Add(connectionModel);
    434             this.HasChanges = true;
    435             return true;
    436436        }
    437437
  • trunk/WorkspaceManagerModel/Model/Operations/Operations.cs

    r2767 r2791  
    203203        internal override object Execute(WorkspaceModel workspaceModel)
    204204        {
     205
    205206            Model.Position = NewPosition;
     207            Model.OnPositionChanged(OldPosition, NewPosition);
    206208            return true;
    207209        }
     
    210212        {
    211213            Model.Position = OldPosition;
     214            Model.OnPositionChanged(NewPosition, OldPosition);
    212215        }
    213216
     
    240243            Model.Width = NewWidth;
    241244            Model.Height = NewHeight;
     245            Model.OnSizeChanged(this.OldWidth, this.NewWidth, this.OldHeight, this.NewHeight);
    242246            return true;
    243247        }
     
    247251            Model.Width = OldWidth;
    248252            Model.Height = OldHeight;
     253            Model.OnSizeChanged(this.NewWidth, this.OldWidth, this.NewHeight, this.OldHeight);
    249254        }
    250255
  • trunk/WorkspaceManagerModel/WorkspaceManagerModel.csproj

    r2749 r2791  
    6060    <Compile Include="Model\Elements\ImageModel.cs" />
    6161    <Compile Include="Model\Elements\PluginModel.cs" />
     62    <Compile Include="Model\Elements\PositionArgs.cs" />
    6263    <Compile Include="Model\Elements\TextModel.cs" />
    6364    <Compile Include="Model\Elements\VisualElementModel.cs" />
Note: See TracChangeset for help on using the changeset viewer.