New Posts New Posts RSS Feed: [SOLVED] Inter-module / Inter-view Communication
  FAQ FAQ  Forum Search   Calendar   Register Register  Login Login

[SOLVED] Inter-module / Inter-view Communication

 Post Reply Post Reply
Author
Linguinut View Drop Down
Senior Member
Senior Member
Avatar

Joined: 14-Jun-2007
Location: United States
Posts: 394
Post Options Post Options   Quote Linguinut Quote  Post ReplyReply Direct Link To This Post Topic: [SOLVED] Inter-module / Inter-view Communication
    Posted: 08-Oct-2007 at 11:55am
I have a view in a module that lists in a grid a certain entity (Parts).  I have another view in the same module that add/edits a related entity (Work Order).  Is it possible to create a new work order from the parts list view, then open the Work Order view to the newly created work order?  If so (and I have high expectations that this is easy to do), how do I go about this the CAB way?
 
Thanks!
Bill


Edited by Linguinut - 11-Oct-2007 at 9:59am
Back to Top
Bill Jensen View Drop Down
IdeaBlade
IdeaBlade
Avatar

Joined: 31-Jul-2007
Location: United States
Posts: 229
Post Options Post Options   Quote Bill Jensen Quote  Post ReplyReply Direct Link To This Post Posted: 08-Oct-2007 at 2:49pm
At first glance, this sounds similar to the way SalesOrders are handled in Cabana.  The whole purpose of the EntityManager structure is to provide a mechanism to keep multiple editors in sync without round-trips to the server.
 
Bill J.
Back to Top
Linguinut View Drop Down
Senior Member
Senior Member
Avatar

Joined: 14-Jun-2007
Location: United States
Posts: 394
Post Options Post Options   Quote Linguinut Quote  Post ReplyReply Direct Link To This Post Posted: 08-Oct-2007 at 3:53pm
As I understand Cabana, there is a separate SharedEditor module that is accessed via an EntityEditor service.  While this is a fine (and quite complicated) solution, I would like to take advantage of views that are already built.  I have a view in a module that is designed to add/edit/delete an entity.  How do I access that view from another view (or even module) within the application?
Back to Top
Bill Jensen View Drop Down
IdeaBlade
IdeaBlade
Avatar

Joined: 31-Jul-2007
Location: United States
Posts: 229
Post Options Post Options   Quote Bill Jensen Quote  Post ReplyReply Direct Link To This Post Posted: 10-Oct-2007 at 12:45pm
You're right, the SharedEditor module is a bit complicated.
 
If you're wanting to pop up a WorkOrder view in a separate window, you can add it to the WindowWorkspace (with appropriate SmartPartInfo).
 
If you already have a WorkOrder view, you somehow have to get its data source set to the newly-created WorkOrder.  You could pass this information in the ViewContexts of the two views.  There would need to be a common controller that knows about both views.
 
I'd think carefully before trying to sync between modules, but if it were necessary, I'd probably use a CAB EventTopic.
 
Bill J.
Back to Top
Linguinut View Drop Down
Senior Member
Senior Member
Avatar

Joined: 14-Jun-2007
Location: United States
Posts: 394
Post Options Post Options   Quote Linguinut Quote  Post ReplyReply Direct Link To This Post Posted: 10-Oct-2007 at 12:51pm

Utilizing the event broker...that is what I was researching.  It seems like the appropriate solution.  I'll update here once I get it working.  I am still working through the details.

Back to Top
Linguinut View Drop Down
Senior Member
Senior Member
Avatar

Joined: 14-Jun-2007
Location: United States
Posts: 394
Post Options Post Options   Quote Linguinut Quote  Post ReplyReply Direct Link To This Post Posted: 11-Oct-2007 at 8:07am
I wonder if any of these people who are writing about the EventBroker with EventPublication / EventSubscription have really, actually, successfully written a viable communication.  NONE of their examples work...I have tried at least half a dozen scenarios.  Perhaps, there is some other kind of hindrance from the DevForce/CAB combo.
 
Any tips or tricks about the EventBroker syntax, especially within DF/CAB, would be welcome.
 
 
Back to Top
Linguinut View Drop Down
Senior Member
Senior Member
Avatar

Joined: 14-Jun-2007
Location: United States
Posts: 394
Post Options Post Options   Quote Linguinut Quote  Post ReplyReply Direct Link To This Post Posted: 11-Oct-2007 at 8:24am
This is the best example that I found (copied from http://www.codeproject.com/useritems/XSModuleCompMppr.asp):
 
=========================
Event Publication

The publication handler itself...

[EventPublication("evt://XS/Generic/Foo")]
public event EventHandler<DataEventArgs<string>> BroadcastFoo;

Public method for invoking the publication handler from referring classes. While not required for events that should not be invoked except by the publishing class itself, if appropriate, provides an interface for referring classes that may also require invocation of the event, such as a view that may invoke an event defined on its owning presenter...

public void DoBroadcastFoo(object sender, string thisMessage)
{
   
this.BroadcastFoo(sender, new DataEventArgs<string>(thisMessage));
}

Event Subscription

[EventSubscription("evt://XS/Generic/Foo")]
[
EventSubscription("evt://XS/Generic/Bar")]
public void OnReceiveGeneric(object sender, DataEventArgs<string> e)
{
    myObject.MyMethod(e.Data);
}

=========================
 
Two namespaces must be referenced (not mentioned in article!):
Microsoft.Practices.CompositeUI.EventBroker
Microsoft.Practices.CompositeUI.Utility
 
I have not finished testing, but so far, I am getting no build errors. Smile
Back to Top
Linguinut View Drop Down
Senior Member
Senior Member
Avatar

Joined: 14-Jun-2007
Location: United States
Posts: 394
Post Options Post Options   Quote Linguinut Quote  Post ReplyReply Direct Link To This Post Posted: 11-Oct-2007 at 9:59am
This is working.  I will utilize the EventBroker in many places...nice feature of CAB!!
Back to Top
 Post Reply Post Reply

Forum Jump Forum Permissions View Drop Down