objects.logic.entity.filter.baseFilter.baseFilter Class Reference

The baseFilter class contains all filtering logic needed to determine if a given networkEntity should be displayed. More...

Inherited by objects.logic.entity.filter.customFilter.customFilter.

List of all members.

Public Member Functions

def __init__
def getUserFriendlyZoomLevel
 will return a string indicating what the zoom level is, given some large integer.
def shouldDisplayLines
 Returns True if the lines should be displayed given the current Zoom/Settings combination.
def shouldDisplayLabels
 Returns True if the map labels should be displayed given the current Zoom/Settings combination.
def shouldDisplayEntity
 returns a boolean indicating if the supplied networkEntity object should be displayed or not
def setFromDisplayConfig
 Sets its internal members based on an optionsConfigurator object, and a zoom Factor value.

Public Attributes

 minXferCheck
 minXfer
 maxIdleTimeCheck
 maxIdleTime
 lineZoomOption
 lineZoomLevel
 labelZoomOption
 labelZoomLevel
 filteredItems
 zoomRanking
 initilized
 zoomFactor
 minXferScale
 idleTimeScale


Detailed Description

The baseFilter class contains all filtering logic needed to determine if a given networkEntity should be displayed.

Usually the baseFilter will expose a single shouldDisplay() method returning a boolean value which will indicate whether the item should be displayed or not.

Internally the baseFilter class just contain all global filter settings.

Definition at line 31 of file baseFilter.py.


Member Function Documentation

def objects.logic.entity.filter.baseFilter.baseFilter.__init__ (   self  ) 

Reimplemented in objects.logic.entity.filter.customFilter.customFilter.

Definition at line 32 of file baseFilter.py.

00032                       :
00033         self.minXferCheck = False
00034         self.minXfer = -1
00035         
00036         self.maxIdleTimeCheck = False
00037         self.maxIdleTime = -1
00038         
00039         self.lineZoomOption = "Always"
00040         self.lineZoomLevel = globalStrings.DISP_SETT_COUNTRY_STATE
00041         
00042         self.labelZoomOption = "Always"
00043         self.labelZoomLevel = globalStrings.DISP_SETT_COUNTRY_STATE
00044         
00045         self.filteredItems = []        
00046         
00047         zoomFactor = 0
00048         
00049         # zoom priority dictionary        
00050         self.zoomRanking = dict()
00051         
00052         self.zoomRanking[globalStrings.DISP_SETT_CITY] = 0
00053         self.zoomRanking[globalStrings.DISP_SETT_COUNTRY_STATE] = 1
00054         self.zoomRanking[globalStrings.DISP_SETT_CONTINENT] = 2
00055         self.zoomRanking[globalStrings.DISP_SETT_WORLDWIDE] = 3
00056         
00057         self.initilized = False
00058     
    ## will return a string indicating what the zoom level is, given some large integer.

def objects.logic.entity.filter.baseFilter.baseFilter.getUserFriendlyZoomLevel (   self,
  zoomFactor 
)

will return a string indicating what the zoom level is, given some large integer.

possible values are: "WorldWide", "Continent", "Country/State" or "City"

Parameters:
zoomFactor Integer (fig_axes Axes Range)
Returns:
String

Definition at line 63 of file baseFilter.py.

00063                                                   :       
00064                 
00065         if zoomFactor >= 8500000: return globalStrings.DISP_SETT_WORLDWIDE
00066         elif zoomFactor < 8500000 and zoomFactor >= 2000000: return globalStrings.DISP_SETT_CONTINENT
00067         elif zoomFactor < 2000000 and zoomFactor >= 500000: return globalStrings.DISP_SETT_COUNTRY_STATE
00068         else: return globalStrings.DISP_SETT_CITY
00069         
00070     
00071     

def objects.logic.entity.filter.baseFilter.baseFilter.setFromDisplayConfig (   self,
  config,
  zoomFactor 
)

Sets its internal members based on an optionsConfigurator object, and a zoom Factor value.

Parameters:
config optionsConfigurator object
zoomFactor 

Definition at line 149 of file baseFilter.py.

00149                                                       :
00150     
00151         self.zoomFactor = zoomFactor
00152              
00153         self.minXferCheck, self.minXfer, self.minXferScale = config.glb_getMinXferOptions()
00154         self.maxIdleTimeCheck, self.maxIdleTime, self.idleTimeScale = config.glb_getMaxIdleOptions()
00155         
00156         self.lineZoomOption, self.lineZoomLevel = config.glb_getLineOptions()
00157         self.labelZoomOption, self.labelZoomLevel = config.glb_getLabelOptions()
00158 
00159         
00160         self.initilized = True
00161         
        

