commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r7887 - in trunk/gnue-forms/src: . GFObjects input/displayHandler


From: jamest
Subject: [gnue] r7887 - in trunk/gnue-forms/src: . GFObjects input/displayHandlers uidrivers/qt uidrivers/wx/widgets
Date: Fri, 2 Sep 2005 15:23:35 -0500 (CDT)

Author: jamest
Date: 2005-09-02 15:23:33 -0500 (Fri, 02 Sep 2005)
New Revision: 7887

Modified:
   trunk/gnue-forms/src/GFInstance.py
   trunk/gnue-forms/src/GFObjects/GFImage.py
   trunk/gnue-forms/src/input/displayHandlers/Cursor.py
   trunk/gnue-forms/src/input/displayHandlers/Image.py
   trunk/gnue-forms/src/input/displayHandlers/__init__.py
   trunk/gnue-forms/src/uidrivers/qt/UILoginHandler.py
   trunk/gnue-forms/src/uidrivers/wx/widgets/_base.py
Log:
get <image> working again, now using openResource
adjusted the qt login handler to allow use 
outside of forms/designer (new navigator)


Modified: trunk/gnue-forms/src/GFInstance.py
===================================================================
--- trunk/gnue-forms/src/GFInstance.py  2005-09-02 11:35:14 UTC (rev 7886)
+++ trunk/gnue-forms/src/GFInstance.py  2005-09-02 20:23:33 UTC (rev 7887)
@@ -349,14 +349,18 @@
       raise errors.ApplicationError, \
          u_("There are no navigable widgets in this form. Unable to display.")
 
+    gDebug (4, "Processing activation trigger")
     form.processTrigger ('On-Activation')
 
     # First set the current entry to be focused and up to date before
     # displaying the real UI form. 
+    gDebug (4, "Initial display setup")    
     form.refreshDisplay (form)
     self.updateStatus (form)
 
+    gDebug (4, "Setting initial focus")    
     self.dispatchEvent ('gotoENTRY', object = form._currentEntry, _form = form)
+    gDebug (4, "Activating form")    
     self._uiinstance.activateForm (formName, modal)
 
     gLeave (4)
@@ -1155,7 +1159,7 @@
 
     message = event._form.executeQuery ()
     if message:
-      self.displayMessageBox (message, 'Error')
+      self.displayMessageBox (message, 'Query Error')
 
     self.dispatchEvent ('gotoENTRY', object = event._form._currentEntry,
                        _form = event._form)
@@ -1174,7 +1178,7 @@
 
     message = event._form.commit ()
     if message:
-      self.displayMessageBox (message, 'Error')
+      self.displayMessageBox (message, 'Commit Error')
       gDebug(4,message)
       return
 

Modified: trunk/gnue-forms/src/GFObjects/GFImage.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFImage.py   2005-09-02 11:35:14 UTC (rev 
7886)
+++ trunk/gnue-forms/src/GFObjects/GFImage.py   2005-09-02 20:23:33 UTC (rev 
7887)
@@ -34,7 +34,7 @@
 
 from GFTabStop import GFTabStop
 from GFTabStop import GFTabStop
-from gnue.forms.input import displayHandlers 
+from gnue.forms.input import displayHandlers
 #
 #GFLabel
 #
@@ -91,9 +91,12 @@
 
     self._navigable = False # self.navigable
 
-    self._displayHandler = displayHandlers.Image(self,
+    print "Controller", self._form._instance.eventController
+    print "Sub Handler", self.subEventHandler
+    print displayHandlers.Image
+    self._displayHandler = displayHandlers.factory(self,
                               self._form._instance.eventController,
-                              self.subEventHandler)
+                              self.subEventHandler,None, None)
 
   # TODO: Conversion:  Does this belong here or not?
   def getValue(self, *args, **parms):

Modified: trunk/gnue-forms/src/input/displayHandlers/Cursor.py
===================================================================
--- trunk/gnue-forms/src/input/displayHandlers/Cursor.py        2005-09-02 
11:35:14 UTC (rev 7886)
+++ trunk/gnue-forms/src/input/displayHandlers/Cursor.py        2005-09-02 
20:23:33 UTC (rev 7887)
@@ -23,7 +23,6 @@
 #
 # $Id$
 #
-# pylint: disable-msg=E0602
 #
 """
 The base display handler for entries that deal with cursor based
@@ -730,4 +729,4 @@
     if self.editing:
       self.display = self._buildDisplayHelper(self.work, True)
     else:
-      self.display = self._buildDisplayHelper(self.value, False)
\ No newline at end of file
+      self.display = self._buildDisplayHelper(self.value, False)

Modified: trunk/gnue-forms/src/input/displayHandlers/Image.py
===================================================================
--- trunk/gnue-forms/src/input/displayHandlers/Image.py 2005-09-02 11:35:14 UTC 
(rev 7886)
+++ trunk/gnue-forms/src/input/displayHandlers/Image.py 2005-09-02 20:23:33 UTC 
(rev 7887)
@@ -27,30 +27,51 @@
 """
 __revision__ = "$Id$"
 
