commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue/gnuef TODO configure.in samples/Makefile.a...


From: James Thompson
Subject: gnue/gnuef TODO configure.in samples/Makefile.a...
Date: Sat, 07 Oct 2000 15:12:01 -0700

CVSROOT:        /cvs
Module name:    gnue
Changes by:     James Thompson <address@hidden> 00/10/07 15:11:59

Modified files:
        gnuef          : TODO configure.in 
        gnuef/samples  : Makefile.am contact.gfd zip_code.gfd 
        gnuef/src      : DBpostgresql.py GFForm.py GFObjects.py 
                         GFParser.py UIwxpython.py 
Added files:
        gnuef/samples/po: Makefile.am sc_po_entry.gfd sc_po_entry2.gfd 
        gnuef/samples/zipcode: Makefile.am zip_code.gfd 

Log message:
        Moved samples to own dirs
        Insert, query (with sql wildcards), update all functional
        Added F8 = Init query, F9 = execute query, F6 = commit to UIwxpython

CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/TODO.diff?r1=1.4&r2=1.5
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/configure.in.diff?r1=1.2&r2=1.3
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/samples/Makefile.am.diff?r1=1.1&r2=1.2
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/samples/contact.gfd.diff?r1=1.8&r2=1.9
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/samples/zip_code.gfd.diff?r1=1.1&r2=1.2
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/samples/po/Makefile.am.diff?r1=NONE&r2=1.1
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/samples/po/sc_po_entry.gfd.diff?r1=NONE&r2=1.1
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/samples/po/sc_po_entry2.gfd.diff?r1=NONE&r2=1.1
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/samples/zipcode/Makefile.am.diff?r1=NONE&r2=1.1
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/samples/zipcode/zip_code.gfd.diff?r1=NONE&r2=1.1
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/DBpostgresql.py.diff?r1=1.1&r2=1.2
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFForm.py.diff?r1=1.14&r2=1.15
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFObjects.py.diff?r1=1.10&r2=1.11
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFParser.py.diff?r1=1.4&r2=1.5
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/UIwxpython.py.diff?r1=1.7&r2=1.8

Patches:
Index: gnue/gnuef/TODO
diff -u gnue/gnuef/TODO:1.4 gnue/gnuef/TODO:1.5
--- gnue/gnuef/TODO:1.4 Tue Sep 19 18:34:39 2000
+++ gnue/gnuef/TODO     Sat Oct  7 15:11:58 2000
@@ -32,6 +32,24 @@
   
   Create GNUE Forms: Designer the screen painter (you poor bastard)
 
+  Autocreate a datasource for block that don't specify one
+
+  Make GFDataSource verify that all records in memory are saved
+   prior to clearing and new queries
+
+  Clean up code to provide better seperation of Objects in the Data system
+
+  Make modification of data lock the record in the backend
+
+  Transaction support
+
+  Create UI/Form event interactions for 
+    login
+    progress info dialogs
+    sending info like current record count/status to UI
+
+
+
 
 
 
Index: gnue/gnuef/configure.in
diff -u gnue/gnuef/configure.in:1.2 gnue/gnuef/configure.in:1.3
--- gnue/gnuef/configure.in:1.2 Fri Sep 22 20:16:51 2000
+++ gnue/gnuef/configure.in     Sat Oct  7 15:11:58 2000
@@ -28,6 +28,8 @@
        doc/Makefile \
        old/Makefile \
        samples/Makefile \
+       samples/zipcode/Makefile \
+       samples/po/Makefile \
        src/Makefile
 )
 
Index: gnue/gnuef/samples/Makefile.am
diff -u gnue/gnuef/samples/Makefile.am:1.1 gnue/gnuef/samples/Makefile.am:1.2
--- gnue/gnuef/samples/Makefile.am:1.1  Thu Sep 21 16:52:50 2000
+++ gnue/gnuef/samples/Makefile.am      Sat Oct  7 15:11:59 2000
@@ -6,3 +6,4 @@
 MAINTAINERCLEANFILES = \
        Makefile.in
 
