Author: reinhard Date: 2009-10-28 06:46:40 -0500 (Wed, 28 Oct 2009) New Revision: 10015
Modified: trunk/gnue-forms/src/GFObjects/GFEntry.py trunk/gnue-forms/src/GFObjects/GFField.py trunk/gnue-forms/src/GFObjects/GFImage.py trunk/gnue-forms/src/GFObjects/GFObj.py trunk/gnue-forms/src/GFObjects/GFTabStop.py Log: Cleanup of "is_navigable" logic. Modified: trunk/gnue-forms/src/GFObjects/GFEntry.py =================================================================== --- trunk/gnue-forms/src/GFObjects/GFEntry.py 2009-10-28 10:38:57 UTC (rev 10014) +++ trunk/gnue-forms/src/GFObjects/GFEntry.py 2009-10-28 11:46:40 UTC (rev 10015) @@ -106,16 +106,6 @@ # ------------------------------------------------------------------------- - # Implementation of virtual methods - # ------------------------------------------------------------------------- - - def _is_navigable_(self, mode): - - return self.navigable and self._block.navigable \ - and self._block.get_record_count() > 0 and not self.hidden - - - # ------------------------------------------------------------------------- # Indicate whether this widget makes use of the separate label column # ------------------------------------------------------------------------- Modified: trunk/gnue-forms/src/GFObjects/GFField.py =================================================================== --- trunk/gnue-forms/src/GFObjects/GFField.py 2009-10-28 10:38:57 UTC (rev 10014) +++ trunk/gnue-forms/src/GFObjects/GFField.py 2009-10-28 11:46:40 UTC (rev 10015) @@ -247,7 +247,7 @@ # Determine wether a field is editable or not # ------------------------------------------------------------------------- - def is_editable(self, offset): + def is_editable(self, offset=0): if self._block.mode == 'query': return self._block.queryable Modified: trunk/gnue-forms/src/GFObjects/GFImage.py =================================================================== --- trunk/gnue-forms/src/GFObjects/GFImage.py 2009-10-28 10:38:57 UTC (rev 10014) +++ trunk/gnue-forms/src/GFObjects/GFImage.py 2009-10-28 11:46:40 UTC (rev 10015) @@ -64,9 +64,3 @@ if not hasattr(self, 'Char__height'): self.Char__height = int(gConfigForms('widgetHeight')) - - # ------------------------------------------------------------------------- - - def _is_navigable_(self, mode): - - return False Modified: trunk/gnue-forms/src/GFObjects/GFObj.py =================================================================== --- trunk/gnue-forms/src/GFObjects/GFObj.py 2009-10-28 10:38:57 UTC (rev 10014) +++ trunk/gnue-forms/src/GFObjects/GFObj.py 2009-10-28 11:46:40 UTC (rev 10015) @@ -76,7 +76,6 @@ GObj.__init__(self, parent, object_type) self.hidden = False - self.readonly = False self.name = "%s%x" % (("%s" % self.__class__).split('.')[-1][:-2], id(self)) self._visibleIndex = 0 @@ -91,22 +90,6 @@ # ------------------------------------------------------------------------- - # Check wether an object is navigable or not - # ------------------------------------------------------------------------- - - def is_navigable(self, mode='edit'): - """ - Return wether the object is currently navigable or not. - - @param mode: current state of the object. Can be 'edit', 'query' or - 'new' - @returns: True or False - """ - - return self._is_navigable_(mode) - - - # ------------------------------------------------------------------------- # Phase 1 initialization # ------------------------------------------------------------------------- @@ -195,24 +178,6 @@ # ------------------------------------------------------------------------- - # Virtual methods to be implemented by descendants - # ------------------------------------------------------------------------- - - def _is_navigable_(self, mode): - """ - Return wether the object is currently navigable or not. - - Descendants can overwrite this method to return either True or False. If - this method is not overwritten it returns False. - - @param mode: current state of the object. Can be 'edit', 'query' or - 'new' - """ - - return False - - - # ------------------------------------------------------------------------- # Phase 1 initialization # ------------------------------------------------------------------------- Modified: trunk/gnue-forms/src/GFObjects/GFTabStop.py =================================================================== --- trunk/gnue-forms/src/GFObjects/GFTabStop.py 2009-10-28 10:38:57 UTC (rev 10014) +++ trunk/gnue-forms/src/GFObjects/GFTabStop.py 2009-10-28 11:46:40 UTC (rev 10015) @@ -47,7 +47,7 @@ # Attributes # ------------------------------------------------------------------------- - navigable = None + navigable = False # ------------------------------------------------------------------------- # Class variables @@ -106,26 +106,6 @@ # ------------------------------------------------------------------------- - - def _is_navigable_ (self, mode): - """ - In general an object is navigable if it is not hidden and it's - navigable xml-attribute is set. If mode is 'query' it additionally - depends wether an object is 'queryable' or not. If mode is 'edit' or - 'new' only objects are navigable which are not 'readonly'. - """ - - if self.hidden: - return False - - else: - if mode == 'query': - return self.navigable and self._navigableInQuery_ - else: - return self.navigable and (not self.readonly) - - - # ------------------------------------------------------------------------- # UI events (called from UIEntry/UIButton) # ------------------------------------------------------------------------- @@ -359,7 +339,39 @@ self.uiWidget._ui_set_editable_(index, self._field.is_editable(offset)) + # ------------------------------------------------------------------------- + # Find out whether this control is navigable + # ------------------------------------------------------------------------- + + def is_navigable(self, mode): + """ + Return True if the user should be able to tab to this control, False + otherwise. + """ + + # Hidden control: not navigable. + if self.hidden: + return False + + # Current row not enabled (i.e. no records in this block): not + # navigable. + if not self.__current_row_enabled: + return False + + # Attached field is not editable in current mode: not navigable. + if isinstance(self, GFFieldBound) and not self._field.is_editable(): + return False + + # Control not navigable in query mode. + if mode == 'query' and not self._navigableInQuery_: + return False + + # Normal case: user setting. + return self.navigable + + + # ------------------------------------------------------------------------- # Change the focus to this object # ------------------------------------------------------------------------- _______________________________________________ commit-gnue mailing list commit-gnue@gnu.org http://lists.gnu.org/mailman/listinfo/commit-gnue