+from gnue.common.utils.FileUtils import openResource
 from gnue.forms.input.displayHandlers.Cursor import BaseCursor
-
+import cStringIO
 try:
-  import Image
+  from PIL import Image as PILImage
 except ImportError:
-  Image = None
+  PILImage = None
 
-class ImageDisplayHandler(BaseCursor):
+class Image(BaseCursor):
   """
   Display handler responsible for handling image style entries.
   """
   def __init__(self, entry, eventHandler, subEventHandler):
-    if not Image:
+    """
+    Constructor
+    
+    @param entry: The GFImage instance associated with this handler
+    @param eventHandler: The 
+    @param subEventHandler: The event handler this display helper will 
+                            user to register it's listeners.
+    @param displayMask: Not applicable to images
+    @param inputMask: Not applicable to images
+    """
+    if not PILImage:
       raise "Form contains a <image> and image support not loaded"
     BaseCursor.__init__(self, entry, eventHandler, subEventHandler)
 
   def _buildDisplayHelper(self, value, editing):
+    """
+    Opens and returns a PIL Image for the requested url
+    
+    @param value: The url of the image to be displayed
+    @param editing: Not used
+    """
     if self.entry.type.lower() == 'url':
       try:
-        # PIL doesn't like our openResource function
-        # im = Image.open(openResource(value))
-        # TODO: Retest with latest PIL
-        im = Image.open(value)
+        # PIL doesn't like our openResource function as it's based
+        # upon urlopen which doesn't provide seek.  We'll use the
+        # StringIO function to get around that so that urls can
+        # still be used 
+        urlFile = openResource(value)        
+        fileObject = cStringIO.StringIO(urlFile.read())
+        image = PILImage.open(fileObject)
+        
       except IOError:
-        im = Image.new("RGB", (1, 1, ))
+        image = PILImage.new("RGB", (1, 1, ))
 
-    return im
\ No newline at end of file
+    return image

Modified: trunk/gnue-forms/src/input/displayHandlers/__init__.py
===================================================================
--- trunk/gnue-forms/src/input/displayHandlers/__init__.py      2005-09-02 
11:35:14 UTC (rev 7886)
+++ trunk/gnue-forms/src/input/displayHandlers/__init__.py      2005-09-02 
20:23:33 UTC (rev 7887)
@@ -52,12 +52,16 @@
                        'listbox': Listbox,
                        'password':Password,
                        'number':  Numeric,
+                       'image' : Image
                       }
   
-  if entry._field.typecast == 'number':
-    key = 'number'
+  if entry._type == 'GFImage':
+    # Images don't need input masks so just return the image now
+    return Image(entry, eventHandler, subEventHandler)
   elif entry._field.typecast == 'date':
     key = 'date'
+  elif entry._field.typecast == 'number':
+    key = 'number'
   else:
     key = entry.style
     

Modified: trunk/gnue-forms/src/uidrivers/qt/UILoginHandler.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/qt/UILoginHandler.py 2005-09-02 11:35:14 UTC 
(rev 7886)
+++ trunk/gnue-forms/src/uidrivers/qt/UILoginHandler.py 2005-09-02 20:23:33 UTC 
(rev 7887)
@@ -52,8 +52,9 @@
 # UILoginHandler
 #
 class UILoginHandler(GLoginHandler.LoginHandler):
-  def __init__(self):
-    self._qtapp = getQtApp()
+  def __init__(self, qtApp = None):
+    if qtApp is None:
+      self._qtapp = getQtApp()
     self.dlg = None
 
   def getLogin(self, loginData, errortext=None):

Modified: trunk/gnue-forms/src/uidrivers/wx/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/widgets/_base.py  2005-09-02 11:35:14 UTC 
(rev 7886)
+++ trunk/gnue-forms/src/uidrivers/wx/widgets/_base.py  2005-09-02 20:23:33 UTC 
(rev 7887)
@@ -170,8 +170,8 @@
     # Check if foreign key changed
     object = self._uiDriver._IdToGFObj[widget.GetId()]
     try:
-      if (object.style == "dropdown" or object.style == "listbox") and \
-          not object._field._allowedValues == widget._origAllowedValues:
+      if object.style in ("dropdown","listbox") and \
+         not object._field._allowedValues == widget._origAllowedValues:
         try:
           # Not in wx 2.2.x
           widget.Freeze()





reply via email to

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