commit-gnue
[Top][All Lists]
Advanced

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

gnue/gnuef samples/zipcode/zip_code.gfd src/GFF...


From: James Thompson
Subject: gnue/gnuef samples/zipcode/zip_code.gfd src/GFF...
Date: Thu, 26 Oct 2000 14:59:55 -0700

CVSROOT:        /cvs
Module name:    gnue
Changes by:     James Thompson <address@hidden> 00/10/26 14:59:54

Modified files:
        gnuef/samples/zipcode: zip_code.gfd 
        gnuef/src      : GFForm.py GFObjects.py UIbase.py UIwxpython.py 

Log message:
        Status bar now has usefull info
        Form alert events
        misc clean up

CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/samples/zipcode/zip_code.gfd.diff?r1=1.12&r2=1.13
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFForm.py.diff?r1=1.29&r2=1.30
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFObjects.py.diff?r1=1.26&r2=1.27
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/UIbase.py.diff?r1=1.11&r2=1.12
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/UIwxpython.py.diff?r1=1.22&r2=1.23

Patches:
Index: gnue/gnuef/samples/zipcode/zip_code.gfd
diff -u gnue/gnuef/samples/zipcode/zip_code.gfd:1.12 
gnue/gnuef/samples/zipcode/zip_code.gfd:1.13
--- gnue/gnuef/samples/zipcode/zip_code.gfd:1.12        Thu Oct 26 12:30:48 2000
+++ gnue/gnuef/samples/zipcode/zip_code.gfd     Thu Oct 26 14:59:54 2000
@@ -16,14 +16,26 @@
   <page>
     <block name="zip" datasource="zips">
       <label text="City" x="5" y="10"/>
-      <entry name="city" field="city" x="5" y="20" width="150" height="20" 
visibleCount="10">
+      <entry name="city" field="city" x="5" y="20" width="150" height="20" 
visibleCount="10" uppercase="" readonly="">
+       <options>
+         <tip>Don't eat yellow snow</tip>
+       </options>
       </entry>
 
       <label text="State" x="65" y="10"/>
-      <entry name="state" field="state" x="65" y="20" width="150" height="20" 
visibleCount="10" uppercase="" foreign_key="validator.state" 
foreign_key_description="description" style="dropdown"/>
+      <entry name="state" field="state" x="65" y="20" width="150" height="20" 
visibleCount="10" uppercase="" foreign_key="validator.state" 
foreign_key_description="description" style="dropdown">
+       <options>
+         <tip>Don't accept rides from strainger</tip>
+       </options>
+      </entry>
 
       <label text="Zip" x="125" y="10"/>
-      <entry name="zip" field="zip" x="125" y="20" width="150" height="20" 
visibleCount="10" numeric="" max_length="5"/>
+      <entry name="zip" field="zip" x="125" y="20" width="150" height="20" 
visibleCount="10" numeric="" max_length="5">
+       <options>
+         <tip>Don't ask, just back away</tip>
+       </options>
+      </entry>
+
     </block>
   </page>
 
Index: gnue/gnuef/src/GFForm.py
diff -u gnue/gnuef/src/GFForm.py:1.29 gnue/gnuef/src/GFForm.py:1.30
--- gnue/gnuef/src/GFForm.py:1.29       Thu Oct 26 12:30:48 2000
+++ gnue/gnuef/src/GFForm.py    Thu Oct 26 14:59:54 2000
@@ -111,6 +111,8 @@
         self.triggerns[block.name] = block
       except AttributeError: pass
     self.walk(self.initTriggers)      
+
+    self.updateStatus()
     
   #
   # begin routines made for walking
@@ -164,6 +166,15 @@
   # end of routines made for walking
   #
 
+  def updateStatus(self):
+    if hasattr(self.currentEntry,'tip'):
+      tip = self.currentEntry.tip
+    else:
+      tip = None
+
+    status = 
self.currentBlock.dataSourceLink.resultSetStatus[self.currentBlock.currentRecord]
+    
self.dispatchEvent(GFEvent('uiUPDATESTATUS',[tip,status,self.insertMode,self.currentBlock.currentRecord+1,self.currentBlock.recordCount+1]))
+
   def findValue(self, blockname, fieldname):
     for block in self.blockList:
       if block.name == blockname:
@@ -177,6 +188,7 @@
       
   def toggleInsertMode(self,event):
     self.insertMode = not self.insertMode
+    self.updateStatus()
 
   #
   # Incomming Event handlers
@@ -190,33 +202,47 @@
     self.dispatchEvent(GFEvent('uiNEXTRECORD',self.currentEntry))
     self.dispatchEvent(GFEvent('nextRECORD',self.currentBlock))
     self.dispatchEvent(GFEvent('gotoENTRY',self.currentEntry));
