commit-gnue
[Top][All Lists]
Advanced

[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)      



reply via email to

[Prev in Thread] Current Thread [Next in Thread]