Factory.cs

Top Previous Topic Next Topic  Print this topic

using System;

using System.Net;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Documents;

using System.Windows.Ink;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Animation;

using System.Windows.Shapes;

using Ecrion.Silverlight;

 

       

namespace Ecrion.Silverlight.Sample.Plugin

{

  /// <summary>

  /// this class customize object data or build custom visual elements

  /// </summary>

  public class Factory : IVisualObjectFactory

   {

      public Factory()

       {

       }

 

      /// <summary>

      /// create a visual element from an ObjectData

      /// </summary>

      /// <param name="objectData">keeps data for a visual element</param>

      /// <returns>

      /// return null because we don't want to create a custom visual element

      /// </returns>

      public DependencyObject GetVisualElement(ObjectData objectData)

       {

          return null;

       }

 

      /// <summary>

      /// customize an object data if this is a TextData

      /// </summary>

      /// <param name="objectData">reference to a ObjectData</param>

      /// <returns>

      /// true because we want to let other plugins to make their own cusomization

      /// </returns>

      public Boolean CustomizeObjectData(ObjectData objectData)

       {

          if (objectData.getObjectType == typeof(TextData))

           {

              if (((TextData)objectData).Parent.getObjectType == typeof(TableCellData))

               {

                  this.ItalicTextInCell((TextData)objectData);

               }

           }

 

          return true;

       }

 

      /// <summary>

      /// change FontStyle property of a TextData

      /// this is a protected function of this plugins

      /// </summary>

      /// <param name="objectData">TextData object</param>

      protected internal void ItalicTextInCell(TextData objectData)

       {

           ((TextData)objectData).FontStyle = FontStyles.Italic;

       }

   }

}