]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/TablePrint.py
Patch from FN that fixes bug in RefreshItem on an item that has no
[wxWidgets.git] / wxPython / demo / TablePrint.py
index 7fa8e4eeb3c8d52aa27059058dec8cd35dc758e7..73818dda8a170186d384ac4b13e352df453a399a 100644 (file)
@@ -1,37 +1,38 @@
 
-from wxPython.wx import *
-from wxPython.lib.printout import PrintTable
-
-import os
+import  os
+import  wx
+import  wx.lib.printout as  printout
 
 #---------------------------------------------------------------------------
 
 buttonDefs = {
     814 : ('PreviewWide',      'Preview print of a wide table'),
     815 : ('PreviewNarrow',   'Preview print of a narrow table with color highlights'),
+    816 : ('PreviewText',    'Preview print of a text file'),
     818 : ('OnPreviewMatrix',   'Preview print of a narrow column grid without a table header'),
     817 : ('PreviewLine',   'Preview print to demonstrate the use of line breaks'),
     819 : ('PrintWide', 'Direct print (no preview) of a wide table'),
     }
 
 
-class TablePanel(wxPanel):
+class TablePanel(wx.Panel):
     def __init__(self, parent, log, frame):
-        wxPanel.__init__(self, parent, -1)
+        wx.Panel.__init__(self, parent, -1)
         self.log = log
         self.frame = frame
 
-        box = wxBoxSizer(wxVERTICAL)
-        box.Add(20, 30)
+        box = wx.BoxSizer(wx.VERTICAL)
+        box.Add((20, 30))
         keys = buttonDefs.keys()
         keys.sort()
+
         for k in keys:
             text = buttonDefs[k][1]
-            btn = wxButton(self, k, text)
-            box.Add(btn, 0, wxALIGN_CENTER|wxALL, 15)
-            EVT_BUTTON(self, k, self.OnButton)
+            btn = wx.Button(self, k, text)
+            box.Add(btn, 0, wx.ALIGN_CENTER|wx.ALL, 15)
+            self.Bind(wx.EVT_BUTTON, self.OnButton, btn)
 
-        self.SetAutoLayout(true)
+        self.SetAutoLayout(True)
         self.SetSizer(box)
 
     def OnButton(self, evt):
@@ -40,18 +41,18 @@ class TablePanel(wxPanel):
         eval(code)
 
     def ReadData(self):
-        test_file = "./data/TestTable.txt"
+        test_file = "./data/testtable.txt"
         file = open(test_file,'r',1)
         i = 0
 
         data = []
         while 1:
             text = file.readline()
-            text = string.strip(text)
+            text = text.strip()
             if not text:
                 break
 
-            list_val = string.splitfields(text,'\t')
+            list_val = text.split('\t')
             data.append(list_val)
         file.close()
 
@@ -60,7 +61,7 @@ class TablePanel(wxPanel):
 
     def PreviewWide(self):
         self.ReadData()
-        prt = PrintTable(self.frame)
+        prt = printout.PrintTable(self.frame)
         prt.data = self.data
         prt.left_margin = 0.5
         prt.set_column = [1.0, 1.0, 1.0, 1.5, 1.0, 3.0]
@@ -68,13 +69,14 @@ class TablePanel(wxPanel):
         prt.SetLandscape()
 
         prt.SetColumnLineSize(2, 3)
-        prt.SetColumnLineColour(3, wxNamedColour('RED'))
+        prt.SetColumnLineColour(3, wx.NamedColour('RED'))
 
         prt.SetRowLineSize(1, 3)
-        prt.SetRowLineColour(5, wxNamedColour('RED'))
+        prt.SetRowLineColour(5, wx.NamedColour('RED'))
 
-        prt.SetHeader("wxWindows Applications")
+        prt.SetHeader("wx.Windows Applications")
         prt.SetFooter()
+        prt.SetFooter("Date: ", type = "Date", align=wx.ALIGN_RIGHT, indent = -1, colour = wx.NamedColour('RED'))
         prt.Preview()
 
     def PreviewNarrow(self):
@@ -86,26 +88,26 @@ class TablePanel(wxPanel):
         val = self.header
         new_header = [val[0], val[1], val[2], val[4], val[5]]
 
-        prt = PrintTable(self.frame)
+        prt = printout.PrintTable(self.frame)
         prt.data = new_data
         prt.set_column = [ 1, 1, 1, 1, 2]
         prt.label = new_header
