[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/gnuef/src GFForm.py UIbase.py UIwxpython.p...
From: |
Jason Cater |
Subject: |
gnue/gnuef/src GFForm.py UIbase.py UIwxpython.p... |
Date: |
Sun, 16 Sep 2001 17:16:24 -0400 |
CVSROOT: /home/cvs
Module name: gnue
Changes by: Jason Cater <address@hidden> 01/09/16 17:16:24
Modified files:
gnuef/src : GFForm.py UIbase.py UIwxpython.py
gnuef/src/GFObjects: GFBlock.py GFEntry.py GFLabel.py GFObj.py
GFValue.py
Log message:
Fixed the address@hidden rows problem; it now doesn't happen at the
individual object level, but at the block building level
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFForm.py.diff?cvsroot=OldCVS&tr1=1.118&tr2=1.119&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/UIbase.py.diff?cvsroot=OldCVS&tr1=1.43&tr2=1.44&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/UIwxpython.py.diff?cvsroot=OldCVS&tr1=1.110&tr2=1.111&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFObjects/GFBlock.py.diff?cvsroot=OldCVS&tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFObjects/GFEntry.py.diff?cvsroot=OldCVS&tr1=1.15&tr2=1.16&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFObjects/GFLabel.py.diff?cvsroot=OldCVS&tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFObjects/GFObj.py.diff?cvsroot=OldCVS&tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFObjects/GFValue.py.diff?cvsroot=OldCVS&tr1=1.2&tr2=1.3&r1=text&r2=text
Patches:
Index: gnue/gnuef/src/GFForm.py
diff -u gnue/gnuef/src/GFForm.py:1.118 gnue/gnuef/src/GFForm.py:1.119
--- gnue/gnuef/src/GFForm.py:1.118 Thu Sep 13 18:39:22 2001
+++ gnue/gnuef/src/GFForm.py Sun Sep 16 17:16:24 2001
@@ -95,7 +95,7 @@
self._children.pop(i)
else:
i = i + 1
- else:
+ else:
i = i + 1
#
@@ -718,6 +718,6 @@
def toggleInsertMode(self):
self._insertMode = not self._insertMode
- def dumpXML(self, treeDump=None, gap=" "):
+ def dumpXML(self, treeDump=1, gap=" "):
return GObj.dumpXML(self, GFParser.getXMLelements(), treeDump, gap)
Index: gnue/gnuef/src/GFObjects/GFBlock.py
diff -u gnue/gnuef/src/GFObjects/GFBlock.py:1.13
gnue/gnuef/src/GFObjects/GFBlock.py:1.14
--- gnue/gnuef/src/GFObjects/GFBlock.py:1.13 Thu Sep 13 18:39:22 2001
+++ gnue/gnuef/src/GFObjects/GFBlock.py Sun Sep 16 17:16:24 2001
@@ -50,29 +50,41 @@
#
class GFBlock(GFObj, GFEventAware):
def __init__(self, parent=None):
- GFObj.__init__(self, parent)
+ GFObj.__init__(self, parent, 'GFBlock')
GFEventAware.__init__(self)
- self._type = "GFBlock"
- self._inits = [self.initialize]
+ self.mode = 'normal'
- self._datasource = None
- self._resultSet = None
+ self._inits = [self.initialize]
+ self._datasource = None
+ self._resultSet = None
self._dataSourceLink = None
- self.mode = 'normal'
self._entryList = []
-
+
self._currentRecord = 0
self._recordCount = 0
self._queryValues = {}
self._lastQueryValues = {}
+ self._gap = 0
+ self._rows = 1
+
+ def _buildObject(self):
+
+ if hasattr(self, 'rows'):
+ self._rows = self.rows
+
+ if hasattr(self, 'rowSpacer'):
+ self._gap = self.rowSpacer
+
+ self.walk(self.__setChildRowSettings)
+
def initialize(self):
self._form = self.findParentOfType('GFForm')
self.walk(self.buildEntryList)
- if not hasattr(self,'datasource') or not self.datasource:
+ if not hasattr(self,'datasource') or not self.datasource:
ds = GFDataSource(self)
self.datasource = ds.name = "dts_%s" % self
self._form._datasourceDictionary[ds.name] = ds
@@ -82,10 +94,22 @@
self._dataSourceLink = self._form._datasourceDictionary[self.datasource]
self._dataSourceLink.registerResultSetListener(self._loadResultSet)
-
+
+ def __setChildRowSettings(self, object):
+ if hasattr(object,'rows'):
+ object._rows = object.rows
+ else:
+ object._rows = self._rows
+
+ if hasattr(object,'rowSpacer'):
+ object._gap = object.rowSpacer
+ else:
+ object._gap = self._gap
+
+
def buildEntryList(self, object):
if object.getObjectType() == 'GFEntry':
- self._entryList.append(object)
+ self._entryList.append(object)
#
# isSaved
@@ -95,7 +119,7 @@
#
def isSaved(self):
return self._resultSet == None or not self._resultSet.isPending()
-
+
#
# deleteRecord
#
@@ -105,20 +129,20 @@
def deleteRecord(self):
self._resultSet.current.delete()
- #
+ #
# Load and process a resultset
#
def _loadResultSet(self, resultSet):
self._resultSet = resultSet
self._currentRecord = -1
- self._recordCount = 0
+ self._recordCount = 0
- if self._resultSet.firstRecord():
+ if self._resultSet.firstRecord():
self.switchRecord(0)
self._recordCount = self._resultSet.getCacheCount()
#self._recordCount = self._resultSet.getRecordCount()
else:
- # TODO: This means no results were returned from a query.
+ # TODO: This means no results were returned from a query.
# TODO: It probably shouldn't create a new record :) Display a message?
self.newRecord()
Index: gnue/gnuef/src/GFObjects/GFEntry.py
diff -u gnue/gnuef/src/GFObjects/GFEntry.py:1.15
gnue/gnuef/src/GFObjects/GFEntry.py:1.16
--- gnue/gnuef/src/GFObjects/GFEntry.py:1.15 Thu Sep 13 18:39:22 2001
+++ gnue/gnuef/src/GFObjects/GFEntry.py Sun Sep 16 17:16:24 2001
@@ -45,39 +45,54 @@
#
class GFEntry(GFValue):
def __init__(self, parent=None, value=None):
- GFValue.__init__(self, parent, value)
- self._type = "GFEntry"
+ GFValue.__init__(self, parent, value, 'GFEntry')
+
+ # Default attributes (these may be replaced by parser)
self.height = float(GConfig.get('widgetHeight'))
self.width = float(GConfig.get('widgetWidth'))
+ self.typecast="text"
+ self.case="mixed"
+
+ # Runtime variables
self._oldval=""
self._uppercase = 0
self._lowercase = 0
self._numeric = 0
self._queryable = 1
- self.typecast="text"
- self.case="mixed"
+
self._inits = [self.initialize, self.loadStartingValues]
self._allowedValues = None
- def _buildObject(self):
+ self._rows = 1
+ self._gap = 0
+
+ def _buildObject(self):
# Convert deprecated attributes
- if hasattr(self,'numeric') and self.numeric:
+
+ # Numeric attributes (now typecast="..")
+ if hasattr(self,'numeric') and self.numeric:
del self.numeric
self.typecast = 'number'
- if hasattr(self,'uppercase') and self.uppercase:
+ # visibleCount attributes... (now rows="..")
+ if not hasattr(self, 'rows') and hasattr(self,'visibleCount'):
+ self.rows = self.visibleCount
+ del self.visibleCount
+
+ # Case attributes... (now case="..")
+ if hasattr(self,'uppercase') and self.uppercase:
del self.uppercase
- self.case = 'upper'
- elif hasattr(self,'lowercase') and self.lowercase:
+ self.case = 'upper'
+ elif hasattr(self,'lowercase') and self.lowercase:
del self.lowercase
- self.case = 'lower'
+ self.case = 'lower'
def initialize(self):
- if self.typecast == 'number':
+ if self.typecast == 'number':
self._numeric = 1
- if self.case == 'upper':
+ if self.case == 'upper':
self._uppercase = 1
- elif self.case == 'lower':
+ elif self.case == 'lower':
self._lowercase = 1
self._cursorPosition = len(self._oldval)
@@ -86,7 +101,7 @@
self.field = "__GNUe__%s" % self.name
self._block._dataSourceLink.referenceUnboundField(self.field)
self._bound = 0
- else:
+ else:
self._block._dataSourceLink.referenceField(self.field)
self._bound = 1
@@ -94,29 +109,9 @@
datasourceName,self.fieldName = string.split(self.foreign_key,'.')
self.datasource = self._block._form._datasourceDictionary[datasourceName]
-#
-# This still isnt right but it works. Orginally it would only work if you
-# had a row in a block. This fixes that, but doesnt perform a check to the
-# effect that if you have a row attribute but its less than one (specifically
null)
-# Technically this shouldnt occur and I dont see checks for other items like
this
-# So my question is do we put a check here? Someone should test if this still
-# works with row blocks
-#
-
- if not hasattr(self,'rows'):
- if hasattr(self._block,'rows'):
- self.rows = self._block.rows
- else:
- self.rows = 1
-
- if not hasattr(self,'rowSpacer'):
- if hasattr(self._block,'rowSpacer'):
- self.gap = self._block.rowSpacer
- else:
- self.gap = self.rowSpacer
- def isQueryable(self):
- if self._queryable and len(self._oldval):
+ def isQueryable(self):
+ if self._queryable and len(self._oldval):
return 1
#
@@ -138,7 +133,7 @@
if self._block.mode == 'query':
if self._block._queryValues.has_key(self):
value = self._block._queryValues[self]
- else:
+ else:
value = None
else:
value = self._block._resultSet.current.getField(self.field)
Index: gnue/gnuef/src/GFObjects/GFLabel.py
diff -u gnue/gnuef/src/GFObjects/GFLabel.py:1.6
gnue/gnuef/src/GFObjects/GFLabel.py:1.7
--- gnue/gnuef/src/GFObjects/GFLabel.py:1.6 Thu Sep 13 18:39:22 2001
+++ gnue/gnuef/src/GFObjects/GFLabel.py Sun Sep 16 17:16:24 2001
@@ -39,16 +39,17 @@
#
class GFLabel(GFValue):
def __init__(self, parent=None, value=None):
- GFValue.__init__(self, parent, value)
- self._type = "GFLabel"
- self._inits = [self.initialize]
+ GFValue.__init__(self, parent, value, 'GFLabel')
+ # Default attributes (these may be replaced by parser)
self.alignment = "left"
self.height = float(GConfig.get('widgetHeight'))
- self._rows = 1
+
+ # Runtime Variables
+ self._inits = [self.initialize]
- def _buildObject(self):
- if not hasattr(self, 'rows') and hasattr(self,'visibleCount'):
+ def _buildObject(self):
+ if not hasattr(self, 'rows') and hasattr(self,'visibleCount'):
self.rows = self.visibleCount
del self.visibleCount
@@ -61,20 +62,6 @@
#
def initialize(self):
self._block = self.findParentOfType('GFBlock')
- if not hasattr(self,'rows'):
- if not hasattr(self,'_rows'):
- if hasattr(self._block,'_rows'):
- self._rows = self._block._rows
- else:
- self._rows = self._rows
-
- if not hasattr(self,'rowSpacer'):
- if hasattr(self._block,'rowSpacer'):
- self.gap = self._block.rowSpacer
- else:
- self.gap = self.rowSpacer
- else:
- self._rows = self.rows
Index: gnue/gnuef/src/GFObjects/GFObj.py
diff -u gnue/gnuef/src/GFObjects/GFObj.py:1.7
gnue/gnuef/src/GFObjects/GFObj.py:1.8
--- gnue/gnuef/src/GFObjects/GFObj.py:1.7 Thu Aug 30 17:34:48 2001
+++ gnue/gnuef/src/GFObjects/GFObj.py Sun Sep 16 17:16:24 2001
@@ -13,7 +13,7 @@
#
# You should have received a copy of the GNU General Public
# License along with program; see the file COPYING. If not,
-# write to the Free Software Foundation, Inc., 59 Temple Place
+# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
# Copyright 2000, 2001 Free Software Foundation
@@ -46,17 +46,19 @@
self.readonly = 0
self._visibleIndex = 0
self.name = "__%s__" % self
+ self._rows = 1
+ self._gap = 0
#self._inits = [self.initialize]#
self._inits = []
#
- # get an Option
+ # get an Option
#
- def getOption(self, name):
+ def getOption(self, name):
option = None
- for child in self._children:
- if child._type == "GFOptions":
- for o in child._children:
- if o._type == "GFOption":
+ for child in self._children:
+ if child._type == "GFOptions":
+ for o in child._children:
+ if o._type == "GFOption":
if o.name == name:
option = o.value
return option
@@ -71,8 +73,8 @@
if index < 0 : index = 0
# Don't let index pass the number of widgets on screen
- if index >= int(self.rows):
- index = int(self.rows)-1
+ if index >= int(self._rows):
+ index = int(self._rows)-1
# Don't let the index past the number of records in the
# system
@@ -93,8 +95,8 @@
# bottom to top then flip to bottom keeping
# in mind the number of records in memory
if currentRecord == recordCount:
- if recordCount > int(self.rows)-1:
- index = int(self.rows)-1
+ if recordCount > int(self._rows)-1:
+ index = int(self._rows)-1
else:
index = recordCount
Index: gnue/gnuef/src/GFObjects/GFValue.py
diff -u gnue/gnuef/src/GFObjects/GFValue.py:1.2
gnue/gnuef/src/GFObjects/GFValue.py:1.3
--- gnue/gnuef/src/GFObjects/GFValue.py:1.2 Wed Jul 18 18:45:01 2001
+++ gnue/gnuef/src/GFObjects/GFValue.py Sun Sep 16 17:16:24 2001
@@ -42,11 +42,10 @@
#
class GFValue(GFObj):
# Add value attrib support
- def __init__(self, parent=None, value=None):
- GFObj.__init__(self, parent)
+ def __init__(self, parent=None, value=None, type='GFValue'):
+ GFObj.__init__(self, parent, type)
self._value = value
- self._type = "GFValue"
-
+
def setValue(self, value):
self._value = value
Index: gnue/gnuef/src/UIbase.py
diff -u gnue/gnuef/src/UIbase.py:1.43 gnue/gnuef/src/UIbase.py:1.44
--- gnue/gnuef/src/UIbase.py:1.43 Sun Aug 12 15:55:27 2001
+++ gnue/gnuef/src/UIbase.py Sun Sep 16 17:16:24 2001
@@ -311,7 +311,7 @@
if value in (1,'1','T','t','TRUE','true'):
value = 1
else:
- value = 0
+ value = 0
self._formToUIWidget[event.data].setValue(value, index)
else:
self._formToUIWidget[event.data].setValue(value, index)
@@ -323,13 +323,13 @@
# you do not want to just add 1 to count
# as the formulas would then be off
count = index
- while count < int(event.data.rows):
+ while count < int(event.data._rows):
if count != index:
rec = block._resultSet.getRecord(currentRecord+(count-index))
if rec == None:
if style == 'checkbox':
value = int(0)
- else:
+ else:
value = ""
else:
value = rec.getField(event.data.field)
@@ -368,15 +368,11 @@
class UIWidget:
def __init__(self, object, container, textWidth, textHeight, widgetWidth,
widgetHeight, interface, initialize=1):
self.widgets = []
- if not hasattr(object,'rows'):
- object.rows = 1
- else:
- object.rows = int(object.rows)
+ if not hasattr(object,'_rows'):
+ object._rows = 1
- if hasattr(object,'gap'):
- object.gap = int(object.gap)
- else:
- object.gap = 0
+ if not hasattr(object,'_gap'):
+ object._gap = 0
if hasattr(object,'width'):
self.itemWidth = int(object.width)*int(textWidth)
@@ -386,7 +382,7 @@
self.itemHeight = -1
if not object.hidden:
- for spacer in range(int(object.rows)):
+ for spacer in range(int(object._rows)):
newWidget = self.createWidget(object, container, textWidth,
textHeight, widgetWidth, widgetHeight, interface, spacer, initialize)
self.widgets.append(newWidget)
Index: gnue/gnuef/src/UIwxpython.py
diff -u gnue/gnuef/src/UIwxpython.py:1.110 gnue/gnuef/src/UIwxpython.py:1.111
--- gnue/gnuef/src/UIwxpython.py:1.110 Mon Sep 3 23:11:09 2001
+++ gnue/gnuef/src/UIwxpython.py Sun Sep 16 17:16:24 2001
@@ -710,7 +710,7 @@
newWidget = wxStaticText(container, -1, str(object.text),
wxPoint(int(object.x)*int(widgetWidth),
-
(int(object.y)+spacer+(spacer*object.gap))*int(widgetHeight)),
+
(int(object.y)+spacer+(spacer*object._gap))*int(widgetHeight)),
wxSize(self.itemWidth,self.itemHeight), style)
initFont(newWidget)
return newWidget
@@ -804,7 +804,7 @@
newWidget = wxComboBox(container, -1, "",
wxPoint(int(object.x)*int(widgetWidth),
-
(int(object.y)+spacer+(object.gap*spacer))*int(widgetHeight)),
+
(int(object.y)+spacer+(object._gap*spacer))*int(widgetHeight)),
wxSize(int(object.width)*int(textWidth),
int(object.height)*int(textHeight)),
choices, wxCB_DROPDOWN)
@@ -818,7 +818,7 @@
newWidget = wxCheckBox(container, -1, "",
wxPoint(int(object.x)*int(widgetWidth),
-
(int(object.y)+spacer+(object.gap*spacer))*int(widgetHeight)),
+
(int(object.y)+spacer+(object._gap*spacer))*int(widgetHeight)),
wxSize(int(2)*int(textWidth),
int(1)*int(textHeight)), wxNO_BORDER)
# wxSize(int(object.width)*int(self.textWidth),
@@ -841,7 +841,7 @@
newWidget = wxTextCtrl(container, -1, value,
wxPoint(int(object.x)*int(widgetWidth),
-
(int(object.y)+spacer+(object.gap*spacer))*int(widgetHeight)),
+
(int(object.y)+spacer+(object._gap*spacer))*int(widgetHeight)),
wxSize(int(object.width)*int(textWidth),
int(object.height)*int(textHeight)+1),
styles)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/gnuef/src GFForm.py UIbase.py UIwxpython.p...,
Jason Cater <=