+SUBDIRS    = zipcode po
\ No newline at end of file
Index: gnue/gnuef/samples/contact.gfd
diff -u gnue/gnuef/samples/contact.gfd:1.8 gnue/gnuef/samples/contact.gfd:1.9
--- gnue/gnuef/samples/contact.gfd:1.8  Fri Oct  6 19:02:01 2000
+++ gnue/gnuef/samples/contact.gfd      Sat Oct  7 15:11:59 2000
@@ -8,6 +8,8 @@
   <width>500</width>
 </options>
 
+  <datasource name="" database="gnue" table="zip_code" cache="5"/>
+
   <page>
     <block dbName="test" tableName="country">
       <label text="General" x="5" y="1"/>
Index: gnue/gnuef/samples/zip_code.gfd
diff -u gnue/gnuef/samples/zip_code.gfd:1.1 gnue/gnuef/samples/zip_code.gfd:1.2
--- gnue/gnuef/samples/zip_code.gfd:1.1 Fri Oct  6 19:02:01 2000
+++ gnue/gnuef/samples/zip_code.gfd     Sat Oct  7 15:11:59 2000
@@ -11,6 +11,7 @@
 
   <database name="gnue" provider="postgresql" dbname="gnue" host="gnue"/>
   <datasource name="zips" database="gnue" table="zip_code" cache="5"/> 
+  <datasource name="scratchpad" />
 
   <page>
     <block name="zip" datasource="zips">
Index: gnue/gnuef/src/DBpostgresql.py
diff -u gnue/gnuef/src/DBpostgresql.py:1.1 gnue/gnuef/src/DBpostgresql.py:1.2
--- gnue/gnuef/src/DBpostgresql.py:1.1  Fri Oct  6 19:02:01 2000
+++ gnue/gnuef/src/DBpostgresql.py      Sat Oct  7 15:11:59 2000
@@ -32,7 +32,8 @@
     self.connection.close()
 
   def commit(self):
-    self.connection.commit()
+    #self.connection.commit()
+    pass
     
   def rollback(self):
     self.connection.rollback()
@@ -50,6 +51,8 @@
     mask = self.connection.update(table,mask)
 
   def query(self,table,mask):
+    print "database received this mask"
+    print mask
     command = self.constructSQL('query',table, mask)
     resultset = self.connection.query(command).dictresult()
     return resultset
@@ -60,25 +63,31 @@
   def getResults(self):
     return resultset
 
-  def constructSQL(self, type, table, mask = None):
+  def constructSQL(self, style, table, mask = None):
     sql = None
     fields = None
     qualifier = None
+
+    print "constructSQL here and I got a "
+    print mask
     
-    if type == 'query':
+    if style == 'query':
       action = "SELECT "
       location = "FROM %s " % (table)
-
-      fields = " oid AS oid_%s, %s " % (table, mask == [] and 
string.join(mask.keys(), ',') or '*')
+      fields = " oid AS oid_%s, * " % (table)
+      
+      # is this a better way
+      #fields = " oid AS oid_%s, %s " % (table, type(mask) == type({}) and 
string.join(mask.keys(), ',') or '*')
       
-      if mask == []:
+      if type(mask) == type({}):
+        fields = " oid AS oid_%s, %s " % (table, string.join(mask.keys(), ','))
         for fieldname in mask.keys():
-          if mask[fieldname] != None:
+          if mask[fieldname] != None and len(mask[fieldname]):
             if qualifier == None:
               qualifier = "WHERE %s LIKE  '%s'" % (fieldname,mask[fieldname])
             else:
-              qualifier = "%s AND %s LIKE  %s" % (qualifier, 
fieldname,mask[fieldname])
-        
+              qualifier = "%s AND %s LIKE  '%s'" % (qualifier, 
fieldname,mask[fieldname])
+      
       sql = action + fields + location + (qualifier and qualifier or "")    
 
     else:
