can-connect icon indicating copy to clipboard operation
can-connect copied to clipboard

improve flexibility of can-connect behavior ordering

Open nlundquist opened this issue 8 years ago • 2 comments

We've had several ideas on how to improve can-connect behavior ordering:

  • algorithmically order behaviors based on their requirements
  • create a connection "pipeline" of "stages" that behaviors define themselves as part of
  • expose the canonical ordering of behaviors and allow user modification of it

The goal of any of these improvements would be to allow behaviors:

  • to be attached to a connection in any order and still end up with a working connection (this currently works only for behaviors in the canonical ordering)
  • to attach any required behaviors that are missing from a connection
  • to be documented as part of a hierarchy easing understanding of the purpose of a behavior

nlundquist avatar Aug 01 '17 16:08 nlundquist

To assist in this work I created a graph attempting to order the behaviors into stages and show what methods behaviors override of the connection. The graph is ordered from top to bottom with the edge labels showing the methods overridden on the connection by the lower behaviour.

I've attached a .gif export of the graph and a zip of the original OmniGraffle document. behaviors relayout behaviors relayout.zip

nlundquist avatar Aug 01 '17 16:08 nlundquist

Whatever solution we implement should allow modification of existing connection types like #291 describes. This will allow "higher order" behaviors.

nlundquist avatar Aug 01 '17 16:08 nlundquist