def objects.logic.entity.filter.baseFilter.baseFilter.shouldDisplayEntity (   self,
  networkEntity 
)

returns a boolean indicating if the supplied networkEntity object should be displayed or not

Parameters:
networkEntity networkEntity Object
Returns:
Boolean

Reimplemented in objects.logic.entity.filter.customFilter.customFilter.

Definition at line 124 of file baseFilter.py.

00124                                                 :
00125         
00126         if self.initilized == False: 
00127             return False
00128 
00129         if self.minXferCheck == True:
00130             ajdXfer = float(networkEntity.totalBytes)/float(self.minXferScale) 
00131             if ajdXfer < self.minXfer:
00132                 return False
00133             
00134         if self.maxIdleTimeCheck == True:
00135             ts = time.time()
00136             
00137             deltaTime = (ts - networkEntity.lastUpdateTS) / self.idleTimeScale
00138             if deltaTime > self.maxIdleTime:
00139                 return False
00140             
00141         
00142         return True
00143     
00144     
00145     
    ## Sets its internal members based on an optionsConfigurator object, and a zoom Factor value

def objects.logic.entity.filter.baseFilter.baseFilter.shouldDisplayLabels (   self  ) 

Returns True if the map labels should be displayed given the current Zoom/Settings combination.

Returns:
Boolean

Definition at line 99 of file baseFilter.py.

00099                                  :
00100         # figure out zoom factor, then decide
00101         if self.labelZoomOption == "Always":
00102             return True
00103         elif self.labelZoomOption == "Never":
00104             return False
00105         else:
00106             try:
00107                 currZoomRank = self.zoomRanking[self.getUserFriendlyZoomLevel(self.zoomFactor)]                
00108                 settingLabelZoomRank = self.zoomRanking[ self.labelZoomLevel]
00109             except Exception, ex:
00110                 # probably something out of range
00111                 errMsg = ": Could not determine Label zoom ranking (Defaulting). Error: %s" % (ex)
00112                 logger.log(__name__ + errMsg)
00113                 
00114                 return True                
00115             else:
00116                 if currZoomRank <= settingLabelZoomRank:
00117                     return True
00118                 else:
00119                     return False    
00120     
    ## returns a boolean indicating if the supplied networkEntity object should be displayed or not

def objects.logic.entity.filter.baseFilter.baseFilter.shouldDisplayLines (   self  ) 

Returns True if the lines should be displayed given the current Zoom/Settings combination.

Returns:
Boolean

Definition at line 74 of file baseFilter.py.

00074                                 :
00075         # figure out zoom factor, then decide
00076         if self.lineZoomOption == "Always":
00077             return  True
00078         elif self.lineZoomOption == "Never":
00079             return False
00080         else:
00081             try:
00082                 currZoomRank = self.zoomRanking[self.getUserFriendlyZoomLevel(self.zoomFactor)]                
00083                 settingLineZoomRank = self.zoomRanking[ self.lineZoomLevel]
00084             except Exception, ex:
00085                 # probably something out of range
00086                 errMsg = ": Could not determine Line zoom ranking (Defaulting). Error: %s" % (ex)
00087                 logger.log(__name__ + errMsg)
00088                 
00089                 return True                
00090             else:
00091                 if currZoomRank <= settingLineZoomRank:
00092                     return True
00093                 else:
00094                     return False
00095     
00096     
    ## Returns True if the map labels should be displayed given the current Zoom/Settings combination


Member Data Documentation

Definition at line 45 of file baseFilter.py.

Definition at line 154 of file baseFilter.py.

Definition at line 57 of file baseFilter.py.

Definition at line 43 of file baseFilter.py.

Definition at line 42 of file baseFilter.py.

Definition at line 40 of file baseFilter.py.

Definition at line 39 of file baseFilter.py.

Definition at line 37 of file baseFilter.py.

Definition at line 36 of file baseFilter.py.

Definition at line 34 of file baseFilter.py.

Definition at line 33 of file baseFilter.py.

Definition at line 153 of file baseFilter.py.

Definition at line 151 of file baseFilter.py.

Definition at line 50 of file baseFilter.py.


The documentation for this class was generated from the following file:

Generated on Mon Mar 30 00:26:41 2009 for EyeSpy by  doxygen 1.5.8