Author: reinhard
Date: 2010-12-03 04:18:29 -0600 (Fri, 03 Dec 2010)
New Revision: 10261

Modified:
   trunk/gnue-forms/
   trunk/gnue-forms/src/GFObjects/GFBlock.py
Log:
Consistently return indication of success or failure for record navigation
methods.



Property changes on: trunk/gnue-forms
___________________________________________________________________
Name: bzr:revision-info
   - timestamp: 2010-12-03 09:21:01.371999979 +0100
committer: Reinhard Müller <reinhard.muel...@bytewise.at>
properties: 
        branch-nick: forms

   + timestamp: 2010-12-03 11:13:18.730999947 +0100
committer: Reinhard Müller <reinhard.muel...@bytewise.at>
properties: 
        branch-nick: forms

Name: bzr:file-ids
   - src/uidrivers/wx/widgets/form.py   
10...@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:src%2Fuidrivers%2Fwx%2Fwidgets%2Fform.py

   + src/GFObjects/GFBlock.py   
1...@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:src%2FGFObjects%2FGFBlock.py

Name: bzr:revision-id:v4
   - 3116 reinhard.muel...@bytewise.at-20100426083500-vtmq0qvd7htz02zx
3117 reinhard.muel...@bytewise.at-20100512151744-2jx8tmtop30kl5n0
3118 reinhard.muel...@bytewise.at-20100705094014-ks9yv7b8gs6ychrb
3119 reinhard.muel...@bytewise.at-20100706085143-hyxadj30ayg28jpx
3120 reinhard.muel...@bytewise.at-20100706140804-sn3npws1ykm81ubx
3121 reinhard.muel...@bytewise.at-20100909134008-5p7jq048nkutldse
3122 reinhard.muel...@bytewise.at-20100923144753-e8hthxho7n5mwg9z
3123 reinhard.muel...@bytewise.at-20100929193018-7r3injoy8g28fwm6
3124 reinhard.muel...@bytewise.at-20100930073631-ilf6smgjt6mfvkpz
3125 reinhard.muel...@bytewise.at-20101011191957-yaj9rkqbervc91ac
3126 reinhard.muel...@bytewise.at-20101020084039-jmfxjbctt6vc2usd
3127 reinhard.muel...@bytewise.at-20101020124425-0dpprxsmanmaenty
3128 reinhard.muel...@bytewise.at-20101020124541-zppkmzww1lnsk8x4
3129 reinhard.muel...@bytewise.at-20101020141905-vjg7r3wihnm7mxam
3130 reinhard.muel...@bytewise.at-20101020143045-pf9ywx1s3hdqbsh7
3131 reinhard.muel...@bytewise.at-20101020143328-ctfmr3fpp5quq1eo
3132 reinhard.muel...@bytewise.at-20101020152139-rlllh9m2qn45atcz
3133 reinhard.muel...@bytewise.at-20101020163022-tgnjcv18nzrc5sfw
3134 reinhard.muel...@bytewise.at-20101020165411-krluvclyw61ef9zp
3135 reinhard.muel...@bytewise.at-20101020185529-pmdkwkm59c1h630f
3136 reinhard.muel...@bytewise.at-20101020195954-1kd9avbmzkrzwzbt
3137 reinhard.muel...@bytewise.at-20101020202048-8q84nx5a54ifxkla
3138 reinhard.muel...@bytewise.at-20101027211256-o7pi879h2x1ceri2
3139 reinhard.muel...@bytewise.at-20101028135833-wftnu2r1cocknxyf
3140 reinhard.muel...@bytewise.at-20101028144709-dbamfa759xoeh127
3141 reinhard.muel...@bytewise.at-20101028145355-uhqftv7n1bcvuz8l
3142 reinhard.muel...@bytewise.at-20101028151042-ueeqwlufysjbke01
3143 reinhard.muel...@bytewise.at-20101028153459-522p7574jw2e11jj
3144 reinhard.muel...@bytewise.at-20101028164956-gua27xm7ad12a218
3145 reinhard.muel...@bytewise.at-20101028181046-hxaehghl84zx9ye0
3146 reinhard.muel...@bytewise.at-20101028194606-598w1lqua0te1m7j
3147 reinhard.muel...@bytewise.at-20101028205855-5k1f08wfdgofenjd
3148 reinhard.muel...@bytewise.at-20101102154340-basdvi9wrxzbx4va
3149 reinhard.muel...@bytewise.at-20101102155520-bbh74pv3qjur1epo
3150 reinhard.muel...@bytewise.at-20101112154024-57tv8mf0wbiycuw1
3151 reinhard.muel...@bytewise.at-20101112155954-ky2g6irsodlzg6yy
3152 reinhard.muel...@bytewise.at-20101114210345-8zsz8bdxtwjytkss
3153 reinhard.muel...@bytewise.at-20101114213813-m10tqf7r2elldh6l
3154 reinhard.muel...@bytewise.at-20101115202536-k0zrvggyt6jy8h0y
3155 reinhard.muel...@bytewise.at-20101122074637-ydmqkqy3udno2n5m
3156 reinhard.muel...@bytewise.at-20101122083336-1n0xys8y4ivtfzo4
3157 reinhard.muel...@bytewise.at-20101201210052-n8pz9fkj6z95zlo2
3158 reinhard.muel...@bytewise.at-20101202012351-kou0f0zchuws25al
3159 reinhard.muel...@bytewise.at-20101202125150-izgvlp3p35t6ny4q
3160 reinhard.muel...@bytewise.at-20101202145210-pf97mpvy5nvhkzqz
3161 reinhard.muel...@bytewise.at-20101202160021-cwhtwpidejk31t6w
3162 reinhard.muel...@bytewise.at-20101202174643-d9ydcs06o8kfy8h7
3163 reinhard.muel...@bytewise.at-20101202180214-zbmb7u0eec43z58g
3164 reinhard.muel...@bytewise.at-20101202202940-kv3x2nnl7ljp8ywo
3165 reinhard.muel...@bytewise.at-20101202204605-4conpgzutzq33iza
3166 reinhard.muel...@bytewise.at-20101202222547-mhsz18h7mqtifatt
3167 reinhard.muel...@bytewise.at-20101203082101-4u4p255falj52btx

   + 3116 reinhard.muel...@bytewise.at-20100426083500-vtmq0qvd7htz02zx
