예제 #1
0
class MyFrame(wx.Frame):
    def __init__(self, *args, **kwds):
        wx.Frame.__init__(self, *args, **kwds)
        self.Init()

    def Init(self):
        self.InitModel()
        self.InitWidgets()
        self.InitObjectListView()

    def InitModel(self):
        self.songs = ExampleModel.GetTracks()

    def InitWidgets(self):
        panel = wx.Panel(self, -1)
        sizer_1 = wx.BoxSizer(wx.VERTICAL)
        sizer_1.Add(panel, 1, wx.ALL|wx.EXPAND)
        self.SetSizer(sizer_1)

        self.myOlv = ObjectListView(panel, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER)
        sizer_2 = wx.BoxSizer(wx.VERTICAL)
        sizer_2.Add(self.myOlv, 1, wx.ALL|wx.EXPAND, 4)
        panel.SetSizer(sizer_2)

        self.Layout()

    def InitObjectListView(self):
        groupImage = self.myOlv.AddImages(ExampleImages.getGroup16Bitmap(), ExampleImages.getGroup32Bitmap())
        userImage = self.myOlv.AddImages(ExampleImages.getUser16Bitmap(), ExampleImages.getUser32Bitmap())
        musicImage = self.myOlv.AddImages(ExampleImages.getMusic16Bitmap(), ExampleImages.getMusic32Bitmap())

        soloArtists = ["Nelly Furtado", "Missy Higgins", "Moby", "Natalie Imbruglia",
                       "Dido", "Paul Simon", "Bruce Cockburn"]
        def artistImageGetter(track):
            if track.artist in soloArtists:
                return userImage
            else:
                return groupImage

        def sizeToNiceString(byteCount):
            """
            Convert the given byteCount into a string like: 9.9bytes/KB/MB/GB
            """
            for (cutoff, label) in [(1024*1024*1024, "GB"), (1024*1024, "MB"), (1024, "KB")]:
                if byteCount >= cutoff:
                    return "%.1f %s" % (byteCount * 1.0 / cutoff, label)

            if byteCount == 1:
                return "1 byte"
            else:
                return "%d bytes" % byteCount

        self.myOlv.SetColumns([
            ColumnDefn("Title", "left", 120, "title", imageGetter=musicImage),
            ColumnDefn("Artist", "left", 120, "artist", imageGetter=artistImageGetter),
            ColumnDefn("Size", "center", 100, "sizeInBytes", stringConverter=sizeToNiceString),
            ColumnDefn("Last Played", "left", 100, "lastPlayed", stringConverter="%d-%m-%Y"),
            ColumnDefn("Rating", "center", 100, "rating")
        ])
        self.myOlv.SetObjects(self.songs)
예제 #2
0
class TruckListView(wx.Panel):
    """
    This will the first component in our app, displaying the truck inventory and a form to add new ones
    """
    def __init__(self, parent):

        wx.Panel.__init__(self, parent=parent)
        self.dataOlv = Olv(self, wx.ID_ANY, style=wx.LC_REPORT)

        done = wx.Bitmap("data/Checkmark.png", wx.BITMAP_TYPE_ANY)
        progress = wx.Bitmap("data/Progress.png", wx.BITMAP_TYPE_ANY)
        self.done = self.dataOlv.AddImages(wx.Icon(done))
        self.progress = self.dataOlv.AddImages(wx.Icon(progress))

        self.dataOlv.SetColumns([
            ColumnDefn("Buyer",
                       "left",
                       180,
                       "current_buyer",
                       imageGetter=self.image_getter),
            ColumnDefn("VIN", "right", 180, "vin_number"),
            ColumnDefn("Year", "right", 70, "year"),
            ColumnDefn("Make", "right", 70, "make"),
            ColumnDefn("Description", "right", 140, "description"),
            ColumnDefn("Previous Owner", "right", 140, "prev_owner"),
            ColumnDefn("Purchase Cost",
                       "right",
                       140,
                       "purchase_cost",
                       stringConverter=numbers_with_commas)
        ])

        self.dataOlv.rowFormatter = truck_row_formatter

        self.dataOlv.cellEditMode = Olv.CELLEDIT_SINGLECLICK

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(self.dataOlv, 1, wx.ALL | wx.EXPAND, 5)

        self.SetSizer(sizer)

    def set_trucks(self, truck_list):
        self.dataOlv.SetObjects(truck_list)

    def add_truck(self, truck):
        self.dataOlv.AddObject(truck)

    def get_selected(self):
        return self.dataOlv.GetSelectedObject()

    def image_getter(self, truck):
        if truck.status == Truck.COMPLETED:
            return self.done
        elif truck.status == Truck.RENTED or truck.status == Truck.FINANCED:
            return self.progress
