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