Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 import os
00036 
00037 import dynamic_reconfigure.client
00038 from python_qt_binding import loadUi
00039 from python_qt_binding.QtGui import QWidget
00040 import rospy
00041 
00042 from .param_dynreconf_client import ClientWidget
00043 from .param_editors import EditorWidget, BooleanEditor, DoubleEditor, EnumEditor, IntegerEditor, StringEditor
00044 from .param_groups import GroupWidget
00045 from .param_updater import ParamUpdater
00046 
00047 class ParameditWidget(QWidget):
00048     def __init__(self):
00049         super(ParameditWidget, self).__init__()
00050         
00051         ui_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 
00052                                'ui/paramedit_pane.ui')
00053         loadUi(ui_file, self)
00054                 
00055         self._dynreconf_client = None
00056 
00057         self.destroyed.connect(self.close)  
00058 
00059     def show_reconf(self, node):
00060         rospy.logdebug('ParameditWidget.show str(node)=%s', str(node))
00061 
00062         reconf = None        
00063         try:
00064             reconf = dynamic_reconfigure.client.Client(str(node), 
00065                                                                   timeout=5.0)
00066         except rospy.exceptions.ROSException:
00067             rospy.logerr("Could not connect to %s" % node)
00068             
00069             return
00070         finally:
00071             if self._dynreconf_client:
00072                 self._dynreconf_client.close()
00073 
00074         self._dynreconf_client = ClientWidget(reconf) 
00075         
00076 
00077         self._paramedit_scrollarea.setWidget(self._dynreconf_client)
00078         self._paramedit_scrollarea.setWidgetResizable(True)
00079 
00080     def close(self):
00081         if self._dynreconf_client is not None:
00082             
00083             self._dynreconf_client.close()
00084             self._dynreconf_client = None
00085 
00086             self._paramedit_scrollarea.deleteLater()