Index: gnue/gnuef/src/GFForm.py
diff -u gnue/gnuef/src/GFForm.py:1.14 gnue/gnuef/src/GFForm.py:1.15
--- gnue/gnuef/src/GFForm.py:1.14       Fri Oct  6 19:02:01 2000
+++ gnue/gnuef/src/GFForm.py    Sat Oct  7 15:11:59 2000
@@ -46,9 +46,9 @@
 
                            'requestNEWRECORD'  : self.newRecord,
                            
-                           'requestQUERY'      : self.processQuery,
-                           'cancelQUERY'       : self.processQuery,
-                           'executeQUERY'      : self.processQuery,
+                           'requestQUERY'      : self.requestQuery,
+                           'executeQUERY'      : self.executeQuery,
+                           'requestCOMMIT'     : self.executeCommit,
 
                            'recordSWITCHED'    : self.recordSwitched,
 
@@ -123,8 +123,9 @@
 
   def initEntries(self, object):
     if object.getObjectType() == 'GFEntry':
-      object.value = object.block.dataSource.getField(0,object.field)
-
+      object.initialize()
+      object.value = object.block.dataSourceLink.getField(0,object.field)
+      
   def initDatabaseObjects(self, object):
     if object.getObjectType() =='GFDataSource':
       self.datasourceDictionary[object.name]=object
@@ -168,16 +169,23 @@
   # objects.  Will eventually do more
   #
   def nextRecord(self, event):
-    print "Form next record received"
     self.dispatchEvent(GFEvent('nextRECORD',self.currentBlock))
 
   def prevRecord(self, event):
-    print "Form prev record received"
     self.dispatchEvent(GFEvent('prevRECORD',self.currentBlock))
   
   def newRecord(self, event):
     self.dispatchEvent(GFEvent('newRECORD',self.currentBlock))
 
+  def requestQuery(self, event):
+    self.dispatchEvent(GFEvent('initQUERY',self.currentBlock))
+
+  def executeQuery(self, event):
+    self.dispatchEvent(GFEvent('processQUERY',self.currentBlock))
+
+  def executeCommit(self, event):
+    self.dispatchEvent(GFEvent('processCOMMIT',self.currentBlock))
+
   #
   # nextEntry
   #
@@ -402,23 +410,6 @@
   #
   def recordSwitched(self, event):
     self.dispatchEvent(GFEvent('updateENTRY',event.data))
-
-  #
-  # processQuery
-  # 
-  def processQuery(self, event):
-    if event.getEvent() == 'requestQUERY':
-      if self.mode != 'query':
-        self.mode = 'query'
-        # check the current data is saved
-      else:
-        self.mode = 'normal'
-      
-      #clear the current datasource
-
-    elif event.getEvent() == 'processQUERY':
-      # to be done 
-      pass
     
   #
   # requireLogin
@@ -437,6 +428,22 @@
       pass
 
 
+##  #
+##  # processQuery
+##  # 
+##  def processQuery(self, event):
+##    if event.getEvent() == 'requestQUERY':
+##      if self.mode != 'query':
+##        self.mode = 'query'
+##        # check the current data is saved
+##      else:
+##        self.mode = 'normal'
+      
+##      #clear the current datasource
+
+##    elif event.getEvent() == 'processQUERY':
+##      # to be done 
+##      pass
 
 
 
Index: gnue/gnuef/src/GFObjects.py
diff -u gnue/gnuef/src/GFObjects.py:1.10 gnue/gnuef/src/GFObjects.py:1.11
--- gnue/gnuef/src/GFObjects.py:1.10    Fri Oct  6 19:02:01 2000
+++ gnue/gnuef/src/GFObjects.py Sat Oct  7 15:11:59 2000
@@ -36,6 +36,10 @@
   def addChild(self, child):
     self.children.append(child)
 
