00001 # Software License Agreement (BSD License) 00002 # 00003 # Copyright (c) 2012, Willow Garage, Inc. 00004 # All rights reserved. 00005 # 00006 # Redistribution and use in source and binary forms, with or without 00007 # modification, are permitted provided that the following conditions 00008 # are met: 00009 # 00010 # * Redistributions of source code must retain the above copyright 00011 # notice, this list of conditions and the following disclaimer. 00012 # * Redistributions in binary form must reproduce the above 00013 # copyright notice, this list of conditions and the following 00014 # disclaimer in the documentation and/or other materials provided 00015 # with the distribution. 00016 # * Neither the name of Willow Garage, Inc. nor the names of its 00017 # contributors may be used to endorse or promote products derived 00018 # from this software without specific prior written permission. 00019 # 00020 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00021 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00022 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 00023 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 00024 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 00025 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00026 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00027 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00028 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00029 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 00030 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 00031 # POSSIBILITY OF SUCH DAMAGE. 00032 # 00033 # Author: Isaac Saito 00034 00035 from python_qt_binding.QtGui import QWidget 00036 00037 00038 class AbstractStatusWidget(QWidget): 00039 """ 00040 An abstract widget that consists of status display part and timeline part, 00041 although this class doen't define any concrete design for those display 00042 parts. Instead this only defines interface methods. 00043 """ 00044 00045 def __init__(self): 00046 super(AbstractStatusWidget, self).__init__() 00047 00048 def new_diagnostic(self, msg, is_forced=False): 00049 """ 00050 Needs overridden in derived classes. 00051 00052 :param msg: This can be a function that takes either 00053 { DiagnosticArray, DiagnosticsStatus } as an argument. 00054 :param is_forced: If True then update occurs even when paused. 00055 """ 00056 pass 00057 00058 def pause(self, msg): 00059 pass 00060 00061 def unpause(self, msg): 00062 pass 00063 00064 def get_color_for_value(self, queue_diagnostic, color_index): 00065 pass 00066 00067 def on_pause(self, paused, diagnostic_arr): 00068 pass