Получение предусмотренных услуг в обработчике - PullRequest
0 голосов
/ 19 сентября 2011

Я использую envisage workbance и хочу получить услугу в Handler. В функции _tcp_send_changed как я могу получить услуги. В плагине есть self.application.get_service(....), но здесь, как я могу добраться до них?


ОБНОВЛЕНО

Это мой взгляд

class MCLidarGUIView( HasTraits ):         
    traits_ui_view = View( 
        VGroup( 
            HGroup( 
                Item( 'lidar_list',
                    show_label = False,
                    editor = TabularEditor( 
                        show_titles = False,
                        selected = 'selected',
                        editable = False,
                        multi_select = True,
                        adapter = LidarAdapter()                    
                    ),
                ),
            ),
            Item( 
                 "lidars_command"
            ),
            HGroup( 
                   Item( 'handler.tcp_send',
                        show_label = False,
                        editor = ButtonEditor( label = "TCP:Send" )                        
                ),
            )
        ),

        id = 'forwind.lidarapi.giuview',
        resizable = True,
        handler = MCLidarActions()

    )    

    lidar_list = [LidarObject( lidar_name = "No Connected Lidar" )]
    lidars_command = '' 

а это мой обработчик:

class MCLidarActions( Handler ):

    tcp_send = Event 

    def object__updated_changed( self, info ):
        print info;
        pass;   

    def _tcp_send_changed( self ):
        print( " info" ) 

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

класс MyHandler (обработчик):

def __init__(self, application, **traits):
     Handler.__init__(self, **traits)
     self.application = application

...

1 голос
/ 19 сентября 2011

Я просто догадываюсь, но из документации кажется, что сначала нужно зарегистрировать службу. Может быть, покажите нам немного больше кода, чтобы мы могли лучше помочь.

...