コード例 #1
0
 def __getCurrentVehicleClasses(self, updateDict):
     return {
         vehClass
         for vehClass in VEHICLE_CLASS_NAME.ALL()
         if (self._filters[vehClass] or updateDict.get(vehClass))
         and updateDict.get(vehClass) is not False
     }
コード例 #2
0
 def switch(self, key, save=True):
     updateDict = {key: not self._filters[key]}
     if key in VEHICLE_CLASS_NAME.ALL() and len(
             self.__getCurrentVehicleClasses(updateDict)) != 1:
         updateDict.update(self.__resetRoles())
     if updateDict:
         self.update(updateDict, save)
コード例 #3
0
 def getTooltip(self):
     eventType = self._event.getType()
     limits = self._event.getLimits()
     if eventType == _et.NATION:
         nationsList = limits.getNations()
         full = set(NationNames) == set(nationsList)
         nations = ', \n'.join([
             getNationText(value) for value in GUI_NATIONS
             if value in nationsList
         ])
         result = TOOLTIPS.elen_task_eventtype_full(
             eventType) if full else _ms(
                 TOOLTIPS.elen_task_eventtype_notfull(eventType),
                 nations=nations)
     elif eventType == _et.CLASS:
         typeList = limits.getVehiclesClasses()
         full = set(VEHICLE_CLASS_NAME.ALL()) == set(typeList)
         types = ', \n'.join([vehicleTypeText(value) for value in typeList])
         result = TOOLTIPS.elen_task_eventtype_full(
             eventType) if full else _ms(
                 TOOLTIPS.elen_task_eventtype_notfull(eventType),
                 classes=types)
     elif eventType == _et.LEVEL:
         levelList = limits.getVehiclesLevels()
         full = set(LEVELS_RANGE) == set(limits.getVehiclesLevels())
         levels = ', '.join([int2roman(value) for value in levelList])
         result = TOOLTIPS.elen_task_eventtype_full(
             eventType) if full else _ms(
                 TOOLTIPS.elen_task_eventtype_notfull(eventType),
                 levels=levels)
     else:
         result = _ms(TOOLTIPS.elen_task_eventtype_notfull(eventType))
     return makeTooltip(body=result)
コード例 #4
0
 def switch(self, key, save=True):
     updateDict = {key: not self._filters[key]}
     if key in VEHICLE_CLASS_NAME.ALL():
         updateDict = self.__switchRoleFiltersByVehicleClass(
             updateDict, key)
     elif key in VEHICLE_ACTION_GROUPS_LABELS:
         updateDict = self.__switchRoleFiltersByKey(updateDict, key)
     if updateDict:
         self.update(updateDict, save)
コード例 #5
0
    def __getFirstClassAvailableRole(self, key):
        currentClasses = self.__getCurrentVehicleClasses()
        if self._filters[key]:
            currentClasses.discard(key)
            currentClasses = currentClasses or set(VEHICLE_CLASS_NAME.ALL())
        else:
            currentClasses.add(key)
        availableRoles = set()
        for vehClass in currentClasses:
            availableRoles.update(
                VEHICLE_ACTION_GROUPS_LABELS_BY_CLASS[vehClass])

        for role in VEHICLE_ACTION_GROUPS_LABELS:
            if role in availableRoles:
                return role

        _logger.error(
            'There is no available role in current vehicle classes. Forced AnyRole on.'
        )
        return _NOT_DEFINED
コード例 #6
0
 def __getCurrentVehicleClasses(self):
     return {
         vehClass
         for vehClass in VEHICLE_CLASS_NAME.ALL() if self._filters[vehClass]
     }