3117 reinhard.muel...@bytewise.at-20100512151744-2jx8tmtop30kl5n0
3118 reinhard.muel...@bytewise.at-20100705094014-ks9yv7b8gs6ychrb
3119 reinhard.muel...@bytewise.at-20100706085143-hyxadj30ayg28jpx
3120 reinhard.muel...@bytewise.at-20100706140804-sn3npws1ykm81ubx
3121 reinhard.muel...@bytewise.at-20100909134008-5p7jq048nkutldse
3122 reinhard.muel...@bytewise.at-20100923144753-e8hthxho7n5mwg9z
3123 reinhard.muel...@bytewise.at-20100929193018-7r3injoy8g28fwm6
3124 reinhard.muel...@bytewise.at-20100930073631-ilf6smgjt6mfvkpz
3125 reinhard.muel...@bytewise.at-20101011191957-yaj9rkqbervc91ac
3126 reinhard.muel...@bytewise.at-20101020084039-jmfxjbctt6vc2usd
3127 reinhard.muel...@bytewise.at-20101020124425-0dpprxsmanmaenty
3128 reinhard.muel...@bytewise.at-20101020124541-zppkmzww1lnsk8x4
3129 reinhard.muel...@bytewise.at-20101020141905-vjg7r3wihnm7mxam
3130 reinhard.muel...@bytewise.at-20101020143045-pf9ywx1s3hdqbsh7
3131 reinhard.muel...@bytewise.at-20101020143328-ctfmr3fpp5quq1eo
3132 reinhard.muel...@bytewise.at-20101020152139-rlllh9m2qn45atcz
3133 reinhard.muel...@bytewise.at-20101020163022-tgnjcv18nzrc5sfw
3134 reinhard.muel...@bytewise.at-20101020165411-krluvclyw61ef9zp
3135 reinhard.muel...@bytewise.at-20101020185529-pmdkwkm59c1h630f
3136 reinhard.muel...@bytewise.at-20101020195954-1kd9avbmzkrzwzbt
3137 reinhard.muel...@bytewise.at-20101020202048-8q84nx5a54ifxkla
3138 reinhard.muel...@bytewise.at-20101027211256-o7pi879h2x1ceri2
3139 reinhard.muel...@bytewise.at-20101028135833-wftnu2r1cocknxyf
3140 reinhard.muel...@bytewise.at-20101028144709-dbamfa759xoeh127
3141 reinhard.muel...@bytewise.at-20101028145355-uhqftv7n1bcvuz8l
3142 reinhard.muel...@bytewise.at-20101028151042-ueeqwlufysjbke01
3143 reinhard.muel...@bytewise.at-20101028153459-522p7574jw2e11jj
3144 reinhard.muel...@bytewise.at-20101028164956-gua27xm7ad12a218
3145 reinhard.muel...@bytewise.at-20101028181046-hxaehghl84zx9ye0
3146 reinhard.muel...@bytewise.at-20101028194606-598w1lqua0te1m7j
3147 reinhard.muel...@bytewise.at-20101028205855-5k1f08wfdgofenjd
3148 reinhard.muel...@bytewise.at-20101102154340-basdvi9wrxzbx4va
3149 reinhard.muel...@bytewise.at-20101102155520-bbh74pv3qjur1epo
3150 reinhard.muel...@bytewise.at-20101112154024-57tv8mf0wbiycuw1
3151 reinhard.muel...@bytewise.at-20101112155954-ky2g6irsodlzg6yy
3152 reinhard.muel...@bytewise.at-20101114210345-8zsz8bdxtwjytkss
3153 reinhard.muel...@bytewise.at-20101114213813-m10tqf7r2elldh6l
3154 reinhard.muel...@bytewise.at-20101115202536-k0zrvggyt6jy8h0y
3155 reinhard.muel...@bytewise.at-20101122074637-ydmqkqy3udno2n5m
3156 reinhard.muel...@bytewise.at-20101122083336-1n0xys8y4ivtfzo4
3157 reinhard.muel...@bytewise.at-20101201210052-n8pz9fkj6z95zlo2
3158 reinhard.muel...@bytewise.at-20101202012351-kou0f0zchuws25al
3159 reinhard.muel...@bytewise.at-20101202125150-izgvlp3p35t6ny4q
3160 reinhard.muel...@bytewise.at-20101202145210-pf97mpvy5nvhkzqz
3161 reinhard.muel...@bytewise.at-20101202160021-cwhtwpidejk31t6w
3162 reinhard.muel...@bytewise.at-20101202174643-d9ydcs06o8kfy8h7
3163 reinhard.muel...@bytewise.at-20101202180214-zbmb7u0eec43z58g
3164 reinhard.muel...@bytewise.at-20101202202940-kv3x2nnl7ljp8ywo
3165 reinhard.muel...@bytewise.at-20101202204605-4conpgzutzq33iza
3166 reinhard.muel...@bytewise.at-20101202222547-mhsz18h7mqtifatt
3167 reinhard.muel...@bytewise.at-20101203082101-4u4p255falj52btx
3168 reinhard.muel...@bytewise.at-20101203101318-9xi1eyhql8obrhy1