-
+    self.updateStatus()
 
   def prevRecord(self, event):
     self.dispatchEvent(GFEvent('uiPREVRECORD',self.currentEntry))
     self.dispatchEvent(GFEvent('prevRECORD',self.currentBlock))
     self.dispatchEvent(GFEvent('gotoENTRY',self.currentEntry));
+    self.updateStatus()
 
   def newRecord(self, event):
-    if not self.__dict__.has_key('readonly'):
+    if not hasattr(self,'readonly'):
       self.dispatchEvent(GFEvent('newRECORD',self.currentBlock))
+      self.updateStatus()
+    else:
+      self.dispatchEvent(GFEvent('formALERT','Form is readonly'))
 
   def deleteRecord(self, event):
-    if not self.__dict__.has_key('readonly'):
+    if not hasattr(self,'readonly'):
       self.dispatchEvent(GFEvent('deleteRECORD',self.currentBlock))
+      self.updateStatus()
+    else:
+      self.dispatchEvent(GFEvent('formALERT','Form is readonly'))
+      
 
   def requestQuery(self, event):
     self.dispatchEvent(GFEvent('initQUERY',self.currentBlock))
-
+    self.updateStatus()
+    
   def executeQuery(self, event):
     self.dispatchEvent(GFEvent('processQUERY',self.currentBlock))
+    self.updateStatus()
 
   def executeCommit(self, event):
-    if not self.__dict__.has_key('readonly'):
+    if not hasattr(self,'readonly'):
       self.dispatchEvent(GFEvent('processCOMMIT',self.currentBlock))
+    else:
+      self.dispatchEvent(GFEvent('formALERT','Form is readonly'))
 
+                               
   def recordSwitched(self, event):
     self.dispatchEvent(GFEvent('updateENTRY',event.data))
+    self.updateStatus()
 
   def notifyDetailBlocks(self, event):
 #    if self.mode == 'normal':
@@ -234,7 +260,7 @@
     if not self.currentEntry.verifyValue(): return
     for object in self.currentEntry.parent.children:
       # Put the first field as the next to rollover
-      if object.getObjectType()=='GFEntry'and not 
object.__dict__.has_key('hidden'):
+      if object.getObjectType()=='GFEntry'and not hasattr(object,'hidden'):
         if nextEntry == None: nextEntry = object
         
         if object == self.currentEntry:
@@ -253,6 +279,7 @@
     nextEntry.processTrigger('Post-FocusIn')
 
     self.dispatchEvent(GFEvent('gotoENTRY',self.currentEntry));
+    self.updateStatus()
 
   #
   # previousEntry
@@ -283,6 +310,7 @@
     nextEntry.processTrigger('Post-FocusIn')
 
     self.dispatchEvent(GFEvent('gotoENTRY',self.currentEntry));
+    self.updateStatus()
 
   #
   # changeFocus
@@ -300,6 +328,7 @@
     event.data.processTrigger('Post-FocusIn')
 
     self.dispatchEvent(GFEvent('gotoENTRY',self.currentEntry));
+    self.updateStatus()
                         
   #
   # nextBlock
@@ -337,6 +366,7 @@
 
     self.dispatchEvent(GFEvent('gotoPAGE',self.currentPage));
     self.dispatchEvent(GFEvent('gotoENTRY',self.currentEntry));
+    self.updateStatus()
 
   #
   # previousBlock
@@ -371,6 +401,7 @@
 
     self.dispatchEvent(GFEvent('gotoPAGE',self.currentPage));
     self.dispatchEvent(GFEvent('gotoENTRY',self.currentEntry));
+    self.updateStatus()
 
   #
   # cursorMove
@@ -415,16 +446,16 @@
   def keyPress(self, event):
     if GFOptions.DEBUG:
       print "Keypress event", event.data
-    if not self.currentEntry.__dict__.has_key('readonly'):
+    if not hasattr(self.currentEntry,'readonly'):
       currentvalue = self.currentEntry.getValue()
-      if self.currentEntry.__dict__.has_key('lowercase'):
+      if hasattr(self.currentEntry,'lowercase'):
         event.data = string.lower(event.data)
-      if self.currentEntry.__dict__.has_key('uppercase'):
+      if hasattr(self.currentEntry,'uppercase'):
         event.data = string.upper(event.data)
-      if self.currentEntry.__dict__.has_key('max_length'):
+      if hasattr(self.currentEntry,'max_length'):
         if len(currentvalue) >= int(self.currentEntry.max_length):
           return
-      if self.currentEntry.__dict__.has_key('numeric'):
+      if hasattr(self.currentEntry,'numeric'):
         if not (event.data in string.digits or event.data in '.'):
           return
 
