[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/gnuef TODO samples/track/create_track.sql ...
From: |
James Thompson |
Subject: |
gnue/gnuef TODO samples/track/create_track.sql ... |
Date: |
Mon, 08 Jan 2001 17:55:10 -0800 |
CVSROOT: /cvs
Module name: gnue
Changes by: James Thompson <address@hidden> 01/01/08 17:55:10
Modified files:
gnuef : TODO
gnuef/samples/track: create_track.sql tracking.gfd
gnuef/src : GFEvent.py GFForm.py GFObjects.py GFOptions.py
UIwxpython.py
Log message:
More master/detail changes
Fixed a bug involving hidden fields messing up the visibleCount on
other fields in the same block
Odds and ends
CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/TODO.diff?r1=1.33&r2=1.34
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/samples/track/create_track.sql.diff?r1=1.1&r2=1.2
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/samples/track/tracking.gfd.diff?r1=1.1&r2=1.2
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFEvent.py.diff?r1=1.10&r2=1.11
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFForm.py.diff?r1=1.56&r2=1.57
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFObjects.py.diff?r1=1.49&r2=1.50
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFOptions.py.diff?r1=1.12&r2=1.13
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/UIwxpython.py.diff?r1=1.50&r2=1.51
Patches:
Index: gnue/gnuef/TODO
diff -u gnue/gnuef/TODO:1.33 gnue/gnuef/TODO:1.34
--- gnue/gnuef/TODO:1.33 Fri Dec 22 15:14:43 2000
+++ gnue/gnuef/TODO Mon Jan 8 17:55:10 2001
@@ -2,16 +2,14 @@
name in []
**MUST HAVES for 0.1.0
-** debug master/detail [jamest]
** windows support (ODBC?) [jade]
-** fix mySQL support [jade]
**Like to haves for 0.1.0
** add GFBox support to UIwxpython
** Add support for more win/gtk like focus system
pgup/pgdown effect page not block
- Add layout manager support[perlpoet]
+ Add layout manager support
clean up code [everyone working on the code]
provide better seperation of Objects in the Data system
@@ -54,7 +52,6 @@
Add toolbar support
-
Entry widget enhancements
Add support of mouse focus to the charater
@@ -99,4 +96,4 @@
Make labels so you can align text and add width property.
Add checkbox and memo box widgets.
-
\ No newline at end of file
+
Index: gnue/gnuef/samples/track/create_track.sql
diff -u gnue/gnuef/samples/track/create_track.sql:1.1
gnue/gnuef/samples/track/create_track.sql:1.2
--- gnue/gnuef/samples/track/create_track.sql:1.1 Sat Dec 16 14:15:27 2000
+++ gnue/gnuef/samples/track/create_track.sql Mon Jan 8 17:55:10 2001
@@ -4,11 +4,11 @@
create table programmer
(
id int DEFAULT nextval('seq_programmer_id'),
- irc_handle char(8) UNIQUE,
+ irc_handle varchar(8) UNIQUE,
name varchar(60),
email varchar(60),
url varchar(60),
- assignment_status char(1)
+ assignment_status varchar(1)
);
@@ -19,7 +19,7 @@
todo varchar(60),
priority varchar(20),
difficulty int,
- version char(10)
+ version varchar(10)
);
Index: gnue/gnuef/samples/track/tracking.gfd
diff -u gnue/gnuef/samples/track/tracking.gfd:1.1
gnue/gnuef/samples/track/tracking.gfd:1.2
--- gnue/gnuef/samples/track/tracking.gfd:1.1 Sat Dec 16 14:15:27 2000
+++ gnue/gnuef/samples/track/tracking.gfd Mon Jan 8 17:55:10 2001
@@ -2,26 +2,21 @@
<form title="Programming Staff">
-<options>
- <name>Programming Staff</name>
- <version>0.0.1</version>
- <height>21</height>
- <width>65</width>
-</options>
+ <options>
+ <name>Programming Staff</name>
+ <version>0.0.1</version>
+ <height>21</height>
+ <width>65</width>
+ </options>
<database name="dtbsgnue" provider="postgresql" dbname="gnue" host="gnue"/>
- <datasource name="dtsrcprogrammer" database="dtbsgnue" table="programmer"
cache="5"/>
- <datasource name="dtsrctodo" database="dtbsgnue" table="todo" cache="5"/>
-
-<!--
-
- <datasource name="dtsrcprogrammer" cache="5"/>
- <datasource name="dtsrctodo" cache="5"/>
--->
-
+ <datasource name="dtsrcprogrammer" database="dtbsgnue" table="programmer"/>
+ <datasource name="dtsrctodo" database="dtbsgnue" table="todo"/>
<page>
-<!-- Master Section -->
+
+ <!-- Master Section -->
<block name="blckdtsrcprogrammer" datasource="dtsrcprogrammer">
+ <entry name="id" hidden=""/>
<label text="Nick Name" x="1" y="1"/>
<entry name="ntryirc_handle" field="irc_handle" x="1" y="2" width="15"
height="1"/>
<label text="Assign." x="18" y="1"/>
@@ -34,10 +29,9 @@
<label text="URL" x="1" y="7"/>
<entry name="ntryurl" field="url" x="1" y="8" width="25" height="1"/>
</block>
-
-<!-- Detail Section -->
- <block name="blcktodo" datasource="dtsrctodo" master="dtsrcprogrammer.id"
detail="programmer">
+ <!-- Detail Section -->
+ <block name="blcktodo" datasource="dtsrctodo"
master="blckdtsrcprogrammer.id" detail="programmer">
<label text="Todo Item" x="1" y="9"/>
<label text="Priority" x="32" y="9"/>
<label text="Difficulty" x="43" y="9"/>
@@ -46,7 +40,13 @@
<entry name="ntrypriority" field="priority" x="32" y="10" width="10"
height="1" visibleCount="10"/>
<entry name="ntrydifficulty" field="difficulty" x="43" y="10"
width="10" height="1" visibleCount="10"/>
<entry name="ntryversion" field="version" x="54" y="10" width="10"
height="1" visibleCount="10"/>
+ <entry name="programmer" hidden="" />
</block>
</page>
</form>
+
+
+
+
+
Index: gnue/gnuef/src/GFEvent.py
diff -u gnue/gnuef/src/GFEvent.py:1.10 gnue/gnuef/src/GFEvent.py:1.11
--- gnue/gnuef/src/GFEvent.py:1.10 Mon Dec 18 11:59:28 2000
+++ gnue/gnuef/src/GFEvent.py Mon Jan 8 17:55:10 2001
@@ -60,16 +60,6 @@
self.incommingEvent[event.event] (event)
except KeyError:
GFDebug.printMesg(3, "Unknown Event: %s " % (event.getEvent()))
-
-# def processEvent(self, event):
-# try:
-# if GFDebug > 99:
-# print "received %s event" % (event.getEvent())
-# self.incommingEvent[event.getEvent()] (event)
-# except KeyError:
-# if GFDebug > 99:
-# print "Unknown Event: %s " % (event.getEvent())
-
Index: gnue/gnuef/src/GFForm.py
diff -u gnue/gnuef/src/GFForm.py:1.56 gnue/gnuef/src/GFForm.py:1.57
--- gnue/gnuef/src/GFForm.py:1.56 Fri Dec 22 15:05:05 2000
+++ gnue/gnuef/src/GFForm.py Mon Jan 8 17:55:10 2001
@@ -58,7 +58,6 @@
'recordSWITCHED' : self.recordSwitched,
'notifyMASTERSWITCH': self.notifyDetailBlocks,
'updateUIENTRY' : self.updateUIEntry,
-# 'uiINITIALIZED' : self.uiInitialized,
'msgBOX' : self.msgBox
}
@@ -163,30 +162,19 @@
if object.getObjectType() =='GFDatabase':
self.databaseDictionary[object.name]=object
- #Test theory
+ #Login
authcode = ["", "", object]
self.dispatchEvent( GFEvent('getLogin', authcode) )
user = authcode[0]
passwd = authcode[1]
- #
-# # begin complete crap hack
-# print "Logging into database %s on host %s" %(object.dbname,
object.host)
-# print ("Enter Username:")
-# user = raw_input()
-#
-# print ("Enter Password: ")
-# os.system("stty -echo")
-# passwd = raw_input()
-# os.system("stty echo")
-# # end complete crap hack
-
try:
object.initialize(user,passwd)
except:
os.system("stty sane")
print "Login failure"
sys.exit()
+
def initTriggers(self, object):
if object.getObjectType() == "GFTrigger":
object.triggerns.update( self.triggerns )
@@ -199,6 +187,7 @@
#
# Routines to update parts of the UI's status bar
+ #
def updateInsertMode(self):
self.dispatchEvent(GFEvent('uiUPDATESTATUS',[None,None,self.insertMode,None,None,None,None]))
@@ -224,9 +213,7 @@
def updateRecordStatus(self):
status =
self.currentBlock.dataSourceLink.resultSetStatus[self.currentBlock.currentRecord]
self.dispatchEvent(GFEvent('uiUPDATESTATUS',[None,status,None,None,None,None,None]))
-
-
-
+
def updateStatus(self):
self.updateTip()
self.updateInsertMode()
@@ -234,7 +221,6 @@
self.updateRecordStatus()
self.updatePageCounter()
-
def updateUIEntry(self,event):
self.dispatchEvent(GFEvent('updateENTRY',event.data));
@@ -258,12 +244,16 @@
#
# Incomming Event handlers
#
-
- #
- # Mini functions that pass events on to lower level
- # objects.
- #
def nextRecord(self, event):
+ for block in self.blockList:
+ if hasattr(block,'master'):
+ masterBlock,masterField = string.split(block.master,'.')
+ if masterBlock == self.currentBlock.name:
+ if not block.isSaved():
+ message = GFMsgBox(self, GFOptions._msgNOTSAVED)
+ message.show()
+ return
+
self.dispatchEvent(GFEvent('uiNEXTRECORD',self.currentEntry))
self.dispatchEvent(GFEvent('nextRECORD',self.currentBlock))
self.dispatchEvent(GFEvent('gotoENTRY',self.currentEntry));
@@ -271,6 +261,14 @@
self.updateRecordStatus()
def prevRecord(self, event):
+ for block in self.blockList:
+ if hasattr(block,'master'):
+ masterBlock,masterField = string.split(block.master,'.')
+ if masterBlock == self.currentBlock.name:
+ if not block.isSaved():
+ message = GFMsgBox(self, GFOptions._msgNOTSAVED)
+ message.show()
+ return
self.dispatchEvent(GFEvent('uiPREVRECORD',self.currentEntry))
self.dispatchEvent(GFEvent('prevRECORD',self.currentBlock))
self.dispatchEvent(GFEvent('gotoENTRY',self.currentEntry));
@@ -295,7 +293,7 @@
def executeExit(self, event):
for block in self.blockList:
if not block.isSaved():
- message = GFMsgBox(self, block.name+":"+GFOptions._msgNOTSAVED)
+ message = GFMsgBox(self, GFOptions._msgNOTSAVED)
message.show()
return
else:
@@ -308,7 +306,7 @@
return
for block in self.blockList:
if not block.isSaved():
- message = GFMsgBox(self, block.name+":"+GFOptions._msgNOTSAVED)
+ message = GFMsgBox(self, GFOptions._msgNOTSAVED)
message.show()
return
@@ -442,6 +440,8 @@
nextBlock = object
break
+
self.currentBlock.dispatchEvent(GFEvent('switchRECORD',[self.currentBlock.currentRecord,self.currentBlock.currentRecord]))
+
self.currentBlock.processTrigger('Pre-FocusOut')
self.currentBlock.processTrigger('Post-FocusOut')
nextBlock.processTrigger('Pre-FocusIn')
@@ -477,6 +477,8 @@
nextBlock = object
+
self.currentBlock.dispatchEvent(GFEvent('switchRECORD',[self.currentBlock.currentRecord,self.currentBlock.currentRecord]))
+
self.currentBlock.processTrigger('Pre-FocusOut')
self.currentBlock.processTrigger('Post-FocusOut')
nextBlock.processTrigger('Pre-FocusIn')
@@ -506,13 +508,14 @@
# moved to a new location
#
def cursorMove(self, event):
- if event.getEvent() == 'requestCURSOREND':
+ eventType = event.getEvent()
+ if eventType == 'requestCURSOREND':
self.currentEntry.cursorPosition = len(self.currentEntry.value)
- elif event.getEvent() == 'requestCURSORHOME':
+ elif eventType == 'requestCURSORHOME':
self.currentEntry.cursorPosition = 0
- elif event.getEvent() == 'requestCURSORLEFT' and
self.currentEntry.cursorPosition > 0:
+ elif eventType == 'requestCURSORLEFT' and self.currentEntry.cursorPosition
> 0:
self.currentEntry.cursorPosition = self.currentEntry.cursorPosition - 1
- elif event.getEvent() == 'requestCURSORRIGHT':
+ elif eventType == 'requestCURSORRIGHT':
if self.currentEntry.cursorPosition < len(self.currentEntry.value):
self.currentEntry.cursorPosition= self.currentEntry.cursorPosition + 1
@@ -533,7 +536,6 @@
# Hack!
self.dispatchEvent(GFEvent('updateDETAILBLOCK',self.currentBlock))
-
#
# keyPress
@@ -591,7 +593,6 @@
self.currentEntry.setValue(currentvalue)
else:
self.dispatchEvent(GFEvent('formALERT','Field is readonly'))
-
def msgBox(self, event):
Index: gnue/gnuef/src/GFObjects.py
diff -u gnue/gnuef/src/GFObjects.py:1.49 gnue/gnuef/src/GFObjects.py:1.50
--- gnue/gnuef/src/GFObjects.py:1.49 Fri Dec 22 15:05:05 2000
+++ gnue/gnuef/src/GFObjects.py Mon Jan 8 17:55:10 2001
@@ -18,6 +18,10 @@
import GFDebug
import string
+# These should really go somewhere else
+TRUE = 1
+FALSE = 0
+
#
#!!Hack warning!!, have moved GFTriggerAware into this file
#to prevent circular depenancies until a better solution
@@ -210,9 +214,9 @@
if hasattr(self,"master"):
masterBlock,masterField = string.split(self.master,'.')
- fieldValue = self.form.findValue(masterBlock, masterField)
+ fieldValue = str(self.form.findValue(masterBlock, masterField))
if len(fieldValue) > 0:
- self.dataSourceLink.setField(self.recordCount,self.detail,fieldValue)
+
self.dataSourceLink.setField(self.recordCount,self.detail,fieldValue,TRUE)
oldRecord = self.currentRecord
self.currentRecord = 0
@@ -253,18 +257,19 @@
GFDebug.printMesg(1, "processing commit")
self.mode='commit'
+
self.dispatchEvent(GFEvent('switchRECORD',[self.currentRecord,self.currentRecord]));
+
# if this is a detail and the key isn't filled from master block then fill
it
if hasattr(self,"master"):
masterBlock,masterField = string.split(self.master,'.')
fieldValue = self.form.findValue(masterBlock, masterField)
+
if len(fieldValue) > 0:
- for count in range(self.recordCount):
- if self.dataSourceLink.getField(count,self.detail) in (0,None):
- self.dataSourceLink.setField(count,self.detail,fieldValue)
+ for count in range(self.recordCount+1):
+ self.dataSourceLink.setField(count,self.detail,fieldValue, TRUE)
- self.dispatchEvent(GFEvent('requestNEXTRECORD'));
self.dataSourceLink.commit()
- #self.recordCount =
self.form.datasourceDictionary[self.datasource].getLastRecordNumber()
+
self.recordCount = self.dataSourceLink.getLastRecordNumber()
self.currentRecord = 0
@@ -272,7 +277,6 @@
self.dispatchEvent(GFEvent('switchRECORD',[-1,0]));
self.dispatchEvent(GFEvent('requestPREVRECORD',None))
self.dispatchEvent(GFEvent('requestNEXTRECORD',None))
-
self.mode='normal'
#
@@ -280,26 +284,25 @@
#
def processRollback(self,event):
self.currentRecord = 0
- self.dispatchEvent(GFEvent('switchRECORD',[-1,self.currentRecord]))
- self.dispatchEvent(GFEvent('requestPREVRECORD',None))
- self.dispatchEvent(GFEvent('requestNEXTRECORD',None))
+ self.recordCount = 0
self.dataSourceLink.clear()
- self.recordCount = self.dataSourceLink.getLastRecordNumber()
- self.currentRecord = self.recordCount
self.dispatchEvent(GFEvent('switchRECORD',[-1,0]));
+ self.dispatchEvent(GFEvent('requestPREVRECORD',None))
+ self.dispatchEvent(GFEvent('requestNEXTRECORD',None))
#
# processQuery
#
def processQuery(self, event):
if event.data == self:
- if event.getEvent() == 'initQUERY':
+ eventType = event.getEvent()
+ if eventType == 'initQUERY':
if self.mode != 'query':
self.mode = 'query'
else:
self.mode = 'normal'
self.processRollback(None)
- elif event.getEvent() == 'processQUERY':
+ elif eventType == 'processQUERY':
# Implement sloppyFocus system
for entry in self.entryList:
if hasattr(entry,'sloppyQuery'):
@@ -322,7 +325,6 @@
self.dispatchEvent(GFEvent('switchRECORD',[-1,0]));
self.currentRecord = 0
-
#self.dispatchEvent(GFEvent('uiUPDATESTATUS',[None,None,None,self.currentRecord,self.recordCount]))
#
# updateDetail - makes block check to see if it needs to update itself
@@ -332,14 +334,18 @@
if hasattr(self,'master'):
masterBlock,masterField = string.split(self.master,'.')
if masterBlock == event.data.name:
- fieldValue = self.form.findValue(masterBlock, masterField)
+ fieldValue = str(self.form.findValue(masterBlock, masterField))
self.dataSourceLink.clear()
if len(fieldValue) > 0:
GFDebug.printMesg( 10, "Master Field value is %s" % (fieldValue))
## clear the link
- self.dataSourceLink.setField(0,self.detail,fieldValue)
+ self.dataSourceLink.setField(0,self.detail,fieldValue,TRUE)
self.dataSourceLink.query()
+ if self.recordCount < 0:
+ self.dataSourceLink.clear()
+
self.recordCount = self.dataSourceLink.getLastRecordNumber()
+ GFDebug.printMesg( 3, "We now have %s records in memory" %
self.recordCount )
self.dispatchEvent(GFEvent('switchRECORD',[-1,0]));
self.currentRecord = 0
@@ -379,6 +385,8 @@
def initialize(self):
if not hasattr(self,'field'):
+ GFDebug.printMesg(1,"%s" % self.getObjectType())
+ GFDebug.printMesg(1,"%s" % self.__dict__)
self.field = self.name
self.block.dataSourceLink.addField(self.field)
@@ -511,7 +519,6 @@
if key in self.dataConnection.getFieldList(self.table).keys():
mask[key]=self.resultSet[0][key]
-
self.clear()
if not hasattr(self,'order_by'):
self.order_by = None
@@ -602,7 +609,6 @@
self.resultSetStatus[recordNumber] = 'Deleted'
GFDebug.printMesg(1, "removing object: %s" %
(self.resultSet[recordNumber][self.dataConnection.uniqueKey]))
-
def getField(self,recordNumber,fieldName):
try:
@@ -610,14 +616,23 @@
except:
return ''
- def setField(self,recordNumber,fieldName,value):
+ #
+ # setField
+ #
+ # The internal call argument allows other objects to
+ # adjust field values w/o altering the entries state.
+ # mainly usefull to set default values or master/detail
+ # values
+ #
+ def setField(self,recordNumber,fieldName,value,internalCall=FALSE):
if len(self.resultSet) > recordNumber:
if len(value) == 0:
value = None
if self.resultSet[recordNumber][fieldName] != value:
self.resultSet[recordNumber][fieldName] = value
- self.resultSetStatus[recordNumber] = 'modified'
+ if not internalCall:
+ self.resultSetStatus[recordNumber] = 'modified'
#lock that record in the datasource
def addField(self,fieldName):
@@ -665,28 +680,39 @@
self.uniqueKey = self.link.getUniqueKey(table)
return self.link.getFieldList(table)
-class GFFields:
- def __init__(self,block):
- self.block = block
-
- def __getattr__(self,name):
- for item in self.block.entryList:
- if item.name == name:
- return item.value
- return None
-
- def __setattr__(self,name,value):
- try:
- for item in self.__dict__['block'].__dict__['entryList']:
- if item.name == name:
- item.cursorPosition = len(value)
- item.setValue(value)
- return
+############################################################
+# GFFields
+#
+# I'm commenting this out as I don't recall what it's for
+# jamest
+#
+##class GFFields:
+## def __init__(self,block):
+## self.block = block
+
+## def __getattr__(self,name):
+## for item in self.block.entryList:
+## if item.name == name:
+## return item.value
+## return None
+
+## def __setattr__(self,name,value):
+## try:
+## for item in self.__dict__['block'].__dict__['entryList']:
+## if item.name == name:
+## item.cursorPosition = len(value)
+## item.setValue(value)
+## return
- except KeyError:
- self.__dict__[name] = value
- return
+## except KeyError:
+## self.__dict__[name] = value
+## return
+############################################################
+# GFMsgBox
+#
+# Contains a message for the UI to display
+#
class GFMsgBox:
def __init__(self, parent, message):
self.message = message
@@ -695,3 +721,14 @@
def show(self):
self.parent.dispatchEvent( GFEvent( 'msgBox', self) )
+
+
+
+
+
+
+
+
+
+
+
Index: gnue/gnuef/src/GFOptions.py
diff -u gnue/gnuef/src/GFOptions.py:1.12 gnue/gnuef/src/GFOptions.py:1.13
--- gnue/gnuef/src/GFOptions.py:1.12 Mon Dec 18 16:27:24 2000
+++ gnue/gnuef/src/GFOptions.py Mon Jan 8 17:55:10 2001
@@ -1,23 +1,30 @@
-# Adjust for your install (only used for graphics right now)
-prefix="/usr/local/gnue"
-FormDir =prefix+"/forms"
+# Adjust for your install
+prefix="/usr/local/gnue"
+FormDir =prefix+"/forms" # Where gfclient looks for forms if symlink to
gfclient
+ # is the form name to run
+
+# Startup graphic
splashScreenBMP=prefix+"/shared/gnuef-splash.bmp"
+
+# GNUe logo
smallBMP=prefix+"/shared/gnue.bmp"
+
# Might need altered but I doubt it
+widgetHeight=1 # The default height of widgets for widgets that don't specify
height in .gfd file
+widgetWidth =10 # The default width of widgets for widgets that don't specify
width in .gfd file
-widgetHeight=1 # The default height of widgets for widgets that don't specify
height in .gfd file
+# Font size used by UIwxpython
+pointSize = 14
-# Do not alter below here unless you really, really want to
+# Do not alter below here unless you really, really want to (and you know what
you are doing)
DEBUG = 0
_msgNOTSAVED = "Data not saved. Commit or rollback changes."
-
-pointSize = 14
+# Fudge factor for altering widget size - should no longer be needed
borderPercentage = 100
textPercentage = 100
-
Index: gnue/gnuef/src/UIwxpython.py
diff -u gnue/gnuef/src/UIwxpython.py:1.50 gnue/gnuef/src/UIwxpython.py:1.51
--- gnue/gnuef/src/UIwxpython.py:1.50 Tue Dec 19 08:51:28 2000
+++ gnue/gnuef/src/UIwxpython.py Mon Jan 8 17:55:10 2001
@@ -120,7 +120,7 @@
#independent way.
#object tree building
wxInitAllImageHandlers()
- self.splash = SplashScreen(None, bitmapfile=GFOptions.splashScreenBMP,
+ self.splash = SplashScreen(None,bitmapfile=GFOptions.splashScreenBMP,
duration=1000, callback=self.onMain)
self.splash.Show(true)
return true
@@ -145,42 +145,41 @@
if currentRecord > block.recordCount : currentRecord = 0
for entry in block.entryList:
-
- index = self.formToUI[entry][1]
- index = index + adjustment
-
- if index < 0 : index = 0
-
- # Don't let index pass the number of widgets on screen
- if index >= int(entry.visibleCount):
- index = int(entry.visibleCount)-1
-
- # Don't let the index past the number of records in the
- # system
- lowestVisible = currentRecord - index
- if lowestVisible < 0 : lowestVisible = 0
- if lowestVisible + index > block.recordCount:
- index = index -1
-
- # If the current record has rolled around
- # from the top to the bottom then reset
- # the counter
- if currentRecord == 0:
- index = 0
-
- # if the current record has rolled from
- # bottom to top then flip to bottom keeping
- # in mind the number of records in memory
- if currentRecord == block.recordCount:
- if block.recordCount > int(entry.visibleCount)-1:
+ if not hasattr(entry, 'hidden'):
+
+ index = self.formToUI[entry][1]
+ index = index + adjustment
+
+ if index < 0 : index = 0
+
+ # Don't let index pass the number of widgets on screen
+ if index >= int(entry.visibleCount):
index = int(entry.visibleCount)-1
- else:
- index = block.recordCount
+
+ # Don't let the index past the number of records in the
+ # system
+ lowestVisible = currentRecord - index
+ if lowestVisible < 0 : lowestVisible = 0
+ if lowestVisible + index > block.recordCount:
+ index = index -1
+
+ # If the current record has rolled around
+ # from the top to the bottom then reset
+ # the counter
+ if currentRecord == 0:
+ index = 0
+
+ # if the current record has rolled from
+ # bottom to top then flip to bottom keeping
+ # in mind the number of records in memory
+ if currentRecord == block.recordCount:
+ if block.recordCount > int(entry.visibleCount)-1:
+ index = int(entry.visibleCount)-1
+ else:
+ index = block.recordCount
- self.formToUI[entry][1] = index
+ self.formToUI[entry][1] = index
- #print "adjusted entity index ", self.formToUI[entry][1]
-
def switchFocus(self, event):
index = self.formToUI[event.data][1]
self.formToUI[event.data][0][index].SetFocus()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/gnuef TODO samples/track/create_track.sql ...,
James Thompson <=