+#  def initialize(self):
+#    for child in self.children
+#      child.initialize()
+
   #
   # Attributes
   #
@@ -53,15 +57,6 @@
     if self.children:
       for child in self.children:
         child.walk(function)
-
-  #
-  # debugging
-  #
-  def printObject(self,object):
-    try :
-      print object
-    except:
-      pass          
     
 #
 # GFValue
@@ -102,128 +97,8 @@
       GFValue.setValue(self,value)
 
 
-#
-# Data Access
-#
 
 #
-#GFDataSource
-#
-# In memory store of data manipulated by forms
-#
-class GFDataSource(GFObj):
-  def __init__(self, parent=None):
-    GFObj.__init__(self, parent)
-    self.type = "GFDataSource"
-    self.emptyRecord = {}
-    self.resultSet = []
-    self.dataConnection = None
-    self.form = None
-
-    self.form = parent
-    while (self.form.getObjectType() != 'GFForm'):
-      self.form = self.form.parent
-
-    
-  def initialize(self):
-    if GFOptions.DEBUG:
-      print "Initializing datasource %s" % (self.name)
-    #get the connection to database
-    self.dataConnection = self.form.databaseDictionary[self.database]
-
-    # Build an empty record for new records and query mask seed
-    for field in self.dataConnection.getFieldList(self.table).keys():
-      self.emptyRecord[field] = ""        
-
-    # Set an initial empty record
-    self.resultSet = []
-    newentry = {}
-    for key in self.emptyRecord.keys():
-      newentry[key] = self.emptyRecord[key]  
-    self.resultSet.append(newentry)
-
-    # just for the heck of it
-    self.query()
-
-  #
-  # 
-  # 
-  def getLastRecordNumber(self):
-    return len(self.resultSet)-1
-  
-  def query(self,mask=None):
-    self.resultSet = self.dataConnection.query(self.table,mask)
-
-  def commit(self):
-    # go thru records
-    # see which have been altered
-    # pass those back for update/insert
-    # commit changes
-    pass
-    
-  def rollback(self):
-    resultSet = []
-    pass
-
-  def new(self):
-    newentry = {}
-    for key in self.emptyRecord.keys():
-      newentry[key] = self.emptyRecord[key]
-    self.resultSet.append(newentry)
-                
-    print self.resultSet
-    
-  def getField(self,recordNumber,fieldName):
-    return self.resultSet[recordNumber][fieldName]
-
-  def setField(self,recordNumber,fieldName,value):
-    self.resultSet[recordNumber][fieldName] = value
-    #lock that record in the datasource
-
-    pass
-#
-# GFDatabase
-#
-# The connection to a specific chunk of data
-#
-class GFDatabase(GFObj):
-  def __init__(self, parent=None):
-    GFObj.__init__(self, parent)
-    self.type = "GFDatabase"
-
-  def initialize(self,user,passwd):
-    if self.provider == "postgresql":
-      from DBpostgresql import DBpostgresql
-      self.link = DBpostgresql()
-      self.link.connect(self.host,self.dbname,user,passwd)
-
-  def query(self, table, mask):
-    results = self.link.query(table,mask)
-    return results
-
-  def update(self, table, mask):
-    results = self.link.update(table,mask)
-    return results
-      
-  def insert(self, table, mask):
-    results = self.link.insert(table,mask)
-    return results
-  
-  def delete(self, table, mask):
-    self.link.insert(table,mask)
-
-  def getFieldList(self,table):
-    return self.link.getFieldList(table)
-    
-
-#
-# 
-# More complex objects below
-#
-#
-
-
-#
 # GFBlock
 #
 # This object handles events from GFEntry widgets but doesn't
@@ -237,7 +112,8 @@
     GFEventAware.__init__(self)
     self.type = "GFBlock"
     
-    self.dataSource = None
+    self.dataSourceLink = None
+    self.mode = 'normal'
     
     self.currentRecord = 0
     self.recordCount = 0
