import dabo
dabo.ui.loadUI("wx")


class VarColumn(dabo.ui.dColumn):
	def dynBackColor(self, row):
		if row == 1 and self.ColumnIndex == 1:
			return "red"
		return None

	def dynForeColor(self, row):
		if row == 1 and self.ColumnIndex == 1:
			return "white"
		return None

	def initProperties(self):
		self.HeaderBackColor = "orange"
		self.HorizontalAlignment = "Center"
		self.DynamicCellBackColor = self.dynBackColor
		self.DynamicCellForeColor = self.dynForeColor


class InfoPanel(dabo.ui.dPanel):
	def afterInit(self):
		self.Sizer=vs=dabo.ui.dSizer('v')
		vs.appendSpacer(10)
		hs=dabo.ui.dSizer('h')
		ds = [
				{"name" : "Pending In", "qty" : 3500.00, "value" :  27375.00},
				{"name" : "In Stock", "qty" : 4800.00, "value" :  43291.62},
				{"name" : "Pending Out", "qty": 5720.00, "value" : 101465.00},
				{"name" : "Available", "qty": 3315.00, "value" :  0}]
	
		summayGrid = dabo.ui.dGrid(self, RegID="summaryID", SelectionMode="Cell",
				Editable = False, MovableColumns=False)
		summayGrid.DataSet=ds
		summayGrid.addColumn(VarColumn, Caption='           ', Width=100, 
				DataField="name", HeaderBackColor=None)
		summayGrid.addColumn(VarColumn, Caption='Quantity', Width=200, DataField='qty')
		summayGrid.addColumn(VarColumn, Caption='Value', Width=200, DataField='value')
		summayGrid.Height=160
		hs.append1x(summayGrid)
		
		vs.append1x(hs)
		
		

class MainPanelFrames(dabo.ui.dPanel):
	
	def afterInit(self):
		self.Sizer = vs = dabo.ui.dSizer("v") 
		pageFrame = pgf = dabo.ui.dPageFrame(self)
		pgf.RegID= "FormPG"
		pgf.appendPage(pgCls=InfoPanel, caption="Information")
		vs.append(pgf, 0,"x")  # proportion=0, layout=expand)


	
class MainForm(dabo.ui.dForm):
	
	def afterInit(self):
		self.Caption = "Bonanza Accounting - Inventory status"
		self.Sizer = dabo.ui.dSizer("vertical")
		self.Sizer.append1x(MainPanelFrames(self))
		self.layout()
		

app = dabo.dApp(MainFormClass=None)
app.setup()
frm = MainForm()
frm.show()
app.start()