@startuml actor user participant JmrixConfigPane participant "locobufferusb.ConnectionConfig\nextends AbstractSerialConnectionConfig\nextends AbstractConnectionConfig" as ConnectionConfig participant "locobufferusb.LocoBufferUsbAdapter\nextends LocoBufferAdapter\nimplements jmri.jmrix.SerialPortAdapter" as LocoBufferUsbAdapter note over JmrixConfigPane: Wait for manufacturer selection user --> JmrixConfigPane : fireActionEvent activate JmrixConfigPane JmrixConfigPane --> JmrixConfigPane : updateComboConnection note over JmrixConfigPane: For each mode / type, create\nand add to mode JComboBox activate JmrixConfigPane JmrixConfigPane --> ConnectionConfig : null ctor (via reflection) activate ConnectionConfig ConnectionConfig --> LocoBufferUsbAdapter : null ctor activate LocoBufferUsbAdapter deactivate LocoBufferUsbAdapter deactivate ConnectionConfig deactivate JmrixConfigPane deactivate JmrixConfigPane note over JmrixConfigPane: Wait for mode selection user --> JmrixConfigPane : fireActionEvent activate JmrixConfigPane JmrixConfigPane --> JmrixConfigPane : selection() activate JmrixConfigPane JmrixConfigPane --> ConnectionConfig : loadDetails(details) activate ConnectionConfig note over ConnectionConfig : Loaded GUI info into 'details' JPanel via\nAbstractConnectionConfig implementation deactivate ConnectionConfig JmrixConfigPane --> ConnectionConfig : setManufacturer(..) activate ConnectionConfig deactivate ConnectionConfig JmrixConfigPane --> ConnectionConfig : register() activate ConnectionConfig deactivate ConnectionConfig deactivate JmrixConfigPane deactivate JmrixConfigPane @enduml