@@ -438,7 +469,10 @@
       self.currentEntry.setValue(currentvalue)
       self.currentEntry.cursorPosition = self.currentEntry.cursorPosition + 1
       self.dispatchEvent(GFEvent('updateENTRY',self.currentEntry));
+    else:
+      self.dispatchEvent(GFEvent('formALERT','Form is readonly'))
 
+                               
   #
   # removeCharacter
   #
Index: gnue/gnuef/src/GFObjects.py
diff -u gnue/gnuef/src/GFObjects.py:1.26 gnue/gnuef/src/GFObjects.py:1.27
--- gnue/gnuef/src/GFObjects.py:1.26    Thu Oct 26 12:30:48 2000
+++ gnue/gnuef/src/GFObjects.py Thu Oct 26 14:59:54 2000
@@ -220,7 +220,7 @@
   # 
 
   def updateDetail(self,event):
-    if self.__dict__.has_key('masterBlock'):
+    if hasattr(self,'masterBlock'):
       if self.masterBlock == event.data.name:
         fieldValue = self.form.findValue(self.masterBlock, self.masterField)
         self.dataSourceLink.clear()
@@ -248,6 +248,7 @@
       self.currentRecord = 0
       
self.dispatchEvent(GFEvent('switchRECORD',[oldRecord,self.currentRecord]));
       self.dispatchEvent(GFEvent('requestPREVRECORD',None))
+      
self.dispatchEvent(GFEvent('uiUPDATESTATUS',[None,None,None,self.currentRecord,self.recordCount]))
 
 
 
 
@@ -270,6 +271,7 @@
       if self.currentRecord > self.recordCount : self.currentRecord = 0
         
       
self.dispatchEvent(GFEvent('switchRECORD',[oldRecord,self.currentRecord]));
+      
self.dispatchEvent(GFEvent('uiUPDATESTATUS',[None,None,None,self.currentRecord,self.recordCount]))
 
       
   #
   # recordSwitched
@@ -326,6 +328,7 @@
           self.recordCount = 
self.form.datasourceDictionary[self.datasource].getLastRecordNumber()
           self.dispatchEvent(GFEvent('switchRECORD',[-1,0]));
           self.currentRecord = 0
+          
self.dispatchEvent(GFEvent('uiUPDATESTATUS',[None,None,None,self.currentRecord,self.recordCount]))
 
                                 
 
 #
@@ -390,7 +393,7 @@
   #
   def verifyValue(self):
     value = 1
-    if self.__dict__.has_key('foreign_key'):
+    if hasattr(self,'foreign_key'):
       value = 0
       datasourceName,fieldName = string.split(self.foreign_key,'.')
       datasource = self.block.form.datasourceDictionary[datasourceName]
@@ -406,12 +409,12 @@
   #
   def allowedValues(self):
     values = {}
-    if self.__dict__.has_key('foreign_key'):
+    if hasattr(self,'foreign_key'):
       datasourceName,fieldName = string.split(self.foreign_key,'.')
       datasource = self.block.form.datasourceDictionary[datasourceName]
 
       for count in range(datasource.getLastRecordNumber()+1):
-        if self.__dict__.has_key('foreign_key_description'):
+        if hasattr(self,'foreign_key_description'):
           description = datasource.getField(count,self.foreign_key_description)
         else:
           description = None
@@ -457,7 +460,7 @@
 #    self.resultSet = []    
     self.emptyRecord = {}
     
-    if self.__dict__.has_key('database'):
+    if hasattr(self,'database'):
       if GFOptions.DEBUG:
         print "  linking to database %s" % (self.database)
 
@@ -470,9 +473,8 @@
         
     self.clear()
       
-    if self.__dict__.has_key('prequery'):
+    if hasattr(self,'prequery'):
       self.query()
-      print self.resultSet
 
   def clear(self):
     self.resultSet = []
@@ -495,7 +497,7 @@
     if GFOptions.DEBUG:
       print "Query with this in resultSet"
       print self.resultSet[0]
-    if self.__dict__.has_key('database'):
+    if hasattr(self,'database'):
       if self.sql == None:
         mask = {}
         for key in self.fieldList:
@@ -521,7 +523,7 @@
       
 
   def commit(self):
-    if self.__dict__.has_key('database'):
+    if hasattr(self,'database'):
       for count in range(len(self.resultSet)):
         if GFOptions.DEBUG:
           print "record %s is %s " % (count, self.resultSetStatus[count])
