Index: src/mlx/gui/statusicon.py
===================================================================
--- src/mlx/gui/statusicon.py	(revision 31)
+++ src/mlx/gui/statusicon.py	(revision 32)
@@ -9,24 +9,20 @@
 #-------------------------------------------------------------------------------
 
-class StatusIcon(object):
+class StatusIcon(FlightStatusHandler):
     """The class handling the status icon."""
     def __init__(self, iconDirectory, gui):
         """Construct the status icon."""
+        super(StatusIcon, self).__init__()
+
         self._gui = gui
 
-        self._stage = None
-        self._rating = 100
-        self._noGoReason = None
-        
         menu = gtk.Menu()
 
         if appIndicator:
             self._stageMenuItem = gtk.MenuItem()
-            self._stageMenuItem.set_label("Stage: -")
             self._stageMenuItem.show()
             menu.append(self._stageMenuItem)
 
             self._ratingMenuItem = gtk.MenuItem()
-            self._ratingMenuItem.set_label("Rating: 100%")
             self._ratingMenuItem.show()
             menu.append(self._ratingMenuItem)
@@ -71,5 +67,6 @@
                                lambda status: self._gui.toggleMainWindow())
             self._statusIcon = statusIcon
-            self._setTooltip()
+
+        self._updateFlightStatus()
 
     def mainWindowHidden(self):
@@ -81,46 +78,4 @@
         self._showHideMenuItem.set_active(True)
 
-    def resetFlightStatus(self):
-        """Reset the status of the flight."""
-        if not appIndicator:
-            self._statusIcon.set_blinking(False)
-        self._noGoReason = None
-        self.setStage(None)
-        self.setRating(100)
-        
-    def setStage(self, stage):
-        """Set the stage of the flight."""
-        self._stage = stage
-        if appIndicator:
-            label = "Stage: %s" % ("-" if self._stage is None \
-                                   else (const.stage2string(stage),))
-            self._stageMenuItem.set_label(label)
-        else:
-            self._setTooltip()
-
-    def setRating(self, rating):
-        """Set the rating to the given value."""
-        if rating==self._rating:
-            return
-        self._rating = rating
-
-        if appIndicator:
-            if self._noGoReason is None:
-                self._ratingMenuItem.set_label("Rating: %.0f%%" % (rating,))
-            else:
-                self._setTooltip()
-
-    def setNoGo(self, reason):
-        """Set a No-Go condition with the given reason."""
-        if self._noGoReason is not None:
-            return
-
-        self._noGoReason = reason
-        if appIndicator:
-            self._ratingMenuItem.set_label("Rating: %s" % (reason,))
-        else:
-            self._setTooltip()
-            self._statusIcon.set_blinking(True)
-
     def _showHideToggled(self, menuitem):
         """Called when the show/hide menu item is toggled."""
@@ -130,16 +85,20 @@
             self._gui.hideMainWindow()
 
-    def _setTooltip(self):
-        """Set the tooltip of the status icon."""
+    def _updateFlightStatus(self):
+        """Update the flight status."""
+        stage = "-" if self._stage is None else const.stage2string(self._stage)
+        
         if self._noGoReason is None:
             rating = "%.0f%%" % (self._rating,)
         else:
-            rating = '<span foreground="red">' + self._noGoReason + '</span>'
+            rating = self._noGoReason
 
-        markup = "MAVA Logger X %s\n\nStage: %s\nRating: %s" %\
-                 (const.VERSION, ("-" if self._stage is None else
-                                  const.stage2string(self._stage)),
-                  rating)
-        
-        self._statusIcon.set_tooltip_markup(markup)
-        
+        if appIndicator:
+            self._stageMenuItem.set_label("Stage: %s" % (stage,))
+            self._ratingMenuItem.set_label("Rating: %s" % (rating,))
+        else:
+            if self._noGoReason is not None:
+                rating = '<span foreground="red">' + rating + '</span>'
+            markup = "MAVA Logger X %s\n\nStage: %s\nRating: %s" %\
+                     (const.VERSION, stage, rating)
+            self._statusIcon.set_tooltip_markup(markup)
