Ignore:
Timestamp:
04/30/12 08:25:14 (12 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
Phase:
public
Message:

Plane position updating works

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/mlx/gui/gui.py

    r128 r130  
    4848        self._simulator = None
    4949        self._monitoring = False
     50
    5051        self._fleet = None
     52
    5153        self._fleetCallback = None
     54
     55        self._updatePlaneCallback = None
     56        self._updatePlaneTailNumber = None
     57        self._updatePlaneStatus = None
     58        self._updatePlaneGateNumber = None
    5259
    5360        self._stdioLock = threading.Lock()
     
    583590                                       type = MESSAGETYPE_ERROR,
    584591                                       message_format = xstr("fleet_failed"))
     592            dialog.add_button(xstr("button_ok"), RESPONSETYPE_OK)
     593            dialog.set_title(WINDOW_TITLE_BASE)
     594            dialog.run()
     595            dialog.hide()
     596
     597        callback = self._fleetCallback
     598        self._fleetCallback = None
     599        if  callback is not None:
     600            callback(self._fleet)
     601        self._fleetGateStatus.handleFleet(self._fleet)
     602
     603    def updatePlane(self, tailNumber, status,
     604                    gateNumber = None, callback = None):
     605        """Update the status of the given plane."""
     606        self.beginBusy(xstr("fleet_update_busy"))
     607
     608        self._updatePlaneCallback = callback
     609
     610        self._updatePlaneTailNumber = tailNumber
     611        self._updatePlaneStatus = status
     612        self._updatePlaneGateNumber = gateNumber
     613       
     614        self.webHandler.updatePlane(self._updatePlaneResultCallback,
     615                                    tailNumber, status, gateNumber)
     616
     617    def _updatePlaneResultCallback(self, returned, result):
     618        """Called when the status of a plane has been updated."""
     619        gobject.idle_add(self._handleUpdatePlaneResult, returned, result)
     620
     621    def _handleUpdatePlaneResult(self, returned, result):
     622        """Handle the plane update result."""
     623        self.endBusy()
     624        if returned:
     625            success = result.success
     626            if success:
     627                if self._fleet is not None:
     628                    self._fleet.updatePlane(self._updatePlaneTailNumber,
     629                                            self._updatePlaneStatus,
     630                                            self._updatePlaneGateNumber)
     631                    self._fleetGateStatus.handleFleet(self._fleet)
     632        else:
     633            dialog = gtk.MessageDialog(parent = self.mainWindow,
     634                                       type = MESSAGETYPE_ERROR,
     635                                       message_format = xstr("fleet_update_failed"))
    585636            dialog.add_button(xstr("button_ok"), RESPONSETYPE_ACCEPT)
    586637            dialog.set_title(WINDOW_TITLE_BASE)
     
    588639            dialog.hide()
    589640
    590         if self._fleetCallback is not None:
    591             self._fleetCallback(self._fleet)
    592             self._fleetCallback = None
    593         self._fleetGateStatus.handleFleet(self._fleet)
     641            success = None
     642
     643        callback = self._updatePlaneCallback
     644        self._updatePlaneCallback = None
     645        if callback is not None:
     646            callback(success)
    594647
    595648    def _writeStdIO(self):
Note: See TracChangeset for help on using the changeset viewer.