Beispiel #1
0
class ItemsPickerDialog(wx.Dialog):
    def __init__(self,parent, style, log):
        wx.Dialog.__init__(self,parent)
        self.log = log
        sizer = wx.BoxSizer(wx.VERTICAL)
        b = wx.Button(self, -1, "Add Item")
        b.Bind(wx.EVT_BUTTON, self.OnAdd)
        sizer.Add(b, 0, wx.ALL, 5)
        self.ip = ItemsPicker(self,-1,
                          ['ThisIsItem3','ThisIsItem2','ThisIsItem1'],
                          'Stuff:', 'Selected stuff:',ipStyle = style)
        self.ip.Bind(EVT_IP_SELECTION_CHANGED, self.OnSelectionChange)
        self.ip._source.SetMinSize((-1,150))
        self.ip.bAdd.SetBitmap(_bp_btn2.GetBitmap(), dir=wx.RIGHT)
        self.ip.bAdd.SetLabel('Add')
        self.ip.bRemove.SetBitmap(_bp_btn1.GetBitmap(), dir=wx.LEFT)
        self.ip.bRemove.SetLabel('Remove')
        sizer.Add(self.ip, 0, wx.ALL, 10)
        self.SetSizer(sizer)
        self.itemCount = 3
        self.Fit()

    def OnAdd(self,e):
        items = self.ip.GetItems()
        self.itemCount += 1
        newItem = "item%d" % self.itemCount
        self.ip.SetItems(items + [newItem])

    def OnSelectionChange(self, e):
        self.log.write("EVT_IP_SELECTION_CHANGED %s\n" % \
                        ",".join(e.GetItems()))
Beispiel #2
0
class ItemsPickerDialog(wx.Dialog):
    def __init__(self, parent: wx.Window, available: List[str],
                 chosen: List[str], ipStyle):
        super().__init__(parent=parent,
                         title="Project membership",
                         style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)

        sizer = wx.BoxSizer(wx.VERTICAL)
        self.ip = ItemsPicker(self,
                              choices=available,
                              label='Available projects',
                              selectedLabel='Member of project:',
                              ipStyle=ipStyle)
        self.ip.SetSelections(chosen)
        #self.ip.Bind(EVT_IP_SELECTION_CHANGED, self.OnSelectionChange)
        self.ip._source.SetMinSize((-1, 150))

        sizer.Add(self.ip, 0, wx.ALL, 10)

        bsizer = self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL)
        sizer.Add(bsizer, flag=wx.EXPAND | wx.ALL, border=5)

        self.SetSizerAndFit(sizer)

    def GetSelections(self):
        return self.ip.GetSelections()

    def GetItems(self):
        return self.ip.GetItems()
Beispiel #3
0
class ItemsPickerDialog(wx.Dialog):
    def __init__(self,parent, style, log):
        wx.Dialog.__init__(self,parent)
        self.log = log
        sizer = wx.BoxSizer(wx.VERTICAL)
        b = wx.Button(self, -1, "Add Item")
        b.Bind(wx.EVT_BUTTON, self.OnAdd)
        sizer.Add(b, 0, wx.ALL, 5)
        self.ip = ItemsPicker(self,-1,
                          ['ThisIsItem3','ThisIsItem2','ThisIsItem1'],
                          'Stuff:', 'Selected stuff:',ipStyle = style)
        self.ip.Bind(EVT_IP_SELECTION_CHANGED, self.OnSelectionChange)
        self.ip._source.SetMinSize((-1,150))

        # Customize the buttons for this example.
        if 'wxMac' not in wx.PlatformInfo:
            # NOTE: wx.Button on OSX does not modify the button size when adding a
            # bitmap after the fact like this, and these bitmaps are a little too
            # large and look funny in OSX, so we won't do this customization there.
            self.ip.bAdd.SetBitmap(_bp_btn2.GetBitmap(), dir=wx.RIGHT)
            self.ip.bAdd.SetLabel('Add')
            self.ip.bRemove.SetBitmap(_bp_btn1.GetBitmap(), dir=wx.LEFT)
            self.ip.bRemove.SetLabel('Remove')

        sizer.Add(self.ip, 0, wx.ALL, 10)
        self.SetSizer(sizer)
        self.itemCount = 3
        self.Fit()


    def OnAdd(self,e):
        items = self.ip.GetItems()
        self.itemCount += 1
        newItem = "item%d" % self.itemCount
        self.ip.SetItems(items + [newItem])


    def OnSelectionChange(self, e):
        self.log.write("EVT_IP_SELECTION_CHANGED %s\n" % \
                        ",".join(e.GetItems()))