예제 #3
0
class DataCoefPanel(wx.Frame):
    def __init__(self, parent):
        pos = wx.DefaultPosition
        size = (377, 282)
        if _platform == 'darwin':
            style = wx.DEFAULT_FRAME_STYLE
        else:
            style = (wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX
                     | wx.CLIP_CHILDREN | wx.FRAME_FLOAT_ON_PARENT)
        wx.Frame.__init__(self,
                          wx.GetApp().TopWindow, wx.ID_ANY,
                          p4R.Application_name + " - Strain and DW Values",
                          pos, size, style)
        self.Bind(wx.EVT_CLOSE, self.on_close)
        self.SetIcon(prog_icon.GetIcon())

        pnl = wx.Panel(self)

        def handleCellEditStarting(evt):
            currentCol = self.GetOLVColClicked(evt)
            if currentCol == 0:
                evt.Veto()

        def handleCellEditFinishing(evt):
            currentline = evt.rowIndex
            currentCol = self.GetOLVColClicked(evt)
            val = evt.cellValue
            self.update_param_dict(currentline, currentCol, val)

        self.list = ObjectListView(pnl,
                                   sortable=False,
                                   style=wx.LC_REPORT | wx.SUNKEN_BORDER,
                                   size=(450, 500))
        self.list.cellEditMode = ObjectListView.CELLEDIT_SINGLECLICK
        self.list.handleStandardKeys = False
        self.list.SetEmptyListMsg("This database has no rows")
        self.list.SetEmptyListMsgFont(
            wx.FFont(24, wx.DEFAULT, faceName="Tekton"))

        if _platform == "linux" or _platform == "linux2":
            self.width_name = 120
        else:
            self.width_name = 80
        self.width = 70
        self.widthCheck = 25
        self.col2checkstatus = {1: 0, 2: 0}

        self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, self.list)
        self.Bind(wx.EVT_LIST_COL_CLICK, self.OnItemSelected, self.list)
        self.list.Bind(EVT_CELL_EDIT_STARTING, handleCellEditStarting)
        self.list.Bind(EVT_CELL_EDIT_FINISHING, handleCellEditFinishing)

        mastersizer = wx.BoxSizer(wx.HORIZONTAL)
        mastersizer.Add(self.list, 0, wx.ALL | wx.EXPAND, 5)

        pub.subscribe(self.on_fill_list, pubsub_Fill_List_coef)
        pub.subscribe(self.on_open_window, pubsub_Open_data_coef_Window)

        #        self.Bind(wx.EVT_SIZE, self.OnSize)
        pnl.SetSizer(mastersizer)
        pnl.Layout()
        pnl.Fit()
        self.InitializeList()

    def on_open_window(self):
        self.CenterOnParent()

    def on_close(self, event):
        pub.sendMessage(pubsub_Hide_Show_data_coef, test=1)

    def InitializeList(self):
        temp = []
        ic_ = prog_icon_curve.GetBitmap()
        ImageIndex = self.list.AddImages(ic_)
        self.list.AddNamedImages("name", ic_)

        temp.append(
            ColumnDefn(headercolumnname[0],
                       "center",
                       self.width_name,
                       valueGetter=headercolumnname[0],
                       imageGetter=ImageIndex,
                       maximumWidth=self.width_name))
        temp.append(
            ColumnDefn(headercolumnname[1],
                       "center",
                       self.width,
                       valueGetter="sp",
                       maximumWidth=self.width,
                       checkStateGetter="state1"))
        temp.append(
            ColumnDefn(headercolumnname[3],
                       "center",
                       self.width,
                       valueGetter="dwp",
                       maximumWidth=self.width,
                       checkStateGetter="state2"))
        self.list.SetColumns(temp)

    def on_fill_list(self):
        a = P4Rm()
        self.Freeze()
        list_temp = []
        roundval = 3
        if a.AllDataDict['model'] == 2:
            for i in range(7):
                name = asym_pv[i]
                val_sp = str(round(a.ParamDict['sp'][i], roundval))
                val_dwp = str(round(a.ParamDict['dwp'][i], roundval))
                check_sp = a.ParamDict['state_sp'][i]
                check_dwp = a.ParamDict['state_dwp'][i]
                list_temp.append(
                    CoefListData(name, val_sp, check_sp, val_dwp, check_dwp))
        else:
            len_sp = len(a.ParamDict['sp'])
            len_dwp = len(a.ParamDict['dwp'])
            if len_sp > len_dwp:
                num = len_sp
            else:
                num = len_dwp
            for i in range(num):
                if i < len_sp:
                    val_sp = str(round(a.ParamDict['sp'][i], roundval))
                    check_sp = a.ParamDict['state_sp'][i]
                else:
                    val_sp = ""
                    check_sp = True
                if i < len_dwp:
                    val_dwp = str(round(a.ParamDict['dwp'][i], roundval))
                    check_dwp = a.ParamDict['state_dwp'][i]
                else:
                    val_dwp = ""
                    check_dwp = True
                list_temp.append(
                    CoefListData(i + 1, val_sp, check_sp, val_dwp, check_dwp))
        self.list.SetObjects(list_temp)
        self.Thaw()

    def update_param_dict(self, currentline, currentCol, val):
        if currentCol == 1:
            P4Rm.ParamDict['sp'][currentline] = float(val)
        if currentCol == 2:
            P4Rm.ParamDict['dwp'][currentline] = float(val)
        self.read_and_update()

    def read_and_update(self):
        pub.sendMessage(pubsub_update_sp_dwp_eta)
        b = Calcul4Radmax()
        b.on_update()

    def OnItemSelected(self, event):
        if 'phoenix' in wx.PlatformInfo:
            currentline = event.Index
        else:
            currentline = event.m_itemIndex
        currentCol = self.GetOLVColClicked(event)
        if currentline == -1:
            self.Freeze()
            if currentCol == 1 or currentCol == 2:
                if self.col2checkstatus[currentCol] == 0:
                    val = False
                    self.col2checkstatus[currentCol] = 1
                else:
                    val = True
                    self.col2checkstatus[currentCol] = 0
                objects = self.list.GetObjects()
                if currentCol == 1:
                    for obj in objects:
                        obj.state1 = val
                elif currentCol == 2:
                    for obj in objects:
                        obj.state2 = val
                self.list.SetObjects(objects)
                self.list.RefreshObject(objects)
            self.Thaw()
        if currentCol == 1 or currentCol == 2:
            a = P4Rm()
            objects = self.list.GetObjects()
            len_sp = len(a.ParamDict['sp'])
            len_dwp = len(a.ParamDict['dwp'])
            check_sp = []
            check_dwp = []
            i = 0
            for obj in objects:
                if i < len_sp:
                    check_sp.append(obj.state1)
                if i < len_dwp:
                    check_dwp.append(obj.state2)
                i += 1
            P4Rm.ParamDict['state_sp'] = check_sp
            P4Rm.ParamDict['state_dwp'] = check_dwp

    def GetOLVColClicked(self, event):
        """
        [email protected]  2011-01 Jan-13
        For use with a 3rd party module named ObjectListView
        used with wxPython.
        """

        spt = wx.GetMousePosition()
        fpt = self.list.ScreenToClient(spt)
        x, y = fpt
        last_col = 0
        for col in range(self.list.GetColumnCount()):
            col_width = self.list.GetColumnWidth(col)
            left_pxl_col = last_col
            right_pxl_col = last_col + col_width - 1

            if left_pxl_col <= x <= right_pxl_col:
                col_selected = col
                break
            col_selected = None
            last_col = last_col + col_width
        return col_selected

    def OnSize(self, event):
        sizet = event.GetSize()
        print("%s, %s" % (sizet.width, sizet.height))
        event.Skip()
