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()))
class FieldsPickerDialog(wx.Dialog):
    """
    Present to user all fields available from the input file(s) selected in previous step that may
    be selected for hashing. Allow user to select desired fields/columns.
    """
    def __init__(self, parent, fieldsavailable):
        wx.Dialog.__init__(self, parent)
        self.fields2hash = []
        MainFrame.fields2hash = []
        choices = fieldsavailable.replace('\n', ',')
        choices = choices.replace('"', '')
        choices = choices.rstrip(',')
        choices = choices.split(',')
        choices = set(choices)
        choices = list(choices)
        sizer = wx.BoxSizer(wx.VERTICAL)
        self.ip = ItemsPicker(self, -1, choices, 'Available Columns:',
                              'Selected Columns:',
                              IP_SORT_CHOICES | IP_SORT_SELECTED)
        self.ip.Bind(EVT_IP_SELECTION_CHANGED, self.onselectionchange)
        self.ip.SetMinSize((-1, 150))
        sizer.Add(self.ip, 0, wx.ALL, 10)
        b = wx.Button(self,
                      -1,
                      "Click after finishing column selection(s)",
                      style=wx.NO_BORDER)
        b.SetToolTip(
            'The information in the lists above should represent column names. If not, then your input data is not '
            'in the correct format. The selected sheet should contain the column names in the first row.'
        )
        b.Bind(wx.EVT_BUTTON, self.onfinished)
        sizer.Add(b, 0, wx.ALL | wx.CENTER, 5)
        self.SetSizer(sizer)
        self.Fit()

    def onfinished(self, e):
        """ Once user clicks 'finished' button create list of fields to be hashed.

        :param e: Event
        :return: Fields to be hashed: fields2hash

        """
        if len(self.fields2hash) != 0:
            MainFrame.fields2hash = self.fields2hash.split(',')
        self.Close()

    def onselectionchange(self, e):
        """ Logic for identifying and selecting fields to be hashed.

        :param e: Event
        :return: Internal list of fields selected.
        """
        self.items = ",".join(e.GetItems())
        self.fields2hash = self.items
Beispiel #3
0
    def __init__(self, parent, results, views_names):
        wx.Panel.__init__(self, parent, -1, size=(300, 200))
        self.parent = parent
        self.error_name = True
        self.error_result = True
        self.views_names = views_names
        # self.I = I

        self.bmp_alert = wx.StaticBitmap(self)
        self.bmp_alert.SetBitmap(execute_bit.GetBitmap())
        font_description = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT)
        font_description.SetPointSize(9)
        self.label_alert = wx.StaticText(self)
        self.label_alert.SetFont(font_description)
        self.label_alert.SetLabel(L('VIEW_ALERT_NAME'))

        label_name = wx.StaticText(self, label=L('VIEW_NAME'))
        self.name = wx.TextCtrl(self)

        label_results = wx.StaticText(self, label=L('VIEW_ALERT_RESULTS'))
        static_result = wx.StaticLine(self, -1)

        ip = ItemsPicker(self,
                         -1,
                         results,
                         L('VIEW_OPTION_RESULTS'),
                         L('VIEW_RESULTS_SELECTED'),
                         ipStyle=IP_SORT_CHOICES | IP_SORT_SELECTED
                         | IP_REMOVE_FROM_CHOICES)
        ip._source.SetMinSize((50, 100))
        parent.ip = ip

        # Create the sizers
        topSizer = wx.BoxSizer(wx.VERTICAL)
        alert_sizer = wx.BoxSizer(wx.HORIZONTAL)
        alert_sizer.Add(self.bmp_alert, flag=wx.ALIGN_LEFT)
        alert_sizer.Add(self.label_alert, flag=wx.ALIGN_LEFT)

        name_sizer = wx.BoxSizer(wx.HORIZONTAL)
        name_sizer.Add(label_name, 0)
        name_sizer.Add(self.name, 1, wx.EXPAND)
        result_sizer = wx.BoxSizer(wx.VERTICAL)
        result_sizer.Add(label_results, 0, wx.ALIGN_CENTER)
        result_sizer.Add(static_result, 0, wx.ALIGN_CENTER | wx.EXPAND)
        topSizer.Add(alert_sizer, 0, wx.EXPAND)
        topSizer.Add(name_sizer, 0, wx.EXPAND)
        topSizer.Add(result_sizer, 0, wx.ALIGN_CENTER | wx.TOP, 15)
        topSizer.Add(ip, 1, wx.EXPAND)
        self.SetSizer(topSizer)

        self.name.SetFocus()
        self.name.Bind(wx.EVT_KEY_UP, self.on_key_up)
        ip.Bind(EVT_IP_SELECTION_CHANGED, self.on_selected)
        self._disable()