Index: gnue/gnuef/src/UIbase.py
diff -u gnue/gnuef/src/UIbase.py:1.11 gnue/gnuef/src/UIbase.py:1.12
--- gnue/gnuef/src/UIbase.py:1.11       Thu Oct 26 12:30:48 2000
+++ gnue/gnuef/src/UIbase.py    Thu Oct 26 14:59:54 2000
@@ -101,9 +101,6 @@
         if self.currentObject[0].getObjectType() in self.containerWidgets:
           self.currentWidget.insert(0,widget[0])
 
-#        if self.currentObject[0].__dict__.has_key('foreign_key'):
-#          print "Allowed Values: ",self.currentObject[0].allowedValues()
-
     except KeyError:
       pass
                                                           
Index: gnue/gnuef/src/UIwxpython.py
diff -u gnue/gnuef/src/UIwxpython.py:1.22 gnue/gnuef/src/UIwxpython.py:1.23
--- gnue/gnuef/src/UIwxpython.py:1.22   Thu Oct 26 12:30:48 2000
+++ gnue/gnuef/src/UIwxpython.py        Thu Oct 26 14:59:54 2000
@@ -61,8 +61,10 @@
     self.incommingEvent = {'gotoENTRY'    : self.switchFocus,
                            'updateENTRY'  : self.updateEntry,
                            'gotoPAGE'     : self.gotoPage,
+                           'formALERT'    : self.formAlert,
                            'uiNEXTRECORD' : self.adjustMultiView,
-                           'uiPREVRECORD' : self.adjustMultiView
+                           'uiPREVRECORD' : self.adjustMultiView,
+                           'uiUPDATESTATUS': self.updateStatus
                           }
 
     # Create the UI from the GFForm passed in
@@ -146,13 +148,32 @@
     #print self.formToUI[event.data]
     self.formToUI[event.data][0][index].SetFocus()
 
+  def updateStatus(self,event):
+    tip, recordStatus, insertMode, currentRecord, maxRecord =event.data
+
+    if tip != None:
+      self.statusBar.SetStatusText(tip,0)
+
+    if recordStatus != None:
+      self.statusBar.SetStatusText(recordStatus,1)
+
+    if insertMode != None:
+      if int(insertMode) == 1:
+        self.statusBar.SetStatusText('INS',2)
+      else:
+        self.statusBar.SetStatusText('OVR',2)
+      
+    if currentRecord != None and  maxRecord != None:
+      self.statusBar.SetStatusText(string.strip("%s/%s" % 
(currentRecord,maxRecord)),3)
+      
+
   def updateEntry(self,event):
     index = self.formToUI[event.data][1]
     
     block = event.data.block # .form.currentBlock
     currentRecord = block.currentRecord
 
-    if event.data.__dict__.has_key('style'):
+    if hasattr(event.data, 'style'):
       style = event.data.style
     else:
       style = 'text'
@@ -328,7 +349,7 @@
     container = self.currentWidget[0]
     widget = []
 
-    if not object.__dict__.has_key('hidden'):
+    if not hasattr(object,'hidden'):
 
       #jamest this is probably wrong way to do but be patient. :)
 
@@ -342,7 +363,7 @@
 #        except:
 #          pass
 
-      if not object.__dict__.has_key('visibleCount'):
+      if not hasattr(object,'visibleCount'):
       #  count = int(object.visibleCount)
       #else:
         object.visibleCount = 1
@@ -375,8 +396,11 @@
     self.frame = wxFrame(NULL, -1, "",
                     wxDefaultPosition, wxSize(int(self.form.width), 
int(self.form.height)))
 
-    self.frame.CreateStatusBar();
-    self.frame.SetStatusText( "Welcome to GNUe Forms!  Would someone please 
tell us we can stop coding?" );
+    self.statusBar = self.frame.CreateStatusBar()
+    self.statusBar.SetFieldsCount(4)
+    self.statusBar.SetStatusWidths([-1,100,50,100])
+    
+    self.frame.SetStatusText( "Welcome to GNUe Forms!  Would someone please 
tell us we can stop coding?" )
 
     menu = wxMenu()
     menu.Append( 100, "&About..." )
@@ -415,6 +439,10 @@
     dlg.ShowModal()
     dlg.Destroy()
 
+  def formAlert(self, event):
+    wxBell()
+    self.statusBar.SetStatusText(event.data,0)
+
                                       
 
   def TimeToQuit(self, event):
@@ -426,13 +454,13 @@
     container = self.currentWidget[0]
 
     widget = []
-    if not object.__dict__.has_key('visibleCount'):
+    if not hasattr(object,'visibleCount'):
       object.visibleCount = 1
       
     count = int(object.visibleCount)
 
 
-    if object.__dict__.has_key('style'):
+    if hasattr(object,'style'):
       style = object.style
     else:
       style = 'text'



reply via email to

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