WorkItem.Run()

Topics: CAB & Smart Client Software Factory
Jun 29, 2005 at 7:02 PM
originally posted by: ptorrsmith

Are there plans to make Run() (and relevant overloaded variants such as Run(IWorkspace)) a method(s) on the base WorkItem class?
Jul 4, 2005 at 8:11 PM
originally posted by: EdJez

I don't want to make a specific promise about Run(..), but yes, we want to see what patterns are common in the implementation/lifecycle of work items and might be refactoring that commonality into the base class...please make your requests heard if you come up with anything youd like to see.

One of the things I've been mulling about is helping with the patterns of creating / passing / controlling workspaces. Another is the "startup" sequence of a workitem, where any "workitem initializer" could say "please call me whenever a workitem of type FOO starts" - and it could then add its UIelements, components, etc into a workitem. (much in the same way a module initializer works..there could even be an underlying symmetry that would let us break the distinction)

besides Run - do you see any specific implementation pattern emerge that we could "prescribe" in the framework?
Jul 4, 2005 at 8:41 PM
originally posted by: ptorrsmith

WorkItems will create subworkitems etc etc, so some helping around moving up the chain/hierarchy would be good.

Eg: In the EventBrokerQuickStart CustomerListView.cs you have:

lstGlobalCustomers.DataSource = this.controller.ParentState"customers";

Thoughts:
1. The controller and/or workitem baseclass could offer a property for accessing a "state" value, possibly via a namespacing style like with events and UIE (eg "state://Officers"), that could just walk up the workitem inside workitem hierarchy to get the correct reference?? that way you don't need to know how deep inside the application your workitem is.
2. ParentState is misleading... it sounds like it is referring to the state of the controller's parent when it is actually referring to the state of the parentworkitem of the controller's workitem.