class ItemsPickerDialog(wx.Dialog):
    def __init__(self, parent, style, log):
        wx.Dialog.__init__(self, parent, title='Pick some items...',
                           style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
        self.log = log
        sizer = wx.BoxSizer(wx.VERTICAL)
        b = wx.Button(self, -1, "Add Item")
        b.Bind(wx.EVT_BUTTON, self.OnAdd)
        sizer.Add(b, 0, wx.ALL, 5)
        self.ip = ItemsPicker(self, -1, choices=['ThisIsItem3', 'ThisIsItem6',
                                                 'ThisIsItem2', 'ThisIsItem5',
                                                 'ThisIsItem1', 'ThisIsItem4'],
                              label='Stuff:', selectedLabel='Selected stuff:',
                              ipStyle=style)
        self.ip.Bind(EVT_IP_SELECTION_CHANGED, self.OnSelectionChange)
        self.ip._source.SetMinSize((-1, 150))
        bmp2 = wx.Bitmap(gBmpDir + os.sep + "bp_btn2.png", wx.BITMAP_TYPE_PNG)
        self.ip.bAdd.SetBitmap(bmp2, dir=wx.RIGHT)
        self.ip.bAdd.SetLabel('Add')
        bmp1 = wx.Bitmap(gBmpDir + os.sep + "bp_btn1.png", wx.BITMAP_TYPE_PNG)
        self.ip.bRemove.SetBitmap(bmp1, dir=wx.LEFT)
        self.ip.bRemove.SetLabel('Remove')
        sizer.Add(self.ip, 1, wx.EXPAND | wx.ALL, 10)
        self.SetSizer(sizer)
        self.itemCount = 3
        self.Fit()
        self.SetMinSize(self.GetSize())

    def OnAdd(self, event):
        items = self.ip.GetItems()
        self.itemCount += 1
        newItem = "item%d" % self.itemCount
        self.ip.SetItems(items + [newItem])

    def OnSelectionChange(self, event):
        self.log.WriteText("EVT_IP_SELECTION_CHANGED %s\n" % \
                           ",".join(event.GetItems()))
Beispiel #5
0
class BackupRollBackUI(wx.Panel):
    def __init__(self, parent, style=IP_REMOVE_FROM_CHOICES):
        wx.Panel.__init__(self, parent, style=style)
        self.backupList = GL.backup_list
        self.radioList = [u'当前用户最近备份列表', u'载入当前用户备份列表', u'载入全局备份列表']
        self.backupRadio = wx.RadioBox(self, -1, "", (-1, -1), wx.DefaultSize,
                                       self.radioList, 3,
                                       wx.RA_SPECIFY_COLS | wx.NO_BORDER)
        #BtnRollBack = wx.Button(self,label=u"锟斤拷原",size=(80,50),id=GL.Publishing)
        self.BakRollText = ItemsPicker(self,
                                       -1,
                                       self.backupList,
                                       u"备份列表",
                                       u'确认还原文件:',
                                       ipStyle=style)
        self.BakRollText.add_button_label = u'添加=》'
        self.BakRollText.remove_button_label = u'《=移除'
        hsizer = wx.BoxSizer(wx.HORIZONTAL)
        vsizer = wx.BoxSizer(wx.VERTICAL)
        self.BakRollText._source.SetMinSize((-1, 150))

        self.BakRollText._dest.SetMinSize((-1, 150))
        vsizer.Add(self.backupRadio, 0, wx.ALL, 0)
        vsizer.Add(self.BakRollText, 1, wx.ALL | wx.EXPAND, 0)
        hsizer.Add(vsizer, 1, wx.ALL | wx.EXPAND, 10)
        self.SetSizerAndFit(hsizer)
        self.itemCount = 3
        self.Bind(wx.EVT_RADIOBOX, self.OnLoadBackupList, self.backupRadio)
        self.BakRollText.Bind(EVT_IP_SELECTION_CHANGED, self.OnSelectionChange)

    def OnLoadBackupList(self, event):
        if event.GetInt() == 0:
            self.BakRollText._source.SetItems([])
            self.BakRollText._source.SetItems(GL.backup_list)
            #self.BakRollText._dest.SetItems(GL.backup_list)
            #print self.BakRollText._dest.GetItems()
        elif event.GetInt() == 1:
            self.BakRollText._source.SetItems([])
            import codecs

            #data = self.GetUserLogList('f:\\backup\\Glogs\\global_backup.log')
            #print data
            #self.FileContentList = []
            self.FileContentList = self.GetUserLogList(
                GL.global_backup_logfile, isFilter=True)
            #with codecs.open('f:\\backup\\Glogs\\global_backup.log','r',"utf8") as FileObj:
            #    [self.FileContentList.append(line) for line in FileObj]
            #print self.FileContentList

            self.BakRollText._source.SetItems(self.FileContentList)
            #self.BakRollText._source.SetBackgroundColour('#FF0000')
            #print "load log2"
        elif event.GetInt() == 2:
            self.BakRollText._source.SetItems([])
            self.FileContentList = self.GetUserLogList(
                GL.global_backup_logfile, isFilter=False)
            self.BakRollText._source.SetItems(self.FileContentList)
        else:
            self.BakRollText._source.SetItems([])

    def GetUserLogList(self, filelog, isFilter):
        if not os.path.exists(filelog):
            msg = u"读取全局日志文件出错."
            LoadLog.LogMsg(GL.logger_sysLog.error, msg)
            wx.MessageBox(msg, u"错误", style=wx.OK | wx.ICON_ERROR)
            FileContentList = []
            return FileContentList
        FileContentList = []
        with open(filelog, 'r') as f:
            if isFilter is True:
                bad = 0
                import codecs, re
                goodline = re.compile(ur'#+?.*\[%s\].*#$' % GL.SvnUser)
                badline = re.compile(ur'#+?.*\[((?!%s).)*#$' % GL.SvnUser)
                for line in f:
                    line = unicode(line, "utf8")
                    if goodline.search(line) is not None:
                        #print line
                        bad = 1
                        FileContentList.append(line.strip())
                        continue
                    if bad and badline.search(line) is None:
                        #print line
                        FileContentList.append(line.strip())
                        continue
                    else:
                        bad = 0
            else:
                [FileContentList.append(unicode(line, "utf8")) for line in f]
        return FileContentList

    def OnAdd(self, e):
        items = self.BakRollText.GetItems()
        self.itemCount += 1
        newItem = "item%d" % self.itemCount
        self.BakRollText.SetItems(items + [newItem])

    #def OnSelectionChange(self, e):
    # self.log.write("EVT_IP_SELECTION_CHANGED %s\n" % \
    # ",".join(e.GetItems()))
    def OnSelectionChange(self, e):
        #self.log.write("EVT_IP_SELECTION_CHANGED %s\n" % ",".join(e.GetItems()))
        pass