Beispiel #4
0
class ItemsPickerFilterDialog(wx.Dialog):
    def __init__(self, parent, names):
        wx.Dialog.__init__(self, parent, -1, L('BUTTON_ORDER_AND_FILTER'))
        self.parent = parent
        self.names = names

        sizer = wx.BoxSizer(wx.VERTICAL)

        self.ip = ItemsPicker(self,
                              -1,
                              names,
                              L('PICKER_EXISTING'),
                              L('PICKER_FILTERED'),
                              ipStyle=0)
        self.ip.Bind(EVT_IP_SELECTION_CHANGED, self.on_selection_change)
        self.ip._source.SetMinSize((-1, 150))
        sizer.Add(self.ip, 1, wx.ALL, 10)

        sizer_button = wx.BoxSizer(wx.HORIZONTAL)
        cancel = wx.Button(self, label=L('NEW_PROJECT_CANCEL'))
        cancel.Bind(wx.EVT_BUTTON, self.on_cancel)

        self.create = wx.Button(self, label=L('NOW_SHOW'))
        self.create.Bind(wx.EVT_BUTTON, self.on_ok)
        self.create.Disable()

        sizer_button.Add(cancel)
        sizer_button.Add(self.create)

        sizer.Add(sizer_button, 0, wx.ALL, 10)

        self.SetSizer(sizer)
        self.itemCount = 3
        self.Fit()
        self.ShowModal()

    def on_selection_change(self, e):

        if len(e.GetItems()) < 2:
            self.create.Disable()
            return
        self.item_ordered = e.GetItems()
        self.create.Enable()

    def on_ok(self, e):
        self.parent.pre_kdraw_order(self.item_ordered)
        self.Close()

    def on_cancel(self, e):
        self.Close()
Beispiel #5
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 #7
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
Beispiel #8
0
class BlockSorted(wx.Dialog):
    def __init__(self, parent, _names):
        wx.Dialog.__init__(self,
                           parent,
                           size=(400, 300),
                           title='Ordenar Bloques')
        self.parent = parent
        self.names = _names
        self.init_ui()

        # ------ Definiciones iniciales -----

        self.Centre(wx.BOTH)
        self.CenterOnScreen()
        self.ShowModal()

    def init_ui(self):
        sizer = wx.BoxSizer(wx.VERTICAL)

        # titulo
        title_sizer = wx.BoxSizer(wx.VERTICAL)
        title = wx.StaticText(self, label='Ordenando Bloques')
        title_line = wx.StaticLine(self)
        title_sizer.Add(title, 0, wx.CENTER | wx.TOP, 10)
        title_sizer.Add(title_line, 0, wx.EXPAND | wx.RIGHT | wx.LEFT, 5)

        self.i_picker = ItemsPicker(self, -1, self.names, 'Orden actual',
                                    'Nuevo Orden')

        # buttons confirmar, cancelar
        sizer_button = wx.BoxSizer(wx.HORIZONTAL)
        sizer_cancel = wx.BoxSizer()
        self.cancel = wx.Button(self, -1, 'Cancelar')
        self.cancel.SetDefault()
        sizer_cancel.Add(self.cancel)
        sizer_apply = wx.BoxSizer()
        self.apply = wx.Button(self, -1, 'Aplicar')
        sizer_apply.Add(self.apply, 0, wx.ALIGN_RIGHT)
        self.apply.Disable()

        sizer_button.Add(sizer_cancel, 0, wx.ALL, 5)
        sizer_button.Add(sizer_apply, 0, wx.ALL, 5)

        sizer.Add(title_sizer, 0, wx.EXPAND | wx.BOTTOM, 10)
        sizer.Add(self.i_picker, 1, wx.EXPAND | wx.ALL, 5)
        sizer.Add(sizer_button, 0, wx.EXPAND | wx.LEFT, 100)

        self.i_picker.Bind(EVT_IP_SELECTION_CHANGED, self.check_up)
        self.Bind(wx.EVT_BUTTON, self.on_button_apply, self.apply)
        self.Bind(wx.EVT_BUTTON, self.on_button_cancel, self.cancel)
        self.Bind(wx.EVT_CHAR, self.on_key_escape)

        self.SetSizer(sizer)

    def check_up(self, event):

        if len(self.names) != len(self.i_picker.GetSelections()):
            self.apply.Disable()
            self.cancel.SetDefault()
            return None

        _names = [str(i) for i in self.i_picker.GetSelections()]
        if self.names == _names:
            self.apply.Disable()
            self.cancel.SetDefault()
            return None

        self.apply.Enable()
        self.apply.SetDefault()

    def on_button_cancel(self, event):
        self.Close()

    def on_button_apply(self, event):
        order = [str(i) for i in self.i_picker.GetSelections()]
        new_order = []
        for name in self.names:
            new_order.append(order.index(name))
        self.parent.sort_blocks(new_order)
        self.Close()

    def on_key_escape(self, event):
        if event.GetKeyCode() == wx.WXK_ESCAPE:
            self.Close()