Guest User

ulc- validator data transfer test

a guest
Oct 25th, 2011
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.21 KB | None | 0 0
  1. import sys
  2. import os
  3. import wx
  4. import random
  5. import datetime
  6. import math
  7.  
  8. import wx.lib.mixins.listctrl as listmix
  9. import wx.lib.colourdb as cdb
  10. import wx.lib.colourselect as csel
  11.  
  12. import UltimateListCtrl as ULC
  13.  
  14. data = {'CONTRACT_TERM':'TEST'}
  15.  
  16. class DataXfervalidator(wx.PyValidator):
  17.     def __init__(self, data, key):
  18.         wx.PyValidator.__init__(self)
  19.         self.data = data
  20.         self.key = key
  21.         #self.TransferFromWindow()
  22.         #print "validating"
  23.         print data
  24.         print "VALIDATOR CLASS TRIGGRED"
  25.         print key
  26.        
  27.     def Clone (self):
  28.         print "VAL CLONE TRIGGERED"
  29.         return DataXfervalidator(self.data, self.key)
  30.    
  31.     def Validate(self):
  32.         print 'here we go'
  33.    
  34.    
  35.     def TransferToWindow(self):
  36.         print "TransferTO"
  37.         print data
  38.         textCtrl = self.GetWindow()
  39.         textCtrl.SetValue(self.data.get(self.key, ""))
  40.         return True
  41.  
  42.     def TransferFromWindow(self):
  43.         textCtrl = self.GetWindow()
  44.         print "TransferFROM"
  45.         #print textCtrl
  46.         self.data[self.key] = textCtrl.GetValue()
  47.         print data
  48.         return True
  49.  
  50. class TestUltimateListCtrl(ULC.UltimateListCtrl):
  51.    
  52.     def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, extraStyle=0):
  53.        
  54.         ULC.UltimateListCtrl.__init__(self, parent, id, pos, size, style, extraStyle)
  55.    
  56.    
  57. class UltimateListCtrlPanel(wx.Panel, listmix.ColumnSorterMixin):
  58.    
  59.     def __init__(self, parent):
  60.         wx.Panel.__init__(self, parent, -1, style=wx.WANTS_CHARS|wx.SUNKEN_BORDER)
  61.        
  62.         sizer = wx.BoxSizer(wx.VERTICAL)
  63.         self.list = TestUltimateListCtrl(self, -1,
  64.                                          style=wx.LC_REPORT
  65.                                          #| wx.BORDER_SUNKEN
  66.                                          | wx.BORDER_NONE
  67.                                          | wx.LC_EDIT_LABELS
  68.                                          #| wx.LC_SORT_ASCENDING
  69.                                          #| wx.LC_NO_HEADER
  70.                                          | wx.LC_VRULES
  71.                                          | wx.LC_HRULES,
  72.                                          #| wx.LC_SINGLE_SEL
  73.                                          extraStyle=ULC.ULC_HAS_VARIABLE_ROW_HEIGHT
  74.                                          )
  75.         sizer.Add(self.list, 1, wx.EXPAND)
  76.        
  77.         self.PopulateList()
  78.         #self.TransferDataFromWindow()
  79.        
  80.         self.SetSizer(sizer)
  81.         self.SetAutoLayout(True)
  82.    
  83.     def PopulateList(self):
  84.  
  85.         self.list.Freeze()
  86.        
  87.         info = ULC.UltimateListItem()
  88.         info._mask = wx.LIST_MASK_TEXT | wx.LIST_MASK_IMAGE | wx.LIST_MASK_FORMAT | ULC.ULC_MASK_CHECK
  89.         info._image = []
  90.         info._format = 0
  91.         #info._kind = 1
  92.         info._text = "CONTRACT"
  93.        
  94.         self.list.TransferDataToWindow()
  95.         self.list.InsertColumnInfo(0, info)
  96.         index = self.list.InsertStringItem(sys.maxint,'')
  97.         item = self.list.GetItem(0, 0)
  98.         textctrl = wx.TextCtrl(self.list, -1, "", validator=DataXfervalidator(data,'CONTRACT_TERM'))
  99.         ##textctrl = wx.TextCtrl(self.list, -1, "", style=wx.TE_MULTILINE)
  100.         item.SetWindow(textctrl)
  101.         self.list.SetItem(item)
  102.         self.list.TransferDataToWindow()
  103.         #self.list.TransferDataFromWindow()
  104.         #textctrl.TransferDataToWindow()
  105.        
  106.        
  107.        
  108.         self.list.SetColumnWidth(0, 100)
  109.  
  110.         self.list.Thaw()
  111.         self.list.Update()
  112.    
  113.    
  114.    
  115. class MiniFrame(wx.MiniFrame):
  116.     def __init__(self):
  117.         wx.MiniFrame.__init__(self, None, -1, 'Mini Frame', size=(800, 600),style=wx.DEFAULT_FRAME_STYLE)
  118.         self.ulc = UltimateListCtrlPanel(self)
  119.        
  120.         #button = wx.Button(self.ulc, -1, "Close Me", pos=(15, 15))
  121.         #self.Bind(wx.EVT_BUTTON, self.OnCloseMe, button)
  122.         #self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
  123.    
  124.        
  125.        
  126.     def OnCloseMe(self, event):
  127.         self.Close(True)
  128.  
  129.     def OnCloseWindow(self, event):
  130.         self.Destroy()    
  131.  
  132. app = wx.PySimpleApp()
  133. MiniFrame().Show()
  134. app.MainLoop()        
  135.        
  136.  
Advertisement
Add Comment
Please, Sign In to add comment