Name: bzr:text-parents
   - src/uidrivers/wx/widgets/form.py   
svn-v3-single1-dHJ1bmsvZ251ZS1mb3Jtcw..:3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:10148

   + src/GFObjects/GFBlock.py   
reinhard.muel...@bytewise.at-20101202204605-4conpgzutzq33iza


Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py   2010-12-03 10:18:25 UTC (rev 
10260)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py   2010-12-03 10:18:29 UTC (rev 
10261)
@@ -708,34 +708,41 @@
 
     def first_record(self):
         """
-        Move the record pointer to the first record of the block.
+        Move to the first record.
+
+        @returns: True if the operation was successful (even if the first
+            record was active before already).  False if the block is unbound,
+            in query mode, or has no records at all.
         """
 
         if self._dataSourceLink.type == 'unbound':
-            return
+            return False
 
         if self.mode == 'query':
-            return
+            return False
 
         if self.__resultset is None:
-            return
+            return False
 
         if self.__resultset.isFirstRecord():
-            return
+            return True
 
         self._focus_out()
 
-        self.__resultset.firstRecord()
+        record = self.__resultset.firstRecord()
 
         self._focus_in()
 
+        return (record is not None)
+
     # -------------------------------------------------------------------------
 
     def prev_record(self):
         """
-        Move the record pointer to the previous record in the block.
+        Move to the previous record.
 
-        @returns: True if the record pointer was moved, False if it was already
+        @returns: True if the operation was successful.  False if the block is
+            unbound, in query mode, has no records at all, or already was at
             the first record.
         """
 
@@ -753,7 +760,7 @@
 
         self._focus_out()
 
-        self.__resultset.prevRecord()
+        record self.__resultset.prevRecord()
 
         self._focus_in()
 