예제 #4
0
class TruckDetailView(wx.Panel):
    """
    This will be second component where a selected truck's details are displayed along with buttons
    to sell/rent the truck and to make any other edits.
    """
    def __init__(self, parent):
        wx.Panel.__init__(self, parent=parent)

        self.selected_truck = None

        selected_truck_buyer_label = wx.StaticText(self, wx.ID_ANY, "Buyer")
        self.selected_truck_buyer = wx.TextCtrl(self,
                                                wx.ID_ANY,
                                                "",
                                                style=wx.TE_READONLY)
        selected_truck_vin_label = wx.StaticText(self, wx.ID_ANY, "VIN")
        self.selected_truck_vin = wx.TextCtrl(self,
                                              wx.ID_ANY,
                                              "",
                                              style=wx.TE_READONLY)
        selected_truck_description_label = wx.StaticText(
            self, wx.ID_ANY, "Description")
        self.selected_truck_description = wx.TextCtrl(self,
                                                      wx.ID_ANY,
                                                      "",
                                                      style=wx.TE_READONLY)

        selected_truck_sale_price_label = wx.StaticText(
            self, wx.ID_ANY, "Sale Price")
        self.selected_truck_sale_price = wx.TextCtrl(self,
                                                     wx.ID_ANY,
                                                     "",
                                                     style=wx.TE_READONLY)
        selected_truck_tax_label = wx.StaticText(self, wx.ID_ANY,
                                                 "Total Taxes")
        self.selected_truck_tax = wx.TextCtrl(self,
                                              wx.ID_ANY,
                                              "",
                                              style=wx.TE_READONLY)
        selected_truck_interest_label = wx.StaticText(self, wx.ID_ANY,
                                                      "Interest")
        self.selected_truck_interest = wx.TextCtrl(self,
                                                   wx.ID_ANY,
                                                   "",
                                                   style=wx.TE_READONLY)
        selected_truck_total_price_label = wx.StaticText(
            self, wx.ID_ANY, "Total Price")
        self.selected_truck_total_price = wx.TextCtrl(self,
                                                      wx.ID_ANY,
                                                      "",
                                                      style=wx.TE_READONLY)

        selected_truck_down_payment_label = wx.StaticText(
            self, wx.ID_ANY, "Down Payment")
        self.selected_truck_down_payment = wx.TextCtrl(self,
                                                       wx.ID_ANY,
                                                       "",
                                                       style=wx.TE_READONLY)
        selected_truck_amount_remaining_label = wx.StaticText(
            self, wx.ID_ANY, "Amount Remaining")
        self.selected_truck_amount_remaining = wx.TextCtrl(
            self, wx.ID_ANY, "", style=wx.TE_READONLY)
        selected_truck_payments_label = wx.StaticText(self, wx.ID_ANY,
                                                      "Payments made")
        self.selected_truck_payments = wx.TextCtrl(self,
                                                   wx.ID_ANY,
                                                   "",
                                                   style=wx.TE_READONLY)
        selected_truck_next_payment_label = wx.StaticText(
            self, wx.ID_ANY, "Next Payment")
        self.selected_truck_next_payment = wx.TextCtrl(self,
                                                       wx.ID_ANY,
                                                       "",
                                                       style=wx.TE_READONLY)

        new_truck_btn = wx.Button(self, wx.ID_ANY, 'New Truck')
        rent_truck_btn = wx.Button(self, wx.ID_ANY, 'Rent Truck')
        finance_truck_btn = wx.Button(self, wx.ID_ANY, 'Finance Truck')
        new_truck_btn.SetBackgroundColour(wx.Colour(153, 255, 220))
        rent_truck_btn.SetBackgroundColour(wx.Colour(153, 255, 220))
        finance_truck_btn.SetBackgroundColour(wx.Colour(153, 255, 220))

        print_payments_btn = wx.Button(self, wx.ID_ANY, 'Print Payments')
        edit_buyer_btn = wx.Button(self, wx.ID_ANY, 'Edit Buyer')
        choose_buyer_btn = wx.Button(self, wx.ID_ANY, 'Choose Buyer')
        buyback_btn = wx.Button(self, wx.ID_ANY, 'Buyback')
        print_payments_btn.SetBackgroundColour(wx.Colour(180, 255, 153))
        edit_buyer_btn.SetBackgroundColour(wx.Colour(180, 255, 153))
        choose_buyer_btn.SetBackgroundColour(wx.Colour(180, 255, 153))
        buyback_btn.SetBackgroundColour(wx.Colour(180, 255, 153))

        delete_buyer_btn = wx.Button(self, wx.ID_ANY, 'Delete Buyer')
        delete_truck_btn = wx.Button(self, wx.ID_ANY, 'Delete Truck')
        delete_buyer_btn.SetBackgroundColour(wx.Colour(255, 153, 153))
        delete_truck_btn.SetBackgroundColour(wx.Colour(255, 153, 153))

        selected_truck_sizer = wx.BoxSizer(wx.VERTICAL)
        selected_truck_text_sizer_one = wx.BoxSizer(wx.HORIZONTAL)
        selected_truck_text_sizer_two = wx.BoxSizer(wx.HORIZONTAL)
        selected_truck_text_sizer_three = wx.BoxSizer(wx.HORIZONTAL)
        selected_truck_btn_sizer = wx.BoxSizer(wx.HORIZONTAL)

        selected_truck_text_sizer_one.Add(selected_truck_buyer_label, 0,
                                          wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_one.Add(self.selected_truck_buyer, 2,
                                          wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_one.Add(selected_truck_vin_label, 0,
                                          wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_one.Add(self.selected_truck_vin, 1,
                                          wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_one.Add(selected_truck_description_label, 0,
                                          wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_one.Add(self.selected_truck_description, 4,
                                          wx.ALL | wx.EXPAND, 4)

        selected_truck_text_sizer_two.Add(selected_truck_sale_price_label, 0,
                                          wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_two.Add(self.selected_truck_sale_price, 2,
                                          wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_two.Add(selected_truck_tax_label, 0,
                                          wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_two.Add(self.selected_truck_tax, 2,
                                          wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_two.Add(selected_truck_interest_label, 0,
                                          wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_two.Add(self.selected_truck_interest, 2,
                                          wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_two.Add(selected_truck_total_price_label, 0,
                                          wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_two.Add(self.selected_truck_total_price, 1,
                                          wx.ALL | wx.EXPAND, 4)

        selected_truck_text_sizer_three.Add(selected_truck_down_payment_label,
                                            0, wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_three.Add(self.selected_truck_down_payment,
                                            1, wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_three.Add(
            selected_truck_amount_remaining_label, 0, wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_three.Add(
            self.selected_truck_amount_remaining, 1, wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_three.Add(selected_truck_payments_label, 0,
                                            wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_three.Add(self.selected_truck_payments, 1,
                                            wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_three.Add(selected_truck_next_payment_label,
                                            0, wx.ALL | wx.EXPAND, 4)
        selected_truck_text_sizer_three.Add(self.selected_truck_next_payment,
                                            2, wx.ALL | wx.EXPAND, 4)

        selected_truck_btn_sizer.Add(new_truck_btn, 1, wx.ALL | wx.EXPAND)
        selected_truck_btn_sizer.Add(rent_truck_btn, 1, wx.ALL | wx.EXPAND)
        selected_truck_btn_sizer.Add(finance_truck_btn, 1, wx.ALL | wx.EXPAND)

        selected_truck_btn_sizer.Add(print_payments_btn, 1, wx.ALL | wx.EXPAND)
        selected_truck_btn_sizer.Add(edit_buyer_btn, 1, wx.ALL | wx.EXPAND)
        selected_truck_btn_sizer.Add(choose_buyer_btn, 1, wx.ALL | wx.EXPAND)
        selected_truck_btn_sizer.Add(buyback_btn, 1, wx.ALL | wx.EXPAND)

        selected_truck_btn_sizer.Add(delete_buyer_btn, 1, wx.ALL | wx.EXPAND)
        selected_truck_btn_sizer.Add(delete_truck_btn, 1, wx.ALL | wx.EXPAND)

        selected_truck_sizer.Add(selected_truck_text_sizer_one)
        selected_truck_sizer.Add(selected_truck_text_sizer_two)
        selected_truck_sizer.Add(selected_truck_text_sizer_three)
        selected_truck_sizer.Add(selected_truck_btn_sizer)

        self.paymentsOlv = Olv(self, wx.ID_ANY, style=wx.LC_REPORT)

        late_icon = wx.Bitmap("data/Late.png", wx.BITMAP_TYPE_ANY)
        self.late_icon = self.paymentsOlv.AddImages(wx.Icon(late_icon))

        self.paymentsOlv.SetColumns([
            ColumnDefn("Date",
                       "left",
                       120,
                       "due_date",
                       stringConverter=date_str,
                       imageGetter=self.image_getter),
            ColumnDefn("Description", "left", 200, "description"),
            ColumnDefn("Balance",
                       "left",
                       120,
                       "balance_before",
                       stringConverter=numbers_with_commas),
            ColumnDefn("Payment",
                       "left",
                       120,
                       "payment_amount",
                       stringConverter=numbers_with_commas),
            ColumnDefn("New Balance",
                       "left",
                       120,
                       "new_balance",
                       stringConverter=numbers_with_commas),
            ColumnDefn("Received",
                       "left",
                       90,
                       "is_confirmed",
                       stringConverter=confirm_status,
                       valueSetter=self.confirm_payment),
            ColumnDefn("Payment Date",
                       "left",
                       150,
                       "payment_date",
                       stringConverter=date_str)
        ])

        self.paymentsOlv.cellEditMode = Olv.CELLEDIT_SINGLECLICK
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(selected_truck_sizer, 1, wx.ALL | wx.EXPAND, 5)
        sizer.Add(self.paymentsOlv, 5, wx.ALL | wx.EXPAND, 5)
        self.SetSizer(sizer)

    def set_truck(self, truck):
        self.selected_truck = truck
        self.selected_truck_vin.SetValue(truck.vin_number)
        self.selected_truck_description.SetValue(truck.description)

        if truck.current_buyer is not None:
            self.selected_truck_buyer.SetValue(truck.current_buyer.name)

            self.selected_truck_sale_price.SetValue(
                numbers_with_commas(truck.current_buyer.sale_price))
            self.selected_truck_tax.SetValue(
                numbers_with_commas(truck.current_buyer.tax))
            self.selected_truck_interest.SetValue(
                numbers_with_commas(truck.current_buyer.interest))
            self.selected_truck_total_price.SetValue(
                numbers_with_commas(truck.current_buyer.get_total_price()))

            self.selected_truck_down_payment.SetValue(
                numbers_with_commas(truck.current_buyer.down_payment))
            self.selected_truck_amount_remaining.SetValue(
                numbers_with_commas(truck.current_buyer.amount_remaining))
            self.selected_truck_payments.SetValue(
                str(truck.current_buyer.get_payments_made()))
            self.selected_truck_next_payment.SetValue(
                str(date_str(truck.current_buyer.next_payment_date)))
            self.paymentsOlv.SetObjects(truck.current_buyer.payment_list)
        if truck.current_buyer is None:
            self.paymentsOlv.SetObjects([])

    def clear_truck(self):
        self.selected_truck = None
        self.selected_truck_vin.Clear()
        self.selected_truck_description.Clear()

        self.selected_truck_buyer.Clear()

        self.selected_truck_sale_price.Clear()
        self.selected_truck_tax.Clear()
        self.selected_truck_interest.Clear()
        self.selected_truck_total_price.Clear()

        self.selected_truck_down_payment.Clear()
        self.selected_truck_amount_remaining.Clear()
        self.selected_truck_payments.Clear()
        self.selected_truck_next_payment.Clear()

    def confirm_payment(self, payment, value):

        payment.is_confirmed = value
        if payment.is_confirmed:
            payment.payment_date = date.today()
        buyer = self.selected_truck.current_buyer
        if buyer.sale_type == Truck.RENTED:
            if value is True and payment.due_date == buyer.next_payment_date:
                buyer.generate_payment_rent()
        elif buyer.sale_type == Truck.FINANCED:
            pass
        buyer.refresh_values()

    def image_getter(self, payment):
        if payment.is_late():
            return self.late_icon
예제 #5
0
class MyFrame(wx.Frame):
    def __init__(self, *args, **kwds):
        wx.Frame.__init__(self, *args, **kwds)
        self.Init()

    def Init(self):
        self.InitModel()
        self.InitWidgets()
        self.InitObjectListView()

    def InitModel(self):
        self.listOfDictionaries = [
            {
                "title": "Shiver",
                "artist": "Natalie Imbruglia",
                "album": "Counting Down the Days"
            },
            {
                "title": "Who's Gonna Ride Your Wild Horses",
                "artist": "U2",
                "album": "Achtung Baby"
            },
            {
                "title": "So Cruel",
                "artist": "U2",
                "album": "Achtung Baby"
            },
            {
                "title": "The Fly",
                "artist": "U2",
                "album": "Achtung Baby"
            },
            {
                "title": "Fight For All The Wrong Reason",
                "artist": "Nickelback",
                "album": "All The Right Reasons"
            },
            {
                "title": "Photograph",
                "artist": "Nickelback",
                "album": "All The Right Reasons"
            },
            {
                "title": "Animals",
                "artist": "Nickelback",
                "album": "All The Right Reasons"
            },
            {
                "title": "Savin' Me",
                "artist": "Nickelback",
                "album": "All The Right Reasons"
            },
            {
                "title": "Far Away",
                "artist": "Nickelback",
                "album": "All The Right Reasons"
            },
            {
                "title": "Next Contestant",
                "artist": "Nickelback",
                "album": "All The Right Reasons"
            },
            {
                "title": "My Girl",
                "artist": "Hoodoo Gurus",
                "album": "Ampology"
            },
            {
                "title": "Be My Guru",
                "artist": "Hoodoo Gurus",
                "album": "Ampology"
            },
            {
                "title": "I Want You Back",
                "artist": "Hoodoo Gurus",
                "album": "Ampology"
            },
            {
                "title": "Dare you to move",
                "artist": "Switchfoot",
                "album": "The Beautiful Letdown"
            },
            {
                "title": "Redemption",
                "artist": "Switchfoot",
                "album": "The Beautiful Letdown"
            },
            {
                "title": "The beautiful letdown",
                "artist": "Switchfoot",
                "album": "The Beautiful Letdown"
            },
        ]

    def InitWidgets(self):
        panel = wx.Panel(self, -1)
        sizer_1 = wx.BoxSizer(wx.VERTICAL)
        sizer_1.Add(panel, 1, wx.ALL | wx.EXPAND)
        self.SetSizer(sizer_1)

        self.myOlv = ObjectListView(panel,
                                    -1,
                                    style=wx.LC_REPORT | wx.SUNKEN_BORDER)
        sizer_2 = wx.BoxSizer(wx.VERTICAL)
        sizer_2.Add(self.myOlv, 1, wx.ALL | wx.EXPAND, 4)
        panel.SetSizer(sizer_2)

        self.Layout()

    def InitObjectListView(self):
        groupImage = self.myOlv.AddImages(ExampleImages.getGroup16Bitmap(),
                                          ExampleImages.getGroup32Bitmap())
        userImage = self.myOlv.AddImages(ExampleImages.getUser16Bitmap(),
                                         ExampleImages.getUser32Bitmap())
        musicImage = self.myOlv.AddImages(ExampleImages.getMusic16Bitmap(),
                                          ExampleImages.getMusic32Bitmap())

        soloArtists = [
            "Nelly Furtado", "Missy Higgins", "Moby", "Natalie Imbruglia"
        ]

        def artistImageGetter(track):
            if track["artist"] in soloArtists:
                return userImage
            else:
                return groupImage

        self.myOlv.SetColumns([
            ColumnDefn("Title", "left", -1, "title", imageGetter=musicImage),
            ColumnDefn("Artist",
                       "left",
                       -1,
                       "artist",
                       imageGetter=artistImageGetter),
            ColumnDefn("Album", "center", -1, "album")
        ])
        self.myOlv.SetObjects(self.listOfDictionaries)