@@ -246,7 +122,10 @@
     self.incommingEvent = {'newRECORD'     : self.newRecord,
                            'nextRECORD'    : self.switchRecord,
                            'prevRECORD'    : self.switchRecord,
-                           'recordSWITCHED': self.recordSwitched
+                           'recordSWITCHED': self.recordSwitched,
+                           'initQUERY'     : self.processQuery,
+                           'processQUERY'  : self.processQuery,
+                           'processCOMMIT' : self.processCommit
                            }
     
     # register to recieve events from it's parent GFForm
@@ -259,17 +138,17 @@
     self.registerEventListener(self.form.processEvent)
 
   def initialize(self):
-    self.dataSource = self.form.datasourceDictionary[self.datasource]
+    self.dataSourceLink = self.form.datasourceDictionary[self.datasource]
     self.recordCount = 
self.form.datasourceDictionary[self.datasource].getLastRecordNumber()
+#    GFObj.initialize()
 
   #
-  # Adds a black record to the current records in memory
+  # Adds a record to the current records in memory
   #
   def newRecord(self, event):
     if event.data == self:
+      self.dataSourceLink.new()
       self.recordCount = 
self.form.datasourceDictionary[self.datasource].getLastRecordNumber()
-    
-      self.dataSource.new()
       oldRecord = self.currentRecord
       self.currentRecord = self.recordCount    
       
self.dispatchEvent(GFEvent('switchRECORD',[oldRecord,self.currentRecord]));
@@ -291,7 +170,6 @@
       if self.currentRecord > self.recordCount : self.currentRecord = 0
         
       
self.dispatchEvent(GFEvent('switchRECORD',[oldRecord,self.currentRecord]));
-    
       
   #
   # recordSwitched
@@ -301,6 +179,39 @@
       print event.data, " just switched records"
     self.dispatchEvent(GFEvent('recordSWITCHED',event.data))
 
+  def processCommit(self, event):
+    if GFOptions.DEBUG:
+      print "processing commit"
+    
self.dispatchEvent(GFEvent('switchRECORD',[self.currentRecord,self.currentRecord]));
+    self.dataSourceLink.commit()
+
+  #
+  # processQuery
+  #
+  def processQuery(self, event):
+    if event.getEvent() == 'initQUERY':
+      # need to add:  check the current data is saved
+      self.dataSourceLink.clear()
+      self.recordCount = 
self.form.datasourceDictionary[self.datasource].getLastRecordNumber()
+      self.currentRecord = self.recordCount
+      self.dispatchEvent(GFEvent('switchRECORD',[-1,0]));
+      if self.mode != 'query':
+        print "Start Query"
+        self.mode = 'query'
+      else:
+        print "Abort Query"
+        self.mode = 'normal'
+        
+    elif event.getEvent() == 'processQUERY':
+      if self.mode == 'query':
+        self.dispatchEvent(GFEvent('switchRECORD',[0,0]));
+        self.dataSourceLink.query()
+        self.recordCount = 
self.form.datasourceDictionary[self.datasource].getLastRecordNumber()
+        self.dispatchEvent(GFEvent('switchRECORD',[-1,0]));
+        self.currentRecord = 0
+        self.mode = 'normal'
+                                
+
 #
 # GFEntry
 #
@@ -334,6 +245,10 @@
 
     #register the block to recieve events from the entry
     self.registerEventListener(self.block.processEvent)
+
+  def initialize(self):
+    self.block.dataSourceLink.addField(self.field)
+#    GFObj.initialize()
     
   #
   # switchRecord
@@ -343,13 +258,187 @@
   def switchRecord(self, event):
     print "Switching to record %s from record %s" % (event.data[1] , 
event.data[0])
       
