CVS: anygui/lib/anygui/backends javagui.py,1.55,1.56

Samuele Pedroni <[email protected]> Tue, 10 Sep 2002 14:57:52 -0700
Newsgroups gmane.comp.python.anygui.cvs
Message-ID <[email protected]>
Update of /cvsroot/anygui/anygui/lib/anygui/backends
In directory usw-pr-cvs1:/tmp/cvs-serv21526

Modified Files:
	javagui.py 
Log Message:
self.widget using None to signal absence.


Index: javagui.py
===================================================================
RCS file: /cvsroot/anygui/anygui/lib/anygui/backends/javagui.py,v
retrieving revision 1.55
retrieving revision 1.56
diff -C2 -r1.55 -r1.56
*** javagui.py	1 Sep 2002 22:57:53 -0000	1.55
--- javagui.py	10 Sep 2002 21:57:50 -0000	1.56
***************
*** 18,26 ****
  ################################################################
  
- #@@@ FIXME: Implement getGeometry and friends...
- 
- #@@@ FIXME: Use isDummy instead of repeated try/except :)
  from anygui.Applications import AbstractApplication
! from anygui.Wrappers import AbstractWrapper, DummyWidget, isDummy
  from anygui.Events import *
  from anygui import application
--- 18,23 ----
  ################################################################
  
  from anygui.Applications import AbstractApplication
! from anygui.Wrappers import AbstractWrapper
  from anygui.Events import *
  from anygui import application
***************
*** 53,56 ****
--- 50,55 ----
          # @@@ Cookie-cutter from tkgui
          self.setConstraints('container','x','y','width','height','text','selection')
+         self._container = None
+ 
  
      # @@@ Cookie-cutter from tkgui
***************
*** 73,77 ****
          #probably be removed. [mlh@20020831]
  
!         if self.noWidget():
              self.widget = self.widgetFactory(*args, **kwds)
              self.widgetSetUp()
--- 72,76 ----
          #probably be removed. [mlh@20020831]
  
!         if not self.widget:
              self.widget = self.widgetFactory(*args, **kwds)
              self.widgetSetUp()
***************
*** 84,105 ****
--- 83,111 ----
  
      def setX(self, x):
+         if not self.widget: return
          self.widget.x = x
  
      def setY(self, y):
+         if not self.widget: return
          self.widget.y = y
  
      def setWidth(self, width):
+         if not self.widget: return
          self.widget.width = width
  
      def setHeight(self, height):
+         if not self.widget: return
          self.widget.height = height
  
      def setPosition(self, x, y):
+         if not self.widget: return
          self.widget.position = x, y
  
      def setSize(self, width, height):
+         if not self.widget: return
          self.widget.size = width, height
  
      def setGeometry(self, x, y, width, height):
+         if not self.widget: return
          self.widget.bounds = x, y, width, height
          if self.widget.layout:
***************
*** 107,168 ****
  
      def setVisible(self, visible):
          self.widget.visible = visible
  
!     def setContainer(self, container):
!         # Factor out the conditional destruction?
          if container is None:
              self.destroy()
              return
!         try:
!             parent = container.wrapper.widget
!         except AttributeError:
!             # FIXME: Handle Application containers differently...
!             self.create()
!             self.proxy.push(blocked=['container'])
!             return
!         try:
!             assert parent.isDummy()
!         except (AttributeError, AssertionError):
              self.destroy()
              self.create()
!             try:
                  parent = parent.contentPane
-             except AttributeError: pass
              parent.add(self.widget)
              self._container = parent # Can this be fetched from the widget (later)?
              self.proxy.push(blocked=['container'])
  
!     def setEnabled(self, enabled):
!         self.widget.enabled = enabled
  
!     def internalDestroy(self): # Move to Wrapper?
!         try:
!             assert self.widget.isDummy()
!         except (AttributeError, AssertionError):
!             try:
!                 container = self._container
!             except AttributeError: pass
!             else:
!                 if container:
!                     bounds = self.widget.bounds
!                     container.remove(self.widget)
!                     container.repaint(bounds)
!             try: self.widget.dispose()
!             except AttributeError: pass
!             self._container = None
  
-     def setText(self, text):
-         try:
-             self.widget.setText(text)
-         except AttributeError: pass # FIXME! When does this happen?
-         #self.widget.text = text # FIXME!
  
      def getText(self):
!         try:
!             assert self.widget.isDummy()
!         except (AttributeError, AssertionError):
!             return self.widget.text
!         else:
!             return "" # @@@ What would be the best behaviour here? Should there be an exception?
  
  ################################################################
--- 113,157 ----
  
      def setVisible(self, visible):
+         if not self.widget: return
          self.widget.visible = visible
  
!     def setEnabled(self, enabled):
!         if not self.widget: return
!         self.widget.enabled = enabled
! 
!     def setContainer(self, container): # WindowWrapper gets specialized version
          if container is None:
              self.destroy()
              return
!         parent = container.wrapper.widget 
!         if parent:
              self.destroy()
              self.create()
