# -*- coding: utf-8 -*-#

import wx
from ObjectListView import ObjectListView,ColumnDefn

class Data(object):
    def __init__(self, state1, state2, first, second, label1, label2, label3):
        self.state1 = state1
        self.state2 = state2
        self.first = first
        self.second = second
        self.label1 = label1
        self.label2 = label2
        self.label3 = label3

class Frame(wx.Frame):
    def __init__(self,parent):
        wx.Frame.__init__(self,parent)
        self.list = ObjectListView(self, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER)
        self.myList = [Data(0, 1, "Alex","Smith","name1","name2","name3")]

        self.list.SetColumns([
            ColumnDefn("State1","center",50,"state1", checkStateGetter="state1", checkStateSetter=lambda x,y:0, stringConverter=lambda x: ''),
            ColumnDefn("State2","center",50,"state2", checkStateGetter="state2", checkStateSetter=lambda x,y:0, stringConverter=lambda x: ''),
            ColumnDefn("First","center",100,"first"),
            ColumnDefn("Second","center",100,"second"),
            ColumnDefn("Col 5","center",50,"label1"),
            ColumnDefn("Col 5","center",50,"label2"),
            ColumnDefn("Col 6","center",100,"label3")
            ])
##        self.list.CreateCheckStateColumn(0)
##        self.list.CreateCheckStateColumn(1)
        self.list.SetObjects(self.myList)

        self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, self.list)

    def OnItemSelected(self,event):
        print "item selected:",event.m_itemIndex
            
        obj = self.list.GetSelectedObject()
        print obj.state1
        print obj.state2

if __name__ == '__main__':
    app = wx.PySimpleApp()
    frame = Frame(None)
    frame.Show()

    app.MainLoop()