-
-    self.block.dataSource.setField(event.data[0],self.field,self.value)
-    self.value = self.block.dataSource.getField(event.data[1],self.field)
-    #self.value = self.valueArray[event.data]
+    if event.data[0] >= 0:
+      self.block.dataSourceLink.setField(event.data[0],self.field,self.value)
+    
+    self.value = self.block.dataSourceLink.getField(event.data[1],self.field)
     self.cursorPosition = len(self.value)
     self.dispatchEvent(GFEvent('recordSWITCHED',self));
 
+
+#
+# Data Access
+#
+
+#
+#GFDataSource
+#
+# In memory store of data manipulated by forms
+# sometimes attached to a database, sometimes not
+#
+class GFDataSource(GFObj):
+  def __init__(self, parent=None):
+    GFObj.__init__(self, parent)
+    self.type = "GFDataSource"
+
+    self.form = None
+    self.dataConnection = None
+    self.fieldList = []
+
+    self.emptyRecord = {}
+    self.resultSet = []
+    self.resultSetStatus = []
+    
+    self.form = parent
+    while (self.form.getObjectType() != 'GFForm'):
+      self.form = self.form.parent
+    
+
+  def initialize(self):
+    if GFOptions.DEBUG:
+      print "Initializing datasource %s" % (self.name)
+#    self.resultSet = []    
+    self.emptyRecord = {}
+    
+    if self.__dict__.has_key('database'):
+      if GFOptions.DEBUG:
+        print "  linking to database %s" % (self.database)
+
+      self.dataConnection = self.form.databaseDictionary[self.database]
+      self.fieldList = self.dataConnection.getFieldList(self.table).keys()
+
+      # Build an empty record for new records and query mask seed
+      for field in self.fieldList:
+        self.emptyRecord[field] = ""
+        
+    self.clear()
+      
+    # just for the heck of it
+    # self.query()
+
+  def clear(self):
+    self.resultSet = []
+    self.resultSetStatus = []
+    
+    # Copy initial empty record into the resultSet
+    newentry = {}
+    for key in self.emptyRecord.keys():
+      newentry[key] = self.emptyRecord[key]  
+    self.resultSet.append(newentry)
+    self.resultSetStatus.append('saved')
+    
+  def rollback(self):
+    self.clear() 
+
+  def getLastRecordNumber(self):
+    return len(self.resultSet)-1
+  
+  def query(self):
+    print "Query with this in resultSet"
+    print self.resultSet[0]
+    if self.__dict__.has_key('database'):
+      mask = {}
+      for key in self.fieldList:
+        if key in self.dataConnection.getFieldList(self.table).keys():
+          mask[key]=self.resultSet[0][key]
+
+      self.clear()
+      self.resultSet = self.dataConnection.query(self.table, len(mask) and 
mask or None)
+      for count in range(len(self.resultSet)):
+        self.resultSetStatus.append('saved')
+      
+      for fieldName in self.emptyRecord.keys():
+        if not self.resultSet[0].has_key(fieldName):
+          for count in range(len(self.resultSet)):
+            self.resultSet[fieldName] = ""
+
+  def commit(self):
+    if self.__dict__.has_key('database'):
+      for count in range(len(self.resultSet)):
+        print "record %s is %s " % (count, self.resultSetStatus[count])
+        print self.resultSet[count]
+        mask = {}
+        for key in self.resultSet[count].keys():
+          print key
+          if key in self.dataConnection.getFieldList(self.table).keys() or \
+             key == "oid_%s" % (self.table):
+            mask[key]=self.resultSet[count][key]
+
+        print "will be passing"
+        print mask
+                                                  
+        if self.resultSetStatus[count] == 'modified':
+          if self.resultSet[count].has_key("oid_%s" % (self.table)):           
 