!             if isinstance(parent,swing.JFrame): # @@@
                  parent = parent.contentPane
              parent.add(self.widget)
              self._container = parent # Can this be fetched from the widget (later)?
              self.proxy.push(blocked=['container'])
  
!     def internalDestroy(self): # WindowWrapper gets specialized version
!         if not self.widget: return
!         container = self._container
!         if container:
!             bounds = self.widget.bounds
!             container.remove(self.widget)
!             container.repaint(bounds)
!         self._container = None
  
! ################################################################
  
  
+ class TextPropMixin:
+     
+     def setText(self, text):
+         if not self.widget: return
+         self.widget.setText(text)
+  
      def getText(self):
!         return self.widget.text
  
  ################################################################
***************
*** 171,174 ****
--- 160,164 ----
                  
      def setOn(self, on):
+         if not self.widget: return
          self.widget.selected = on
  
***************
*** 182,191 ****
          send(self.proxy, 'click')
  
! class CheckBoxWrapper(ToggleButtonMixin, ComponentWrapper):
  
      def widgetFactory(self, *args, **kwds):
          return swing.JCheckBox()
  
! class RadioButtonWrapper(ToggleButtonMixin, ComponentWrapper):
  
      def widgetFactory(self, *args, **kwds):
--- 172,181 ----
          send(self.proxy, 'click')
  
! class CheckBoxWrapper(ToggleButtonMixin, TextPropMixin, ComponentWrapper):
  
      def widgetFactory(self, *args, **kwds):
          return swing.JCheckBox()
  
! class RadioButtonWrapper(ToggleButtonMixin, TextPropMixin, ComponentWrapper):
  
      def widgetFactory(self, *args, **kwds):
***************
*** 205,209 ****
  ################################################################
  
! class ButtonWrapper(ComponentWrapper):
  
      def clickHandler(self, event):
--- 195,199 ----
  ################################################################
  
! class ButtonWrapper(TextPropMixin, ComponentWrapper):
  
      def clickHandler(self, event):
***************
*** 220,224 ****
  ################################################################
  
! class LabelWrapper(ComponentWrapper):
  
      def widgetFactory(self, *args, **kwds):
--- 210,214 ----
  ################################################################
  
! class LabelWrapper(TextPropMixin, ComponentWrapper):
  
      def widgetFactory(self, *args, **kwds):
***************
*** 246,256 ****
--- 236,249 ----
  
      def setSelection(self, selection):
+         if not self.widget: return
          self.widget.selectionStart = selection[0]
          self.widget.selectionStart = selection[1]
  
      def setEditable(self, editable):
+         if not self.widget: return
          self.widget.editable = editable
  
      def setText(self, text):
+         if not self.widget: return
          self.widget.text = text
  
***************
*** 301,311 ****
--- 294,307 ----
  
      def setSelection(self, selection):
+         if not self.widget: return
          self.widget.setSelectionStart(selection[0])
          self.widget.setSelectionStart(selection[1])
  
      def setEditable(self, editable):
+         if not self.widget: return
          self.widget.setEditable(editable)
  
      def setText(self, text):
+         if not self.widget: return
          self.widget.setText(text)
  
***************
*** 352,363 ****
  
      def setSelection(self, selection):
          self.widget.setSelectedIndex(selection)
          
      def getSelection(self):
-         # FIXME: This should be handled differently
-         if isDummy(self.widget): return 0
          return self.widget.getSelectedIndex()
  
      def setItems(self, items):
          temp = java.util.Vector()
          for item in items:
--- 348,359 ----
  
      def setSelection(self, selection):
+         if not self.widget: return
          self.widget.setSelectedIndex(selection)
          
      def getSelection(self):
          return self.widget.getSelectedIndex()
  
      def setItems(self, items):
+         if not self.widget: return
          temp = java.util.Vector()
          for item in items:
***************
*** 392,400 ****
  
      def setGeometry(self, x, y, width, height):
!         if not isDummy(self.widget):
!             insets = self.widget.insets
!             width += insets.left + insets.right
!             height += insets.top + insets.bottom
!             ComponentWrapper.setGeometry(self, x, y, width, height)
  
      def getGeometry(self):
--- 388,396 ----
  
      def setGeometry(self, x, y, width, height):
!         if not self.widget: return
!         insets = self.widget.insets
!         width += insets.left + insets.right
!         height += insets.top + insets.bottom
!         ComponentWrapper.setGeometry(self, x, y, width, height)
  
      def getGeometry(self):
***************
*** 406,409 ****
--- 402,418 ----
          return x, y, width, height
  
+     def setContainer(self, container):
+         if container is None:
+             self.destroy()
+             return
+         self.create()
+         self.proxy.push(blocked=['container'])
+         return
+ 
+     def internalDestroy(self):
+         if not self.widget: return
+         ComponentWrapper.internalDestroy(self)
+         self.widget.dispose()
+ 
      def widgetSetUp(self):
          self.widget.windowClosing = self.closeHandler
***************
*** 411,414 ****
--- 420,424 ----
  
      def setTitle(self, title):
+         if not self.widget: return
          self.widget.title = title
  



-------------------------------------------------------
In remembrance
www.osdn.com/911/