Exemplo n.º 1
0
 private ArcWidget GetArcBetweenWidgets(PetriNetElementWidget widget1, PetriNetElementWidget widget2)
 {
     var result = Widgets.FirstOrDefault
         (widget =>
             widget is ArcWidget
             && ((((Arc)widget.Element).StartElement == widget1.Element && ((Arc)widget.Element).EndElement == widget2.Element)
                 || (((Arc)widget.Element).StartElement == widget2.Element && ((Arc)widget.Element).EndElement == widget1.Element))
         );
     return result as ArcWidget;
 }
Exemplo n.º 2
0
 private bool CanWidgetsBeConnected(PetriNetElementWidget widget1, PetriNetElementWidget widget2)
 {
     return GetArcBetweenWidgets(widget1, widget2) == null
         && ((widget1.Element != null && widget1.Element is ITokenContainer && widget2.Element != null && widget2.Element is ITokenConsumer)
             || (widget1.Element != null && widget1.Element is ITokenConsumer && widget2.Element != null && widget2.Element is ITokenContainer));
 }
Exemplo n.º 3
0
 private bool CanWidgetsBeDisconnected(PetriNetElementWidget widget1, PetriNetElementWidget widget2)
 {
     return GetArcBetweenWidgets(widget1, widget2) != null;
 }
Exemplo n.º 4
0
 private bool CanWidgetConnectionBeInverted(PetriNetElementWidget widget1, PetriNetElementWidget widget2)
 {
     var arcWidget = GetArcBetweenWidgets(widget1, widget2);
     if (arcWidget != null)
     {
         var arc = arcWidget.Element as Arc;
         if (arc != null
             && ((arc.StartElement == widget1.Element && widget1.Element is ITokenContainer && widget2.Element != null && widget2.Element is ITokenDispatcher)
                 || (arc.StartElement == widget2.Element && widget2.Element is ITokenContainer && widget1.Element != null && widget1.Element is ITokenDispatcher)
                 || (arc.StartElement == widget1.Element && widget1.Element is ITokenConsumer && widget2.Element != null && widget2.Element is ITokenContainer)
                 || (arc.StartElement == widget2.Element && widget2.Element is ITokenConsumer && widget1.Element != null && widget1.Element is ITokenContainer)
                 ))
         {
             return true;
         }
     }
     return false;
 }