WF saját activity designer

A Workflow Foundation lehetővé teszi, hogy saját activity osztályunkhoz saját designer osztályt rendeljünk, ami meghatározza, hogyan fog viselkedni a komponensünk a Visual Studio környezetében. Ehhez mindössze egy osztályt kell készítenünk és egy attribútummal hozzárendelnünk az activity-hez:

[Designer( typeof( MyActivityDesigner ) )]
public partial class MyActivity : Activity
{…}

Hasznos lehet például, ha megváltoztatjuk azt a szöveget, ami az activity-n megjelenik a designerben. A nevén kívül több hasznos információt ki tudunk írni arra a kis helyre. Ha tényleg csak ennyi a feladatunk és nem akarjuk teljesen átvenni az activity megrajzolásának bonyodalmait, akkor egyszerűen felüldefiniálhatjuk a Text tulajdonságot:

public sealed class MyActivityDesigner : ActivityDesigner
{
  //…
  public override string Text
  {
    get
    {
      MyActivity activity = (MyActivity) this.Activity;
      return String.Format( "{0}: {1} -> {2}", base.Text, Path.GetFileName( activity.SourceFolder ), Path.GetFileName( activity.TargetFolder ) );
    }
    protected set
    {
      base.Text = value;
    }
  }
}

Előfordulhat persze, hogy az így összeállított szöveg nem fér bele a dobozba. Hosszú Reflectorozás után jó megoldásnak látszik a MinimumSize tulajdonság felüldefiniálása:

public override System.Drawing.Size MinimumSize
{
  get
  {
    return new System.Drawing.Size( 250, base.MinimumSize.Height );
  }
}

Ennél persze kifinomultabb megoldások is elképzelhetőek. Akinek van ötlete, írjon!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s