+            print "updating the record"
+            self.dataConnection.update(self.table,mask)
+          else:
+            print "Inserting the record"
+            self.dataConnection.insert(self.table,mask)
+      self.dataConnection.commit()
+
+  def new(self):
+    newentry = {}
+    for key in self.emptyRecord.keys():
+      newentry[key] = self.emptyRecord[key]
+    self.resultSet.append(newentry)
+    self.resultSetStatus.append('saved')
+                
+  def getField(self,recordNumber,fieldName):
+    return self.resultSet[recordNumber][fieldName]
+
+  def setField(self,recordNumber,fieldName,value):
+    if self.resultSet[recordNumber][fieldName] != value:
+      self.resultSet[recordNumber][fieldName] = value
+      self.resultSetStatus[recordNumber] = 'modified'
+      #lock that record in the datasource
+
+  def addField(self,fieldName):
+    if not fieldName in self.fieldList:
+      for count in range(len(self.resultSet)):
+        self.resultSet[count][fieldName] = ""
+      self.emptyRecord[fieldName]=""
+      self.fieldList.append(fieldName)
+
+
+#
+# GFDatabase
+#
+# The connection to a specific chunk of data
+#
+class GFDatabase(GFObj):
+  def __init__(self, parent=None):
+    GFObj.__init__(self, parent)
+    self.type = "GFDatabase"
+
+  def initialize(self,user,passwd):
+    if self.provider == "postgresql":
+      from DBpostgresql import DBpostgresql
+      self.link = DBpostgresql()
+      self.link.connect(self.host,self.dbname,user,passwd)
+
+  def query(self, table, mask):
+    print "Datbase mask looks like "
+    print mask
+    results = self.link.query(table,mask)
+    return results
+
+  def commit(self):
+    self.link.commit()
+
+  def update(self, table, mask):
+    results = self.link.update(table,mask)
+    return results
+      
+  def insert(self, table, mask):
+    results = self.link.insert(table,mask)
+    return results
+  
+  def delete(self, table, mask):
+    self.link.insert(table,mask)
+
+  def getFieldList(self,table):
+    return self.link.getFieldList(table)
+
 #
 # Unused objects
 #
@@ -361,4 +450,6 @@
     GFObj.__init__(self, parent)
     self.type = "GFDataSet"
     
+
+
 
Index: gnue/gnuef/src/GFParser.py
diff -u gnue/gnuef/src/GFParser.py:1.4 gnue/gnuef/src/GFParser.py:1.5
--- gnue/gnuef/src/GFParser.py:1.4      Tue Oct  3 22:04:58 2000
+++ gnue/gnuef/src/GFParser.py  Sat Oct  7 15:11:59 2000
@@ -62,7 +62,7 @@
     self.widgetParent = wParent
     self.contents = ''
     self.attrs = attrs
-    if GFOptions.DEBUG:
+    if GFOptions.DEBUG > 50:
       print "<%s>" % name
   def startTag(self, name, attrs):
     return None
@@ -71,7 +71,7 @@
   def endTag(self, name, child):
     pass
   def __del__(self):
-    if GFOptions.DEBUG:
+    if GFOptions.DEBUG > 50:
       print "<%s/>" % self.name
 #
 # Class representing an element which can contain <option> and <options>
Index: gnue/gnuef/src/UIwxpython.py
diff -u gnue/gnuef/src/UIwxpython.py:1.7 gnue/gnuef/src/UIwxpython.py:1.8
--- gnue/gnuef/src/UIwxpython.py:1.7    Thu Oct  5 22:25:11 2000
+++ gnue/gnuef/src/UIwxpython.py        Sat Oct  7 15:11:59 2000
@@ -56,6 +56,9 @@
                       WXK_UP:     GFEvent('requestPREVRECORD'),
                       WXK_DOWN:   GFEvent('requestNEXTRECORD'),
 
+                      WXK_F6:     GFEvent('requestCOMMIT'),
+                      WXK_F8:     GFEvent('requestQUERY'),
+                      WXK_F9:     GFEvent('executeQUERY'),
                       WXK_F12:    GFEvent('requestNEWRECORD') 
                      }
 



reply via email to

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