-        prt.SetColAlignment(1, wxALIGN_CENTRE)
-        prt.SetColBackgroundColour(0, wxNamedColour('RED'))
-        prt.SetColTextColour(0, wxNamedColour('WHITE'))
-        prt.SetCellColour(4, 0, wxNamedColour('LIGHT BLUE'))
-        prt.SetCellColour(4, 1, wxNamedColour('LIGHT BLUE'))
-        prt.SetCellColour(17, 1, wxNamedColour('LIGHT BLUE'))
-
-        prt.SetColBackgroundColour(2, wxNamedColour('LIGHT BLUE'))
-        prt.SetCellText(4, 2, wxNamedColour('RED'))
-
-        prt.SetColTextColour(3, wxNamedColour('RED'))
-        prt.label_font_colour = wxNamedColour('WHITE')
-        prt.SetHeader("wxWindows Applications", colour = wxNamedColour('RED'))
-
-        prt.SetHeader("Date", align=wxALIGN_RIGHT, indent = -2, colour = wxNamedColour('BLUE'))
-        prt.SetFooter("Page No", colour = wxNamedColour('RED'), type ="Num")
+        prt.SetColAlignment(1, wx.ALIGN_CENTRE)
+        prt.SetColBackgroundColour(0, wx.NamedColour('RED'))
+        prt.SetColTextColour(0, wx.NamedColour('WHITE'))
+        prt.SetCellColour(4, 0, wx.NamedColour('LIGHT BLUE'))
+        prt.SetCellColour(4, 1, wx.NamedColour('LIGHT BLUE'))
+        prt.SetCellColour(17, 1, wx.NamedColour('LIGHT BLUE'))
+
+        prt.SetColBackgroundColour(2, wx.NamedColour('LIGHT BLUE'))
+        prt.SetCellText(4, 2, wx.NamedColour('RED'))
+
+        prt.SetColTextColour(3, wx.NamedColour('RED'))
+        prt.label_font_colour = wx.NamedColour('WHITE')
+        prt.SetHeader("wxWindows Applications", colour = wx.NamedColour('RED'))
+
+        prt.SetHeader("Printed: ", type = "Date & Time", align=wx.ALIGN_RIGHT, indent = -1, colour = wx.NamedColour('BLUE'))
+        prt.SetFooter("Page No", colour = wx.NamedColour('RED'), type ="Num")
         prt.Preview()
 
     def OnPreviewMatrix(self):
@@ -120,7 +122,7 @@ class TablePanel(wxPanel):
         for val in range(total_col):
             columns.append(hsize)
 
-        prt = PrintTable(self.frame)
+        prt = printout.PrintTable(self.frame)
 
         for row in range(total_row):
             value = []
@@ -129,7 +131,7 @@ class TablePanel(wxPanel):
             data.append(value)
 
         for col in range(total_col):
-            prt.SetColAlignment(col, wxALIGN_CENTRE)
+            prt.SetColAlignment(col, wx.ALIGN_CENTRE)
 
         prt.SetLandscape()
         prt.text_font_size = 8
@@ -141,16 +143,27 @@ class TablePanel(wxPanel):
         prt.Preview()
 
     def PreviewLine(self):
-        prt = PrintTable(self.frame)
+        prt = printout.PrintTable(self.frame)
         prt.label = ["Header 1", "Header 2", "Header 3"]
         prt.set_column = []
         prt.data = [["Row 1", "1", "2"], ["Row 2", "3", "4\nNew Line to see if it also can wrap around the cell region properly\nAnother new line"]]
         prt.SetFooter()
         prt.Preview()
 
+    def PreviewText(self):
+        prt = printout.PrintTable(self.frame)
+        prt.SetHeader("PROCLAMATION")
+        file = open('data/proclamation.txt')
+        data = []
+        for txt in file:
+            data.append(txt.strip())
+        file.close()
+        prt.data = data
+        prt.Preview()
+
     def PrintWide(self):
         self.ReadData()
-        prt = PrintTable(self.frame)
+        prt = printout.PrintTable(self.frame)
         prt.data = self.data
 
         prt.left_margin = 0.5
@@ -172,12 +185,6 @@ def runTest(frame, nb, log):
 
 
 
-import os
-import wxPython.lib.printout
-
-
-
-
 overview = """\
 <html><body>
 <h2>Table Printing</h2>
@@ -186,7 +193,7 @@ This demo shows various ways of using the <b><i>new
 </i></b> PrintOut class.  To understand the class you need to examine the demo examples
 and the library <a href="%s">printout.py</a> module classes.
 <p>
-The initial class primarily contains a Table preview/printing class.  There is alot of flexibility
+The initial class primarily contains a Table preview/printing class.  There is a lot of flexibility
 in manipulating the placement, sizing, colours, alignment of the table text and cell background colors.
 There are also a number of options for printing Header and Footer information on the page.
 <p>
@@ -202,5 +209,14 @@ the program knows it before trying to parse through the available pages.  This w
 when the framework allows for it.
 
 
-""" % os.path.join(os.path.dirname(wxPython.lib.printout.__file__), "printout.py")
+""" % os.path.join(os.path.dirname(printout.__file__), "printout.py")
+
+
+
+
+
+if __name__ == '__main__':
+    import sys,os
+    import run
+    run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])