@@ -763,13 +770,14 @@
 
     def next_record(self):
         """
-        Move the record pointer to the next record in the block.
+        Move to the previous record.
 
-        If the record is already the last one, a new record will be created if
-        the "autoCreate" attribute of the block is set.
+        If the block is already at the last record and has the "autoCreate"
+        attribute set, a new record will be inserted.
 
-        @returns: True if the record pointer was moved, False if it was already
-            the last record and no new record was inserted.
+        @returns: True if the operation was successful.  False if the block is
+            unbound, in query mode, has no records at all, or already was at
+            the last record and could not insert a new record.
         """
 
         if self._dataSourceLink.type == 'unbound':
@@ -800,83 +808,102 @@
 
     def last_record(self):
         """
-        Move the record pointer to the last record of the block.
+        Move to the last record.
+
+        @returns: True if the operation was successful (even if the last
+            record was active before already).  False if the block is unbound,
+            in query mode, or has no records at all.
         """
 
         if self._dataSourceLink.type == 'unbound':
-            return
+            return False
 
         if self.mode == 'query':
-            return
+            return False
 
         if self.__resultset is None:
-            return
+            return False
 
         if self.__resultset.isLastRecord():
-            return
+            return True
 
         self._focus_out()
 
-        self.__resultset.lastRecord()
+        record = self.__resultset.lastRecord()
 
         self._focus_in()
 
+        return (record is not None)
+
     # -------------------------------------------------------------------------
 
     def goto_record(self, record_number):
         """
-        Move the record pointer to a specific record number in the block.
+        Move to a specific record.
 
-        @param record_number: Record number to jump to. If this is a negative
-            value, move relative to the last record.
+        @param record_number: Zero based record number to move to.  Negative
+            numbers count from the last record.
+        @returns: True if the operation was successful (even if the requested
+            record was active before already).  False if the block is unbound,
+            in query mode, has no records at all, or if the requested record
+            number exceeds the total number of records in the block.
         """
 
         if self._dataSourceLink.type == 'unbound':
-            return
+            return False
 
         if self.mode == 'query':
-            return
+            return False
 
         if self.__resultset is None:
-            return
+            return False
 
         # If record_number is negative, move relative to last record
         if record_number < 0:
             record_number += self.__resultset.getRecordCount()
         if record_number < 0:
-            record_number = 0
+            return False
+        if record_number >= self.__resultset.getRecordCount():
+            return False
 
         if record_number == self.__resultset.getRecordNumber():
-            return
+            return True
 
         self._focus_out()
 
-        if not self.__resultset.setRecord(record_number):
-            self.__resultset.lastRecord()
+        self.__resultset.setRecord(record_number):
 
         self._focus_in()
 
+        return True
+
     # -------------------------------------------------------------------------
 
     def jump_records(self, count):
         """
-        Move the record pointer by a given adjustment relative to the current
-        record.
+        Move by a given number of records.
 
-        @param count: the number of records to move from the current record.
+        An attempt to move outside the available records will result in a
+        successful move to the first/last record.
+
+        @param count: Number of records to move from the current record.
+            Negative numbers move backwards, positive numbers forwards.
+        @returns: True if the operation was successful (even if count is zero),
+            False if the block is unbound, in query mode, or has no records at
+            all.
         """
 
         if count == 0:
-            return
+            return True
 
         if self._dataSourceLink.type == 'unbound':
-            return
+            return False
 
         if self.mode == 'query':
-            return
+            return False
 
         if self.__resultset is None:
-            return
+            return False
 
         if self.__resultset.getRecordNumber() == -1:
             if count > 0:
@@ -889,7 +916,7 @@
         record_number = max(record_number, 0)
         record_number = min(record_number, self.__resultset.getRecordCount())
 
-        self.goto_record(record_number)
+        return self.goto_record(record_number)
 
     # -------------------------------------------------------------------------
 
@@ -898,13 +925,13 @@
         Search for (and jump to) the first record matching a set of field
         values.
 
-        @param params: search conditions in the notation C{fieldname=value}
+        @param params: Search conditions in the notation C{fieldname=value}
             where the fieldname is the name of a GFField.
         @returns: True if a record was found, False otherwise.
         """
 
         if self._dataSourceLink.type == 'unbound':
-            return True
+            return False
 
         if self.mode == 'query':
             return False
@@ -920,11 +947,11 @@
 
         self._focus_out()
 
-        result = (self.__resultset.findRecord(cond) is not None)
+        record = self.__resultset.findRecord(cond)
 
         self._focus_in()
 
-        return result
+        return (record is not None)
 
 
     # -------------------------------------------------------------------------


_______________________________________________
commit-gnue mailing list
commit-gnue@gnu.org
http://lists.gnu.org/mailman/listinfo/commit-gnue

Reply via email to