Beispiel #1
0
    def __init__(self, parent, monitor):
        self.method = 'auto'
        self.nPoints = 8
        assert isinstance(monitor, monitors.Monitor)
        self.useBits = monitor.getUseBits()

        wx.Dialog.__init__(self, parent, -1, _translate('Gamma Calibration'),
                           style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
        mainSizer = wx.FlexGridSizer(cols=2, hgap=1, vgap=1)

        # select method of calib (auto, semi-auto, manual)
        # todo: make the input  tablefor manual method
        self.methodChoiceBx = wx.Choice(self, -1, choices=['auto', 'semi'])
        self.methodChoiceBx.SetStringSelection('auto')
        wx.EVT_CHOICE(self, self.methodChoiceBx.GetId(), self.onMethodChange)

        self.ctrlUseBits = wx.CheckBox(self, -1, _translate('Use Bits++'))
        self.ctrlUseBits.SetValue(self.useBits)

        msg = _translate('Number of calibration points:')
        self.labelNPoints = wx.StaticText(self, -1, msg)
        self.ctrlNPoints = intctrl.IntCtrl(self, -1, value=8)

        msg = _translate('Screen number (primary is 1)')
        self.labelScrN = wx.StaticText(self, -1, msg)
        self.ctrlScrN = intctrl.IntCtrl(self, -1, value=1)

        msg = _translate('Patch size (fraction of screen):')
        self.labelStimSize = wx.StaticText(self, -1, msg)
        self.ctrlStimSize = wx.TextCtrl(self, -1, '0.3')

        pad = 5
        mainSizer.Add((0, 0), 1, wx.ALL, pad)
        mainSizer.Add(self.methodChoiceBx, 1, wx.ALL, pad)
        mainSizer.Add(self.labelScrN, 1, wx.ALL, pad)
        mainSizer.Add(self.ctrlScrN, 1, wx.ALL, pad)
        mainSizer.Add(self.labelNPoints, 1, wx.ALL, pad)
        mainSizer.Add(self.ctrlNPoints, 1, wx.ALL, pad)
        mainSizer.Add(self.labelStimSize, 1, wx.ALL, pad)
        mainSizer.Add(self.ctrlStimSize, 1, wx.ALL, pad)
        mainSizer.Add((0, 0), 1, wx.ALL, pad)
        mainSizer.Add(self.ctrlUseBits, 1, wx.ALL, pad)

        btnOK = wx.Button(self, wx.ID_OK, _translate(" OK "))
        btnOK.SetDefault()
        mainSizer.Add(btnOK, 1, wx.TOP | wx.BOTTOM | wx.ALIGN_RIGHT, pad)
        btnCANC = wx.Button(self, wx.ID_CANCEL, _translate(" Cancel "))
        mainSizer.Add(btnCANC, 1,
                      wx.TOP | wx.BOTTOM | wx.RIGHT | wx.ALIGN_RIGHT, pad)
        self.Center()
        # mainSizer.Fit(self)
        self.SetAutoLayout(True)
        self.SetSizerAndFit(mainSizer)
Beispiel #2
0
    def init_UI(self):

        pnl = wx.Panel(self)
        pnl_sizer = wx.BoxSizer(wx.VERTICAL)

        hbox1 = wx.BoxSizer(wx.HORIZONTAL)
        hbox1.Add(wx.StaticText(pnl, label='Port'))
        self.port_input = intctrl.IntCtrl(pnl, min=1, max=2**16, value=8080)
        hbox1.Add(self.port_input)
        pnl_sizer.Add(hbox1)

        self.http_forward_checkbox = wx.CheckBox(pnl, label='HTTP Forward')
        pnl_sizer.Add(self.http_forward_checkbox)

        pnl.SetSizer(pnl_sizer)

        hbox2 = wx.BoxSizer(wx.HORIZONTAL)
        okButton = wx.Button(self, label='Start')
        closeButton = wx.Button(self, label='Cancel')
        hbox2.Add(okButton)
        hbox2.Add(closeButton, flag=wx.LEFT, border=5)

        vbox = wx.BoxSizer(wx.VERTICAL)
        vbox.Add(pnl, proportion=1, flag=wx.ALL | wx.EXPAND, border=5)
        vbox.Add(hbox2, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=10)

        self.SetSizer(vbox)

        okButton.Bind(wx.EVT_BUTTON, self.on_ok)
        closeButton.Bind(wx.EVT_BUTTON, self.OnClose)
Beispiel #3
0
    def add_slider(self, initial_value=0, min_value=0, max_value=10):
        slider1 = wx.Slider(self,
                            value=initial_value,
                            minValue=min_value,
                            maxValue=max_value,
                            style=wx.SL_HORIZONTAL | wx.SL_MIN_MAX_LABELS)
        tc_qZone1 = intctrl.IntCtrl(self,
                                    0,
                                    value=initial_value,
                                    size=wx.Size(20, 20),
                                    style=wx.TE_CENTER | wx.TE_PROCESS_ENTER)
        tc_qZone1.SetMaxLength(2)

        slider1.Bind(
            wx.EVT_SLIDER,
            lambda event: self.slider_update(event, slider1, tc_qZone1))
        tc_qZone1.Bind(
            wx.EVT_TEXT_ENTER, lambda event: self.textctrl_slider_update(
                event, slider1, tc_qZone1))

        slider_sizer = wx.BoxSizer(wx.HORIZONTAL)
        slider_sizer.Add(slider1, 1, wx.ALL | wx.EXPAND, 5)
        slider_sizer.Add(tc_qZone1, 0, wx.ALL, 5)

        self.topSizer.Add(slider_sizer, 0, wx.ALL | wx.EXPAND, 5)

        SLIDERS.append(slider1)
Beispiel #4
0
    def __init__(self, parent):
        togwin.ChildToggableDialog.__init__(self,
                                            "Variable and command watcher",
                                            parent)

        # controls
        self.cmds_sizer_staticbox = wx.StaticBox(self, -1, "Command watches")
        self.refresh_sizer_staticbox = wx.StaticBox(self, -1,
                                                    "Refresh settings")
        self.vars_sizer_staticbox = wx.StaticBox(self, -1, "Variable watches")
        self.list_vars = wx.ListCtrl(self, -1,
            style=wx.LC_REPORT|wx.LC_HRULES|wx.LC_VRULES| \
                  wx.LC_SORT_ASCENDING|wx.SUNKEN_BORDER)
        self.label_filter = wx.StaticText(self, -1, "Filter:")
        self.text_filter = wx.TextCtrl(self, -1, "")
        self.list_cmds = wx.ListCtrl(self, -1,
            style=wx.LC_REPORT|wx.LC_EDIT_LABELS|wx.LC_HRULES|wx.LC_VRULES| \
                  wx.SUNKEN_BORDER)
        self.button_add_cmd = wx.Button(self, -1, "Add command watch")
        self.button_del_cmd = wx.Button(self, -1, "Delete command watch")
        self.check_refresh = wx.CheckBox(self, -1, "Refresh all watches each")
        self.int_refresh = intctrl.IntCtrl(self,
                                           size=(50, -1),
                                           style=wx.TE_RIGHT)
        self.label_milliseconds = wx.StaticText(self, -1, "milliseconds")
        self.button_refresh = wx.Button(self, -1, "&Refresh all watches now")

        # refresh timer
        self.timer_refresh = wx.PyTimer(self.__refresh_values)

        self.__set_properties()
        self.__do_layout()
        self.__bind_events()
Beispiel #5
0
    def __init__(self, parent, mod_list, style):
        scrolledpanel.ScrolledPanel.__init__(self, parent, style=style)
        self.mod_list = mod_list
        self.log_server = servers.get_log_server()
        # module enable controls
        self.check_box_mod_list = []
        self.int_ctrl_mod_list = []
        self.log_group_mod_list = []
        for mod in mod_list:
            check_box = wx.CheckBox(self,
                                    -1,
                                    self.log_server.getdescription(mod),
                                    name=mod)
            colour = get_colour_for_log_with_index(self.mod_list.index(mod))
            check_box.SetForegroundColour(colour)
            self.check_box_mod_list.append(check_box)
            int_ctrl = intctrl.IntCtrl(parent=self,
                                       limited=True,
                                       value=0,
                                       min=0,
                                       max=99,
                                       size=(25, -1),
                                       style=wx.TE_RIGHT,
                                       name=mod)
            self.int_ctrl_mod_list.append(int_ctrl)
            log_group_button = wx.Button(self,
                                         -1,
                                         "Edit...",
                                         style=wx.BU_EXACTFIT,
                                         name=mod)
            self.log_group_mod_list.append(log_group_button)

        self.set_properties()
        self.__do_layout()
        self.__bind_events()
Beispiel #6
0
    def __init__(self, parent, wxId, id):
        base.Widget.__init__(self, intctrl.IntCtrl(parent, wxId,
                                                   limited=False,
                                                   allow_none=True))
        self.widgetId = id

        # Clear the widget by default.
        self.getWxWidget().SetValue(None)

        # The default font looks the best.
        self.getWxWidget().SetFont(wx.NORMAL_FONT)

        # If True, a value-changed notification will cause the field
        # to change.
        self.reactToNotify = True

        # We want focus notifications.
        self.setFocusId(id)

        # Listen for changes.
        intctrl.EVT_INT(parent, wxId, self.onChange)
        
        # Listen to value changes.
        self.addValueChangeListener()
        self.addProfileChangeListener()
Beispiel #7
0
    def __init__(self, *args, **kwds):
        PrefsPanel.__init__(self, *args, **kwds)

        self.staticbox_angle_group = wx.StaticBox(self, -1, "Angle snapping")
        self.staticbox_size_group = wx.StaticBox(self, -1, "Size snapping")
        self.staticbox_grid_group = wx.StaticBox(self, -1, "Grid")
        self.label_grid_1 = wx.StaticText(self, -1, "Minor grid line every")
        self.float_grid_cell_size = floatctrl.FloatCtrl(self,
                                                        size=wx.Size(40, -1),
                                                        style=wx.TE_RIGHT)
        self.label_grid_2 = wx.StaticText(self, -1, "world units")
        self.label_grid_3 = wx.StaticText(self, -1, "Major grid line every")
        self.int_grid_line_grouping = intctrl.IntCtrl(self,
                                                      size=wx.Size(40, -1),
                                                      style=wx.TE_RIGHT)
        self.label_grid_4 = wx.StaticText(self, -1, "minor grid lines")
        self.label_grid_5 = wx.StaticText(self, -1, "Minor grid line color")
        self.color_grid_minor = wx.lib.colourselect.ColourSelect(self, -1)
        self.label_grid_6 = wx.StaticText(self, -1, "Major grid line color")
        self.color_grid_major = wx.lib.colourselect.ColourSelect(self, -1)
        self.label_angle_1 = wx.StaticText(self, -1, "Angle snap")
        self.float_angle = floatctrl.FloatCtrl(self,
                                               size=wx.Size(40, -1),
                                               style=wx.TE_RIGHT)
        self.label_angle_2 = wx.StaticText(self, -1, "degrees")
        self.label_size_1 = wx.StaticText(self, -1, "Size snap")
        self.float_size = floatctrl.FloatCtrl(self,
                                              size=wx.Size(40, -1),
                                              style=wx.TE_RIGHT)
        self.label_size_2 = wx.StaticText(self, -1, "world units")

        self.__set_properties()
        self.__do_layout()
        self.__bind_events()
Beispiel #8
0
    def __init__(self, parent, rate=None, out_dir=None, in_dir=None):
        super(FFmpegConvertDialog, self).__init__(parent=parent, title="pyjam Audio Converter",
                                                  style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)

        self.in_dir = in_dir

        self.game_rate = intctrl.IntCtrl(self)
        game_rate_text = wx.StaticText(self, label="Audio rate")
        if rate is not None:
            self.game_rate.SetValue(rate)

        self.volume = wx.SpinCtrl(self, initial=85)
        volume_text = wx.StaticText(self, label="Volume %")

        self.in_picker = wx.FilePickerCtrl(self, style=wx.FLP_USE_TEXTCTRL)
        in_picker_text = wx.StaticText(self, label="Input file names (manually changing them has no effect)")
        self.in_files = []
        # the dumbest thing i've done all year (i'm overriding the controls of the PickerBase)
        for child in self.in_picker.GetChildren():
            if isinstance(child, wx.Button):
                child.Bind(wx.EVT_BUTTON, self.browse)

        self.out_dir = wx.DirPickerCtrl(self, name="Output directory")
        out_dir_text = wx.StaticText(self, label="Output directory")
        if out_dir is not None:
            self.out_dir.SetPath(out_dir)

        top_sizer = wx.BoxSizer(wx.VERTICAL)
        top_row = wx.BoxSizer(wx.HORIZONTAL)
        rate_sizer = wx.BoxSizer(wx.VERTICAL)
        vol_sizer = wx.BoxSizer(wx.VERTICAL)
        dir_sizer = wx.BoxSizer(wx.VERTICAL)
        button_sizer = self.CreateButtonSizer(wx.OK | wx.CANCEL)

        rate_sizer.Add(game_rate_text, 0, wx.ALL ^ wx.BOTTOM | wx.ALIGN_LEFT, 5)
        rate_sizer.Add(self.game_rate, 0, wx.ALL | wx.ALIGN_LEFT, 5)
        vol_sizer.Add(volume_text, 0, wx.ALL ^ wx.BOTTOM | wx.ALIGN_LEFT, 5)
        vol_sizer.Add(self.volume, 0, wx.ALL | wx.ALIGN_LEFT, 5)
        top_row.Add(rate_sizer)
        top_row.Add(vol_sizer)
        dir_sizer.Add(in_picker_text, 0, wx.ALL ^ wx.LEFT | wx.ALIGN_LEFT, 3)
        dir_sizer.Add(self.in_picker, 0, wx.ALL ^ wx.LEFT ^ wx.TOP | wx.ALIGN_LEFT | wx.EXPAND, 5)
        dir_sizer.Add(out_dir_text, 0, wx.ALL ^ wx.LEFT | wx.ALIGN_LEFT, 3)
        dir_sizer.Add(self.out_dir, 0, wx.ALL ^ wx.LEFT ^ wx.TOP | wx.ALIGN_LEFT | wx.EXPAND, 5)
        top_sizer.Add(top_row)
        top_sizer.Add(dir_sizer, 1, wx.ALL | wx.EXPAND | wx.ALIGN_TOP, 5)
        top_sizer.Add(button_sizer, 0, wx.ALL | wx.ALIGN_CENTER, 5)

        self.Bind(wx.EVT_BUTTON, self.on_ok, id=wx.ID_OK)
        self.Bind(wx.EVT_BUTTON, self.on_cancel, id=wx.ID_CANCEL)

        self.converter = None
        self.progress_dialog = None
        self.num_songs = 0

        self.SetSizer(top_sizer)
        # self.SetSize(400, 250)
        self.Center()
        self.ShowModal()
Beispiel #9
0
class ireLogCtrl(wx.Panel):
	
	def __init__(self, parent, id, title='',
                 style=wx.TE_READONLY | wx.HSCROLL | wx.TE_MULTILINE | wx.TE_RICH):
		wx.Panel.__init__(self, parent, id)

        self.SetBackgroundColour(wx.BLUE)

        Font = wx.Font(10, wx.FONTFAMILY_ROMAN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL)
        self.Text = wx.StaticText(self, -1, title, style=wx.ALIGN_LEFT)
        self.Text.SetForegroundColour(wx.WHITE)
        self.Text.SetFont(Font)
        self.EnableBox = wx.CheckBox(self, -1, 'Enabled')
        self.EnableBox.SetForegroundColour(wx.WHITE)
        self.EnableBox.SetFont(Font)
        self.ChannelMaskText = wx.StaticText(self, -1, 'Channel Mask: ')
        self.ChannelMaskText.SetForegroundColour(wx.WHITE)
        self.ChannelMaskText.SetFont(Font)

        self.Bind(EVT_UPDATE_LOG, self.OnUpdateLog)

        Mask = CMN_LOG_ALLOW_ALL
        if ireEmbedded:
            Mask = ireLogger.GetMask()

        # use the IntCtrl control to get the log mask.  Since this is now a mask,
        # rather than a log level, it would make more sense to have a different
        # interface (e.g., check boxes to enable/disable each type of log message).
        self.ChannelMask= intctrl.IntCtrl(self, -1, Mask, min=CMN_LOG_ALLOW_NONE, max=CMN_LOG_ALLOW_ALL, limited=True)

        if not ireEmbedded:
            self.EnableBox.Enable(False)
            self.ChannelMaskText.Enable(False)
            self.ChannelMask.Enable(False)

        self.HeaderSizer = wx.BoxSizer(wx.HORIZONTAL)
        self.HeaderSizer.Add(self.Text, 0, wx.ALIGN_LEFT)
        self.HeaderSizer.Add((0,0),3)   # Add a stretchable space
        self.HeaderSizer.Add(self.EnableBox, 0, wx.ALIGN_LEFT)
        self.HeaderSizer.Add((0,0),3)   # Add a stretchable space
        self.HeaderSizer.Add(self.ChannelMaskText, 0, wx.ALIGN_RIGHT)
        self.HeaderSizer.Add(self.ChannelMask, 0, wx.ALIGN_LEFT)
        self.HeaderSizer.Add((0,0),1)   # Add a smaller stretchable space

        self.logText = wx.TextCtrl(self, -1, style=style)

        self.LogSizer = wx.BoxSizer(wx.VERTICAL)
        self.LogSizer.Add(self.HeaderSizer, 0, wx.EXPAND)
        self.LogSizer.Add(self.logText, 1, wx.EXPAND)
        self.SetSizer(self.LogSizer)

        self.Bind(wx.EVT_CHECKBOX, self.OnEnableBox, self.EnableBox)
        self.Bind(intctrl.EVT_INT, self.OnChannelMask, self.ChannelMask)
Beispiel #10
0
    def __init__(self, parent, text1, text2, title):
        wx.Dialog.__init__(self, parent, title=title)

        # Draw the window
        lbl1 = wx.StaticText(self, label=text1)
        lbl2 = wx.StaticText(self, label=text2)

        self.txt1 = lib.IntCtrl(self, value=10, min = 2, max=30, limited = False, oob_color=wx.Colour(255, 50, 50))
        self.txt2 = lib.IntCtrl(self, value=3, min = 2, max=30, limited = False, oob_color=wx.Colour(255, 50, 50))

        sizer1 = wx.BoxSizer(wx.HORIZONTAL)
        sizer1.Add(lbl1, 0, wx.ALIGN_LEFT)
        sizer1.AddStretchSpacer(1)
        sizer1.Add(self.txt1, 1, wx.TOP | wx.ALIGN_RIGHT)

        sizer2 = wx.BoxSizer(wx.HORIZONTAL)
        sizer2.Add(lbl2, 0, wx.ALIGN_LEFT)
        sizer2.AddStretchSpacer(1)
        sizer2.Add(self.txt2, 1, wx.TOP | wx.ALIGN_RIGHT)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(sizer1, 0, wx.TOP|wx.LEFT|wx.RIGHT|wx.EXPAND)
        sizer.AddStretchSpacer(1)
        sizer.Add(sizer2, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
        
        ok = wx.Button(self, label="Ok")
        cancel = wx.Button(self, label="Cancel")

        sizer3 = wx.BoxSizer(wx.HORIZONTAL)
        sizer3.AddStretchSpacer(1)
        sizer3.Add(cancel, 0, wx.ALIGN_RIGHT)
        sizer3.Add(ok, 0, wx.ALIGN_RIGHT)

        sizer.Add(sizer3, 0, wx.ALIGN_RIGHT)

        self.Bind(wx.EVT_BUTTON, self.OnOk, ok)
        self.Bind(wx.EVT_BUTTON, self.OnCancel, cancel)

        self.SetSizer(sizer)
        sizer.Layout()
Beispiel #11
0
    def _draw_controls(self):
        self.gradient_slider = GradientSlider(self, -1, self.min_range,
                                              self.max_range, self.minimun,
                                              self.maximun, self.colour)

        self.spin_min = intctrl.IntCtrl(self,
                                        size=(40, 20),
                                        style=wx.TE_PROCESS_ENTER)
        self.spin_min.SetValue(self.minimun)
        if sys.platform != 'win32':
            self.spin_min.SetWindowVariant(wx.WINDOW_VARIANT_SMALL)

        self.spin_max = intctrl.IntCtrl(self,
                                        size=(40, 20),
                                        style=wx.TE_PROCESS_ENTER)
        self.spin_max.SetValue(self.maximun)
        if sys.platform != 'win32':
            self.spin_max.SetWindowVariant(wx.WINDOW_VARIANT_SMALL)

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(self.spin_min, 0, wx.EXPAND | wx.RIGHT, 2)
        sizer.Add(self.gradient_slider, 1, wx.EXPAND)
        sizer.Add(self.spin_max, 0, wx.EXPAND | wx.LEFT, 2)
        self.sizer.Add(sizer, 1, wx.EXPAND)
Beispiel #12
0
    def __init__(self, *args, **kwds):
        PrefsPanel.__init__(self, *args, **kwds)

        self.label_terrain_material = wx.StaticText(
            self, -1, "Terrain material resolution")
        self.int_terrain_material = intctrl.IntCtrl(self,
                                                    -1,
                                                    limited=True,
                                                    value=32,
                                                    min=1,
                                                    max=1000,
                                                    size=wx.Size(40, -1),
                                                    style=wx.TE_RIGHT)

        self.__set_properties()
        self.__do_layout()
        self.__bind_events()
Beispiel #13
0
 def __init__(self, parent):
     togwin.ChildToggableDialog.__init__(
         self, "Variable monitor", parent
         )
     self.stats_enabled = False
     
     self.win_graphs = wx.ScrolledWindow(self, -1, style=wx.SUNKEN_BORDER|wx.TAB_TRAVERSAL)
     self.label_current = wx.StaticText(self, -1, "Current graph stats:")
     self.combo_current = wx.ComboBox(self, -1, style=wx.CB_READONLY)
     self.label_min = wx.StaticText(self, -1, "Min:")
     self.float_min = wx.StaticText(self, -1, "", size=(50,-1))
     self.label_max = wx.StaticText(self, -1, "Max:")
     self.float_max = wx.StaticText(self, -1, "", size=(50,-1))
     self.label_mean = wx.StaticText(self, -1, "Mean:")
     self.float_mean = wx.StaticText(self, -1, "", size=(50,-1))
     self.label_last = wx.StaticText(self, -1, "Last:")
     self.float_last = wx.StaticText(self, -1, "", size=(50,-1))
     self.line1 = wx.StaticLine(self, -1, style=wx.LI_HORIZONTAL)
     self.label_var = wx.StaticText(self, -1, "Variable to monitorize:")
     self.choice_var = wx.ComboBox(self, -1, style=wx.CB_READONLY|wx.CB_SORT)
     self.button_add = wx.Button(self, -1, "Add variable")
     self.line2 = wx.StaticLine(self, -1, style=wx.LI_HORIZONTAL)
     self.label_period = wx.StaticText(self, -1, "Global history period:")
     self.int_period = intctrl.IntCtrl(
         self, value=10, min=1, max=99, limited=True,
         size=wx.Size(40,-1), style=wx.TE_RIGHT
         )
     self.label_seconds = wx.StaticText(self, -1, "seconds")
     self.line3 = wx.StaticLine(self, -1, style=wx.LI_VERTICAL)
     self.button_show = wx.ToggleButton(self, -1, "Show graphs")
     self.button_fullscreen = wx.ToggleButton(self, -1, "Fullscreen")
     self.graphs = []
     
     self.__set_properties()
     self.__do_layout()
     self.__bind_events()
     
     # Add current graph found in the monitor server
     monitor_server = servers.get_monitor_server()
     for i in range( monitor_server.getnumgraphs() ):
         self.__add_graph_bar( monitor_server.getgraphvarname(i) )
     
     # Timer to update the current graph stats
     self.stats_timer = wx.PyTimer(self.update_current_stats)
     self.stats_timer.Start(50)
Beispiel #14
0
    def __init__(self, name, pref_item, size, parent=None):
        ''' The constructor.

        Parameters
        ----------
        name : String
            The name of the field. It is used as the field label.

        pref_item : :class:`~psysmon.core.preferences.PrefItem`
            The key of the base option edited by this field.

        size : tuple (width, height)
            The size of the field.

        parent :
            The parent wxPyton window of this field.
        '''
        Field.__init__(self,
                       parent=parent,
                       name=name,
                       pref_item=pref_item,
                       size=size)

        # Create the field label.
        self.labelElement = StaticText(parent=self,
                                       ID=wx.ID_ANY,
                                       label=self.label,
                                       style=wx.ALIGN_RIGHT)

        # Create the field spincontrol.
        self.controlElement = intctrl.IntCtrl(self, wx.ID_ANY)

        # Add the gui elements to the field.
        self.addLabel(self.labelElement)
        self.addControl(self.controlElement)

        # Set the value of the control element.
        self.setControlElementValue()

        # Bind the events.
        self.Bind(intctrl.EVT_INT, self.onValueChange, self.controlElement)
Beispiel #15
0
    def add_cell(self, value):
        font = wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.NORMAL)

        if value == levels.CELL_NONE:
            cell = wx.StaticText(self.puzzle_panel,
                                 style=wx.ALIGN_CENTRE_HORIZONTAL,
                                 label="")
        elif value == levels.CELL_EMPTY:
            cell = intctrl.IntCtrl(self.puzzle_panel,
                                   style=wx.TE_CENTRE,
                                   limited=True,
                                   min=1,
                                   allow_none=True,
                                   value=None)
        else:
            cell = wx.StaticText(self.puzzle_panel,
                                 style=wx.ALIGN_CENTRE_HORIZONTAL
                                 | wx.BORDER_SIMPLE,
                                 label=value)

        cell.SetFont(font)
        cell.SetMinSize(wx.Size(30, 30))
        self.puzzle_sizer.Add(cell, 0, wx.EXPAND)
Beispiel #16
0
 def __init__(self, parent, var_name, parent_graphs):
     wx.PyControl.__init__(self, parent, style=wx.NO_BORDER|wx.TAB_TRAVERSAL)
     self.var_name = var_name
     self.parent_graphs = parent_graphs
     parent_graphs.append(self)
     
     # controls
     self.checkbox_enable = wx.CheckBox(self, -1, var_name)
     self.color = wx.lib.colourselect.ColourSelect(self, -1)
     self.label_frequency = wx.StaticText(self, -1, "Sampling frequency:")
     self.int_frequency = intctrl.IntCtrl(
         self, value=1000, min=1, max=100000, limited=True,
         size=wx.Size(40,-1), style=wx.TE_RIGHT
         )
     self.label_milliseconds = wx.StaticText(self, -1, "milliseconds")
     self.slider_smooth = floatslider.FloatSlider(
         self, -1, "Smoothness:", 0.5, 0.0, 1.0, precision=1000.0
         )
     self.button_remove = wx.Button(self, -1, "Remove", style=wx.BU_EXACTFIT)
     
     self.__set_properties()
     self.__do_layout()
     self.__bind_events()
Beispiel #17
0
    def __DoLayout(self):
        """Layout the controls"""
        msizer = wx.BoxSizer(wx.VERTICAL)
        sbox = wx.StaticBox(self, label=_("Text Colors"))
        boxsz = wx.StaticBoxSizer(sbox, wx.VERTICAL)

        # Launch Config
        cfg = Profile_Get(handlers.CONFIG_KEY, default=dict())

        # Actions Configuration
        clear_cb = wx.CheckBox(self, ID_AUTOCLEAR,
                               _("Automatically clear output buffer between runs"))
        clear_cb.SetValue(cfg.get('autoclear', False))
        error_cb = wx.CheckBox(self, ID_ERROR_BEEP,
                               _("Audible feedback when errors are detected"))
        error_cb.SetValue(cfg.get('errorbeep', False))
        wrap_cb = wx.CheckBox(self, ID_WRAP_OUTPUT,
                              _("Wrap lines in output buffer"))
        wrap_cb.SetValue(cfg.get('wrapoutput', False))
        buff_sz = wx.BoxSizer(wx.HORIZONTAL)
        buff_sz.Add(wx.StaticText(self, label=_("Line Buffering:")), 0,
                    wx.ALIGN_CENTER_VERTICAL)
        self._bufftxt = intctrl.IntCtrl(self, min=0, max=50000, allow_none=True)
        self._bufftxt.ToolTip = wx.ToolTip(_("0-50000 (0 unlimited)"))
        lbufcfg = max(0, cfg.get('linebuffer', DEFAULT_LINEBUFFER))
        self._bufftxt.Value = unicode(lbufcfg)
        buff_sz.Add(self._bufftxt, 0, wx.ALL, 5)

        # Colors
        colors = dict()
        for btn in COLOR_MAP.iteritems():
            cbtn = eclib.ColorSetter(self, btn[0], color=cfg.get(btn[1], wx.WHITE))
            colors[btn[0]] = cbtn

        flexg = wx.FlexGridSizer(5, 5, 5, 5)
        flexg.AddGrowableCol(1, 1)
        flexg.AddGrowableCol(3, 1)
        flexg.AddMany([# First Row
                       ((5, 5), 0), ((5, 5), 1),
                       (wx.StaticText(self, label=_("Foreground")), 0,
                        wx.ALIGN_CENTER),
                       ((5, 5), 1),
                       (wx.StaticText(self, label=_("Background")), 0,
                        wx.ALIGN_CENTER),
                       # Second Row
                       (wx.StaticText(self, label=_("Plain Text") + u":"), 0,
                        wx.ALIGN_CENTER_VERTICAL),
                       ((5, 5), 1),
                       (colors[ID_DEF_FORE], 0, wx.EXPAND),
                       ((5, 5), 1),
                       (colors[ID_DEF_BACK], 0, wx.EXPAND),
                       # Third Row
                       (wx.StaticText(self, label=_("Error Text") + u":"), 0,
                        wx.ALIGN_CENTER_VERTICAL),
                       ((5, 5), 1),
                       (colors[ID_ERR_FORE], 0, wx.EXPAND),
                       ((5, 5), 1),
                       (colors[ID_ERR_BACK], 0, wx.EXPAND),
                       # Fourth Row
                       (wx.StaticText(self, label=_("Info Text") + u":"), 0,
                        wx.ALIGN_CENTER_VERTICAL),
                       ((5, 5), 1),
                       (colors[ID_INFO_FORE], 0, wx.EXPAND),
                       ((5, 5), 1),
                       (colors[ID_INFO_BACK], 0, wx.EXPAND),
                       # Fifth Row
                       (wx.StaticText(self, label=_("Warning Text") + u":"), 0,
                        wx.ALIGN_CENTER_VERTICAL),
                       ((5, 5), 1),
                       (colors[ID_WARN_FORE], 0, wx.EXPAND),
                       ((5, 5), 1),
                       (colors[ID_WARN_BACK], 0, wx.EXPAND)])
        boxsz.Add(flexg, 0, wx.EXPAND)

        # Layout
        msizer.AddMany([((5, 5), 0),
                        (wx.StaticText(self, label=("Actions") + u":"), 0),
                        ((5, 5), 0), (clear_cb, 0),
                        ((5, 5), 0), (error_cb, 0),
                        ((5, 5), 0), (wrap_cb, 0),
                        ((5, 5), 0), (buff_sz, 0),
                        ((10, 10), 0), (wx.StaticLine(self), 0, wx.EXPAND),
                        ((10, 10), 0),
                        (boxsz, 1, wx.EXPAND)])
        hsizer = wx.BoxSizer(wx.HORIZONTAL)
        hsizer.AddMany([((5, 5), 0), (msizer, 1, wx.EXPAND), ((5, 5), 0)])
        self.SetSizer(hsizer)
Beispiel #18
0
 def test_canSetValueToNone(self):
     t1 = IC.IntCtrl(self.frame, allow_none=True, value=None)
     assert t1.GetValue() is None
     t2 = IC.IntCtrl(self.frame, allow_none=True)
     t2.SetValue(None)
     assert t2.GetValue() is None
Beispiel #19
0
    def __init__(self, parent, id=wx.ID_ANY):
        wx.Dialog.__init__(self,
                           parent,
                           id,
                           "Advanced Setup",
                           style=wx.DEFAULT_DIALOG_STYLE | wx.TAB_TRAVERSAL)
        '''
		Impinj.TagPopulation			= None	# Size of a group to read.
		Impinj.ReceiverSensitivity		= None
		Impinj.TransmitPower			= None
		
		Impinj.ConnectionTimeoutSeconds	= 1		# Interval for connection timeout
		Impinj.KeepaliveSeconds			= 2		# Interval to request a Keepalive message
		Impinj.RepeatSeconds			= 2		# Interval in which a tag is considered a repeat read.
		
		Impinj.ProcessingMethod 		= QuadraticRegressionMethod
		Impinj.AntennaChoice            = MostReadsChoice
		'''

        bs = wx.GridBagSizer(vgap=5, hgap=5)

        row = 0

        border = 8
        bs.Add(wx.StaticText(self, label='Advanced Reader Options:'),
               pos=(0, 0),
               span=(1, 2),
               border=border,
               flag=wx.ALL)

        row += 1
        bs.Add(wx.StaticText(self, label='Report Method'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.ReportMethod = wx.Choice(self, choices=MethodNames)
        self.ReportMethod.SetSelection(Impinj.ProcessingMethod)
        bs.Add(self.ReportMethod,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.ALIGN_CENTER_VERTICAL)

        sb = wx.StaticBox(self, label='QR Only Options')
        sbSizer = wx.StaticBoxSizer(sb, wx.VERTICAL)

        self.RemoveOutliers = wx.CheckBox(self, label='Remove Outliers')
        self.RemoveOutliers.SetValue(Impinj.RemoveOutliers)
        sbSizer.Add(self.RemoveOutliers, flag=wx.ALL, border=2)

        hs = wx.BoxSizer(wx.HORIZONTAL)
        hs.Add(wx.StaticText(self, label='Antenna Choice'),
               flag=wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
               border=4)
        self.AntennaChoice = wx.Choice(self, choices=AntennaChoiceNames)
        self.AntennaChoice.SetSelection(Impinj.AntennaChoice)
        hs.Add(self.AntennaChoice,
               flag=wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
               border=4)
        sbSizer.Add(hs, flag=wx.ALL, border=2)

        bs.Add(sbSizer, pos=(row, 2), span=(1, 1), border=border, flag=wx.TOP)

        row += 1
        bs.Add(wx.StaticText(
            self,
            label='\n'.join([
                '**Quad Regression**: return an estimated time when the tag is closest to an antenna by combining',
                'multiple reads and signal strength (high accuracy, high processing).',
                'The Antenna Choice option controls which antenna is selected for the regression.'
                'Recommended for high-speed finishes (cycling).',
                '**Strongest Read**: return the time of the strongest read signal (lower accuracy, low processing).',
                'Recommended for slow finishes with highly variable tag alignment reads (running).',
                '**First Read Time**:  return the first time the tag is read by any antenna (lowest accuracy, lowest processing).',
                'Recommended for extremely large fields (Gran Fondo).',
            ])),
               pos=(row, 1),
               span=(1, 2),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        row += 1
        bs.Add(wx.StaticLine(self), pos=(row, 0), span=(1, 3), flag=wx.EXPAND)

        row += 1
        bs.Add(wx.StaticText(self, label='Tag Population'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.TagPopulation = intctrl.IntCtrl(self,
                                             min=0,
                                             max=500,
                                             limited=True,
                                             allow_none=True,
                                             value=Impinj.TagPopulation,
                                             size=(100, -1),
                                             style=wx.TE_RIGHT)
        bs.Add(self.TagPopulation,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP)
        bs.Add(wx.StaticText(
            self,
            label=
            'Expected number of tags in range of the antennas at the finish line.\nSuggestions: 4=TimeTrial/MTB, 16=Small Criterium/Road Race, 100=Large Criterium/Road Race.'
        ),
               pos=(row, 2),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        row += 1
        bs.Add(wx.StaticLine(self), pos=(row, 0), span=(1, 3), flag=wx.EXPAND)

        row += 1
        bs.Add(wx.StaticText(self, label='Transmit Power'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.TransmitPower = intctrl.IntCtrl(self,
                                             min=0,
                                             max=10000,
                                             limited=True,
                                             allow_none=True,
                                             value=Impinj.TransmitPower,
                                             size=(100, -1),
                                             style=wx.TE_RIGHT)
        bs.Add(self.TransmitPower,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP)
        bs.Add(wx.StaticText(
            self,
            label='Check reader for details.  Leave blank for full power.'),
               pos=(row, 2),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        row += 1
        bs.Add(wx.StaticText(self, label='Receiver Sensitivity'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.ReceiverSensitivity = intctrl.IntCtrl(
            self,
            min=0,
            max=500,
            limited=True,
            allow_none=True,
            value=Impinj.ReceiverSensitivity,
            size=(100, -1),
            style=wx.TE_RIGHT)
        bs.Add(self.ReceiverSensitivity,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP)
        bs.Add(wx.StaticText(
            self,
            label='Check reader for details.  Leave blank for full sensitivity.'
        ),
               pos=(row, 2),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        row += 1
        bs.Add(wx.StaticLine(self), pos=(row, 0), span=(1, 3), flag=wx.EXPAND)

        row += 1
        bs.Add(wx.StaticText(self, label='Connection Timeout Seconds'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.ConnectionTimeoutSeconds = intctrl.IntCtrl(
            self,
            min=1,
            max=60,
            limited=True,
            value=Impinj.ConnectionTimeoutSeconds,
            size=(100, -1),
            style=wx.TE_RIGHT)
        bs.Add(self.ConnectionTimeoutSeconds,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP)
        bs.Add(wx.StaticText(
            self, label='Maximum seconds to wait for a reader response.'),
               pos=(row, 2),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        row += 1
        bs.Add(wx.StaticText(self, label='Keepalive Seconds'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.KeepaliveSeconds = intctrl.IntCtrl(self,
                                                min=1,
                                                max=60,
                                                limited=True,
                                                value=Impinj.KeepaliveSeconds,
                                                size=(100, -1),
                                                style=wx.TE_RIGHT)
        bs.Add(self.KeepaliveSeconds,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP)
        bs.Add(wx.StaticText(
            self,
            label=
            'Frequency of "heartbeat" messages indicating the reader is still connected.'
        ),
               pos=(row, 2),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        row += 1
        bs.Add(wx.StaticText(self, label='Repeat Seconds'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.RepeatSeconds = intctrl.IntCtrl(self,
                                             min=1,
                                             max=120,
                                             limited=True,
                                             value=Impinj.RepeatSeconds,
                                             size=(100, -1),
                                             style=wx.TE_RIGHT)
        bs.Add(self.RepeatSeconds,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP)
        bs.Add(wx.StaticText(
            self,
            label=
            'Interval in which multiple tag reads are considered "repeats" and not reported.'
        ),
               pos=(row, 2),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        self.fields = [
            'ConnectionTimeoutSeconds',
            'KeepaliveSeconds',
            'RepeatSeconds',
            'TagPopulation',
            'TransmitPower',
            'ReceiverSensitivity',
            'RemoveOutliers',
        ]

        row += 1
        bs.Add(wx.StaticLine(self), pos=(row, 0), span=(1, 3), flag=wx.EXPAND)

        row += 1
        self.playSoundsCheckbox = wx.CheckBox(self, label='Beep on Read')
        self.playSoundsCheckbox.SetValue(Utils.playBell)
        bs.Add(self.playSoundsCheckbox,
               pos=(row, 1),
               span=(1, 3),
               border=border,
               flag=wx.TOP | wx.LEFT | wx.RIGHT)

        row += 1
        bs.Add(wx.StaticLine(self), pos=(row, 0), span=(1, 3), flag=wx.EXPAND)

        row += 1
        self.restoreDefaultButton = wx.Button(self, label='Restore Defaults')
        self.restoreDefaultButton.Bind(wx.EVT_BUTTON, self.onRestoreDefault)
        bs.Add(self.restoreDefaultButton,
               pos=(row, 0),
               span=(1, 3),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER)

        row += 1
        bs.Add(wx.StaticText(
            self,
            label='Reminder: Press "Reset" for these changes to take effect.'),
               pos=(row, 0),
               span=(1, 3),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_RIGHT)

        self.okBtn = wx.Button(self, wx.ID_OK)
        self.Bind(wx.EVT_BUTTON, self.onOK, self.okBtn)

        self.cancelBtn = wx.Button(self, wx.ID_CANCEL)
        self.Bind(wx.EVT_BUTTON, self.onCancel, self.cancelBtn)

        row += 1
        hs = wx.BoxSizer(wx.HORIZONTAL)
        hs.Add(self.okBtn, border=border, flag=wx.ALL)
        self.okBtn.SetDefault()
        hs.Add(self.cancelBtn, border=border, flag=wx.ALL)

        bs.Add(hs, pos=(row, 0), span=(1, 3), flag=wx.ALIGN_RIGHT)

        self.SetSizerAndFit(bs)
        bs.Fit(self)

        self.CentreOnParent(wx.BOTH)
        self.SetFocus()
Beispiel #20
0
    def __init__(self, parent, id=wx.ID_ANY, size=(200, 200)):
        super(Configure, self).__init__(parent, id, size=size)

        self.SetBackgroundColour(wx.WHITE)
        self.SetDoubleBuffered(True)

        self.inRefresh = False

        #-----------------------------------------------------------------------
        self.vbs = wx.BoxSizer(wx.VERTICAL)

        self.gbs = wx.GridBagSizer(4, 4)

        #--------------------------------------------------------------------------------------------------------------
        label = wx.StaticText(self, label=u'Race Name:')
        self.gbs.Add(label,
                     pos=(0, 0),
                     flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
                     border=16)
        ctrl = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER)
        ctrl.Bind(wx.EVT_TEXT, self.onChange)
        self.gbs.Add(ctrl,
                     pos=(0, 1),
                     span=(1, 5),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL | wx.EXPAND)
        self.nameLabel = label
        self.nameCtrl = ctrl

        hs = wx.BoxSizer(wx.HORIZONTAL)
        label = wx.StaticText(self, label=u'Date:')
        hs.Add(label,
               flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
               border=16)
        ctrl = wx.adv.DatePickerCtrl(self,
                                     style=wx.adv.DP_DROPDOWN
                                     | wx.adv.DP_SHOWCENTURY,
                                     size=(132, -1))
        ctrl.Bind(wx.adv.EVT_DATE_CHANGED, self.onChange)
        hs.Add(ctrl,
               flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
               border=4)
        self.dateLabel = label
        self.dateCtrl = ctrl

        label = wx.StaticText(self, label=u'Communiqu\u00E9:')
        hs.Add(label,
               flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
               border=16)
        ctrl = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER)
        ctrl.Bind(wx.EVT_TEXT, self.onChange)
        hs.Add(ctrl,
               flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
               border=4)
        self.communiqueLabel = label
        self.communiqueCtrl = ctrl

        self.gbs.Add(hs, pos=(0, 6), span=(1, 3))

        #--------------------------------------------------------------------------------------------------------------
        label = wx.StaticText(self, label=u'Category:')
        self.gbs.Add(label,
                     pos=(1, 0),
                     flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
                     border=16)
        ctrl = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER)
        ctrl.Bind(wx.EVT_TEXT, self.onChange)
        self.gbs.Add(ctrl,
                     pos=(1, 1),
                     span=(1, 5),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL | wx.EXPAND)
        self.categoryLabel = label
        self.categoryCtrl = ctrl

        label = wx.StaticText(self, label=u'Rank By:', style=wx.ALIGN_RIGHT)
        self.gbs.Add(label,
                     pos=(1, 6),
                     flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
                     border=16)
        ctrl = wx.Choice(
            self,
            choices=[
                u'Points then Finish Order',
                u'Laps Completed, Points then Finish Order',
                u'Laps Completed, Points, Num Wins then Finish Order'
            ])
        ctrl.SetSelection(0)
        self.Bind(wx.EVT_CHOICE, self.onChange, ctrl)
        self.gbs.Add(ctrl,
                     pos=(1, 7),
                     span=(1, 2),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        self.rankByLabel = label
        self.rankByCtrl = ctrl

        #--------------------------------------------------------------------------------------------------------------
        label = wx.StaticText(self, label=u'Total:')
        self.gbs.Add(label,
                     pos=(2, 0),
                     flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
                     border=16)
        ctrl = IC.IntCtrl(self,
                          min=1,
                          max=300,
                          value=1,
                          limited=True,
                          style=wx.ALIGN_RIGHT,
                          size=(40, -1))
        ctrl.Bind(IC.EVT_INT, self.onChange)
        self.gbs.Add(ctrl,
                     pos=(2, 1),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        unitsLabel = wx.StaticText(self, label='laps')
        self.gbs.Add(unitsLabel,
                     pos=(2, 2),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        self.lapsLabel = label
        self.lapsUnitsLabel = unitsLabel
        self.lapsCtrl = ctrl

        #--------------------------------------------------------------------------------------------------------------
        label = wx.StaticText(self, label=u'Start Laps:')
        self.gbs.Add(label,
                     pos=(2, 3),
                     flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
                     border=16)
        ctrl = IC.IntCtrl(self,
                          min=0,
                          max=300,
                          value=0,
                          limited=True,
                          style=wx.ALIGN_RIGHT,
                          size=(40, -1))
        ctrl.Bind(IC.EVT_INT, self.onChange)
        self.gbs.Add(ctrl,
                     pos=(2, 4),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        self.startLapsLabel = label
        self.startLapsCtrl = ctrl

        ctrl = wx.StaticText(self, -1, u'Distance: 10.0m')
        self.gbs.Add(ctrl,
                     pos=(2, 5),
                     flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL)
        self.distanceCtrl = ctrl

        label = wx.StaticText(self,
                              label=u'Points for Place:',
                              style=wx.ALIGN_RIGHT)
        self.gbs.Add(label,
                     pos=(2, 6),
                     flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
                     border=16)
        ctrl = wx.TextCtrl(self)
        self.gbs.Add(ctrl,
                     pos=(2, 7),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        self.pointsForPlaceLabel = label
        self.pointsForPlaceCtrl = ctrl

        label = wx.CheckBox(self, label=u'Double Points on Last Sprint')
        self.gbs.Add(label,
                     pos=(2, 8),
                     flag=wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
                     border=16)
        ctrl = label
        ctrl.Bind(wx.EVT_CHECKBOX, self.onChange)
        self.doublePointsForLastSprintLabel = label
        self.doublePointsForLastSprintCtrl = ctrl

        #--------------------------------------------------------------------------------------------------------------
        label = wx.StaticText(self, label=u'Sprint Every:')
        self.gbs.Add(label,
                     pos=(3, 0),
                     flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
                     border=16)
        ctrl = IC.IntCtrl(self,
                          min=1,
                          max=300,
                          value=1,
                          limited=True,
                          style=wx.ALIGN_RIGHT,
                          size=(40, -1))
        ctrl.Bind(IC.EVT_INT, self.onChange)
        self.gbs.Add(ctrl,
                     pos=(3, 1),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        unitsLabel = wx.StaticText(self, label='laps')
        self.gbs.Add(unitsLabel,
                     pos=(3, 2),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        self.sprintEveryLabel = label
        self.sprintEveryCtrl = ctrl
        self.sprintEveryUnitsLabel = unitsLabel

        label = wx.StaticText(self, label=u'Course Len:')
        self.gbs.Add(label,
                     pos=(3, 3),
                     flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
                     border=16)

        ctrl = NC.NumCtrl(self,
                          min=0,
                          integerWidth=3,
                          fractionWidth=2,
                          style=wx.ALIGN_RIGHT,
                          size=(24, -1),
                          useFixedWidthFont=False)
        ctrl.SetAllowNegative(False)
        ctrl.Bind(wx.EVT_TEXT, self.onChange)
        self.gbs.Add(ctrl,
                     pos=(3, 4),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)

        unitCtrl = wx.Choice(self, choices=[u'm', u'km'])
        unitCtrl.SetSelection(0)
        unitCtrl.Bind(wx.EVT_CHOICE, self.onChange)
        self.gbs.Add(unitCtrl,
                     pos=(3, 5),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        self.courseLengthLabel = label
        self.courseLengthCtrl = ctrl
        self.courseLengthUnitCtrl = unitCtrl

        label = wx.StaticText(self, label=u'+/- Lap Points:')
        self.gbs.Add(label,
                     pos=(3, 6),
                     flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
                     border=16)
        ctrl = IC.IntCtrl(self,
                          min=0,
                          max=100,
                          value=0,
                          limited=True,
                          style=wx.ALIGN_RIGHT,
                          size=(32, -1))
        ctrl.Bind(IC.EVT_INT, self.onChange)
        self.gbs.Add(ctrl,
                     pos=(3, 7),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        self.pointsForLappingLabel = label
        self.pointsForLappingCtrl = ctrl

        label = wx.CheckBox(self, label=u'Snowball')
        self.gbs.Add(label,
                     pos=(3, 8),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
                     border=16)
        ctrl = label
        ctrl.Bind(wx.EVT_CHECKBOX, self.onChange)
        self.snowballLabel = label
        self.snowballCtrl = ctrl

        branding = wx.adv.HyperlinkCtrl(
            self,
            id=wx.ID_ANY,
            label=u"Powered by CrossMgr",
            url=u"http://www.sites.google.com/site/crossmgrsoftware/")
        branding.SetBackgroundColour(wx.WHITE)
        self.gbs.Add(branding,
                     pos=(3, 9),
                     flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)

        #-----------------------------------------------------------------------------------------------------------
        self.vbs.Add(self.gbs, flag=wx.ALL, border=4)

        self.SetSizerAndFit(self.vbs)

        self.ConfigurePointsRace()
        self.refresh()
Beispiel #21
0
    def __create_objects(self):
        # Menu Bar
        self.frame_1_menubar = wx.MenuBar()
        # File menu
        self.file_menu = wx.Menu()
        self.import_file = wx.MenuItem(self.file_menu, -1, "Import",
                                       "Import timeseries from data file")
        self.file_menu.AppendItem(self.import_file)
        self.frame_1_menubar.Append(self.file_menu, "File")
        # Help Menu
        self.help_menu = wx.Menu()
        self.help_book = wx.MenuItem(self.help_menu, -1, "Help Index",
                                     "How to use this software.")
        self.about = wx.MenuItem(self.help_menu, -1, "About",
                                 "About this software.")
        self.help_menu.AppendItem(self.about)
        self.frame_1_menubar.Append(self.help_menu, "Help")
        # Set Menu Bar
        self.SetMenuBar(self.frame_1_menubar)
        # Menu Bar end

        # Status Bar
        self.frame_1_statusbar = self.CreateStatusBar(1, 0)
        # Status Bar end

        # Tool Bar
        self.frame_1_toolbar = wx.ToolBar(self,
                                          -1,
                                          style=wx.TB_HORIZONTAL
                                          | wx.TB_3DBUTTONS)
        self.SetToolBar(self.frame_1_toolbar)
        self.frame_1_toolbar.AddLabelTool(
            wx.NewId(), "new", wx.Bitmap("stock_new.png", wx.BITMAP_TYPE_ANY),
            wx.NullBitmap, wx.ITEM_NORMAL, "", "")
        self.frame_1_toolbar.AddLabelTool(
            wx.NewId(), "open", wx.Bitmap("stock_open.png",
                                          wx.BITMAP_TYPE_ANY), wx.NullBitmap,
            wx.ITEM_NORMAL, "", "")
        self.frame_1_toolbar.AddLabelTool(
            wx.NewId(), "save", wx.Bitmap("stock_save.png",
                                          wx.BITMAP_TYPE_ANY), wx.NullBitmap,
            wx.ITEM_NORMAL, "", "")
        self.frame_1_toolbar.AddLabelTool(
            wx.NewId(), "exit", wx.Bitmap("stock_exit.png",
                                          wx.BITMAP_TYPE_ANY), wx.NullBitmap,
            wx.ITEM_NORMAL, "", "")
        # Tool Bar end

        # Top level sizers
        self.sizer_1 = wx.BoxSizer(wx.HORIZONTAL)
        self.sizer_3 = wx.BoxSizer(wx.VERTICAL)
        # Splitter
        self.splitter = wx.SplitterWindow(self,
                                          -1,
                                          style=wx.SP_3DSASH | wx.SP_3DBORDER)

        # TS panel widgets
        self.sizer_ts = wx.BoxSizer(wx.VERTICAL)
        self.sizer_control_ts = wx.BoxSizer(wx.HORIZONTAL)
        self.ts_control_panel = wx.Panel(self.splitter, -1)
        self.list_box_1 = wx.ListBox(self.ts_control_panel,
                                     -1,
                                     choices=[],
                                     style=wx.LB_MULTIPLE | wx.LB_NEEDED_SB)
        self.ts_plot_button = wx.Button(self.ts_control_panel, -1,
                                        'Plot Timeseries')
        self.ts_remove_button = wx.Button(self.ts_control_panel, -1, 'Remove')

        # Notebook
        self.notebook_1 = wx.Notebook(self.splitter, -1, style=wx.NB_LEFT)
        self.notebook_1_pane_1 = wx.Panel(self.notebook_1, -1)
        self.notebook_1_pane_2 = wx.Panel(self.notebook_1, -1)
        self.notebook_1_pane_3 = wx.Panel(self.notebook_1, -1)
        self.notebook_1_pane_4 = wx.Panel(self.notebook_1, -1)
        self.notebook_1_pane_5 = wx.Panel(self.notebook_1, -1)
        self.notebook_1_pane_6 = wx.Panel(self.notebook_1, -1)

        # Text results panel
        self.results_panel = wx.Panel(self, -1, style=wx.SIMPLE_BORDER)
        self.results_panel_text = wx.StaticText(self.results_panel,
                                                -1,
                                                label="Numerical Results Here")

        # Graphing panel
        self.plot_panel = wxmpl.PlotPanel(self, -1)

        # Analysis widgets
        self.analysis_sizer = wx.BoxSizer(wx.VERTICAL)
        self.stat_button = wx.Button(self.notebook_1_pane_1, -1, 'Statistics')
        self.hist_button = wx.Button(self.notebook_1_pane_1, -1, 'Histogram')
        self.weibull_button = wx.Button(self.notebook_1_pane_1, -1,
                                        'Weibull Params')
        self.corr_button = wx.Button(self.notebook_1_pane_1, -1, 'Correlate')
        self.corr_panel = wx.Panel(self.notebook_1_pane_1,
                                   -1,
                                   style=wx.RAISED_BORDER)
        self.corr_panel_btn = wx.Button(self.notebook_1_pane_1,
                                        -1,
                                        '>>',
                                        name='corr')
        self.corr_sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.rad_autocorr = wx.RadioButton(self.corr_panel,
                                           -1,
                                           'Auto',
                                           style=wx.RB_GROUP)
        self.rad_crosscorr = wx.RadioButton(self.corr_panel, -1, 'Cross')
        self.corr_lag_int = intctrl.IntCtrl(self.corr_panel,
                                            -1,
                                            value=15,
                                            min=0)
        self.lag_label = wx.StaticText(self.corr_panel, -1, 'No. lags')
        self.block_button = wx.Button(self.notebook_1_pane_1, -1,
                                      'Block Average')
        self.block_panel = wx.Panel(self.notebook_1_pane_1,
                                    -1,
                                    style=wx.RAISED_BORDER)
        self.block_panel_btn = wx.Button(self.notebook_1_pane_1,
                                         -1,
                                         '>>',
                                         name='block')
        self.block_sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.block_new_freq = wx.Choice(self.block_panel,
                                        -1,
                                        choices=[
                                            'YEARLY', 'QUARTERLY', 'MONTHLY',
                                            'WEEKLY', 'DAILY', 'HOURLY',
                                            'MINUTELY'
                                        ])
        self.psd_button = wx.Button(self.notebook_1_pane_1, -1,
                                    'Power Spectral Density')
        # End Analysis widgets

        # Synthesis widgets
        self.synthesis_sizer = wx.BoxSizer(wx.VERTICAL)
        self.arma_button = wx.Button(self.notebook_1_pane_2, -1, 'ARMA')
        self.arma_panel = wx.Panel(self.notebook_1_pane_2,
                                   -1,
                                   style=wx.RAISED_BORDER)
        self.arma_panel_btn = wx.Button(self.notebook_1_pane_2,
                                        -1,
                                        '>>',
                                        name='arma')
        self.arma_sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.mean_lbl = wx.StaticText(self.arma_panel, -1, 'Mean:')
        self.stdev_lbl = wx.StaticText(self.arma_panel, -1, 'STDEV:')
        self.npoints_lbl = wx.StaticText(self.arma_panel, -1, 'No. points:')
        self.autocorr_lbl = wx.StaticText(self.arma_panel, -1, 'Autocorr:')
        self.mean_ctrl = wx.TextCtrl(self.arma_panel, -1, '')
        self.stdev_ctrl = wx.TextCtrl(self.arma_panel, -1, '')
        self.npoints_ctrl = wx.TextCtrl(self.arma_panel, -1, '')
        self.autocorr_ctrl = wx.TextCtrl(self.arma_panel, -1, '')
Beispiel #22
0
    def __init__(self, parent):
        wx.Dialog.__init__(self,
                           parent,
                           id=wx.ID_ANY,
                           title=u"编辑车辆信息",
                           pos=wx.DefaultPosition,
                           size=wx.DefaultSize,
                           style=wx.DEFAULT_DIALOG_STYLE)

        self.data = None

        border = wx.BoxSizer(wx.VERTICAL)

        # load customer combo data
        self.customer_data = service.search_customer(None, None)

        # load insurance company combo data
        self.company_data = service.search_dict(1)

        # load authorization
        self.current_user = auth.Auth.logon_user

        # new box -------------------------------------------------------------------------
        box = wx.StaticBox(self, -1, u"客户信息")
        box.SetForegroundColour((119, 136, 153))
        box_sizer = wx.StaticBoxSizer(box, wx.VERTICAL)
        border.Add(box_sizer, 0, wx.GROW | wx.ALIGN_CENTER_VERTICAL | wx.ALL,
                   5)

        # new line ########################################################################
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        box_sizer.Add(sizer)

        # 客户姓名
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"* 姓名:",
                              size=(60, -1),
                              style=wx.ALIGN_RIGHT)
        label.SetForegroundColour(wx.RED)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.customerCombobox =\
            wx.ComboBox(self, wx.ID_ANY, size=wx.Size(120, -1), choices=[], style=wx.CB_DROPDOWN)

        for customer in self.customer_data:
            self.customerCombobox.Append(customer[0], customer[6])

        sizer.Add(self.customerCombobox, 1, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.Bind(wx.EVT_COMBOBOX, self.select_customer, self.customerCombobox)
        self.Bind(wx.EVT_TEXT, self.filter_customer, self.customerCombobox)
        self.Bind(wx.EVT_CHAR, self.enable_filter, self.customerCombobox)
        self.ignoreEvtText = False

        # 客户性别
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"性别:",
                              size=(60, -1),
                              style=wx.ALIGN_RIGHT)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.customerGenderPanel =\
            wx.StaticText(self, wx.ID_ANY, size=wx.Size(120, -1))
        sizer.Add(self.customerGenderPanel, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # 身份证号
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"身份证号:",
                              size=(60, -1),
                              style=wx.ALIGN_RIGHT)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.customerIdNumberPanel =\
            wx.StaticText(self, wx.ID_ANY, size=wx.Size(130, -1))
        sizer.Add(self.customerIdNumberPanel, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # 客户电话
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"电话:",
                              size=(60, -1),
                              style=wx.ALIGN_RIGHT)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.customerPhonePanel =\
            wx.StaticText(self, wx.ID_ANY, size=wx.Size(120, -1))
        sizer.Add(self.customerPhonePanel, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # new box -------------------------------------------------------------------------
        box = wx.StaticBox(self, -1, u"车辆信息")
        box.SetForegroundColour((119, 136, 153))
        box_sizer = wx.StaticBoxSizer(box, wx.VERTICAL)
        border.Add(box_sizer, 0, wx.GROW | wx.ALIGN_CENTER_VERTICAL | wx.ALL,
                   5)

        # new line ########################################################################
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        box_sizer.Add(sizer)

        # 车牌号
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"* 车牌号:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        label.SetForegroundColour(wx.RED)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.vehiclePlateNumInput =\
            wx.TextCtrl(self, wx.ID_ANY, "", size=wx.Size(230, -1), validator=platenumvalidator.PlateNumValidator(None))
        sizer.Add(self.vehiclePlateNumInput, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # 车辆型号
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"* 车辆型号:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        label.SetForegroundColour(wx.RED)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.vehicleModelInput =\
            wx.TextCtrl(self, wx.ID_ANY, "", size=wx.Size(230, -1), validator=textvalidator.TextValidator(u"车辆型号"))
        sizer.Add(self.vehicleModelInput, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # new line ########################################################################
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        box_sizer.Add(sizer)

        # 车辆登记日期
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"* 车辆登记日期:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        label.SetForegroundColour(wx.RED)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.vehicleRegDate =\
            wx.adv.DatePickerCtrl(self, wx.ID_ANY, size=wx.Size(230, -1),
                                  style=wx.adv.DP_DROPDOWN | wx.adv.DP_SHOWCENTURY)
        sizer.Add(self.vehicleRegDate, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # 公里数
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"公里数:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.mileageInput =\
            intctrl.IntCtrl(self, wx.ID_ANY, size=wx.Size(230, -1))
        sizer.Add(self.mileageInput, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # new line ########################################################################
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        box_sizer.Add(sizer)

        # 过户次数
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"* 过户次数:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        label.SetForegroundColour(wx.RED)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.transCountInput =\
            intctrl.IntCtrl(self, wx.ID_ANY, 1, size=wx.Size(230, -1), min=0)
        sizer.Add(self.transCountInput, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # new box -------------------------------------------------------------------------
        box = wx.StaticBox(self, -1, u"贷款信息")
        box.SetForegroundColour((119, 136, 153))
        box_sizer = wx.StaticBoxSizer(box, wx.VERTICAL)
        border.Add(box_sizer, 0, wx.GROW | wx.ALIGN_CENTER_VERTICAL | wx.ALL,
                   5)

        # new line ########################################################################
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        box_sizer.Add(sizer)

        # 贷款产品、期次
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"* 贷款产品:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        label.SetForegroundColour(wx.RED)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.loanProductInput =\
            wx.TextCtrl(self, wx.ID_ANY, "", size=wx.Size(230, -1), validator=textvalidator.TextValidator(u"贷款产品"))
        sizer.Add(self.loanProductInput, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"* 期次:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        label.SetForegroundColour(wx.RED)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.loanPeriodInput =\
            wx.TextCtrl(self, wx.ID_ANY, "", size=wx.Size(230, -1), validator=textvalidator.TextValidator(u"期次"))
        sizer.Add(self.loanPeriodInput, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # new line ########################################################################
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        box_sizer.Add(sizer)

        # 贷款年限
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"* 贷款年限:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        label.SetForegroundColour(wx.RED)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.loanTermInput =\
            intctrl.IntCtrl(self, wx.ID_ANY, 1, size=wx.Size(230, -1), min=1)
        sizer.Add(self.loanTermInput, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # 贷款金额
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"贷款金额:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.loanValueInput =\
            intctrl.IntCtrl(self, wx.ID_ANY, 1, size=wx.Size(230, -1))
        sizer.Add(self.loanValueInput, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # new line ########################################################################
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        box_sizer.Add(sizer)

        # 贷款提报日期
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"贷款提报日期:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.loanReportDate = \
            wx.adv.DatePickerCtrl(self, wx.ID_ANY, size=wx.Size(230, -1),
                                  style=wx.adv.DP_DROPDOWN | wx.adv.DP_SHOWCENTURY | wx.adv.DP_ALLOWNONE)
        sizer.Add(self.loanReportDate, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # 贷款通过日期
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"贷款通过日期:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.loanPassedDate = \
            wx.adv.DatePickerCtrl(self, wx.ID_ANY, size=wx.Size(230, -1),
                                  style=wx.adv.DP_DROPDOWN | wx.adv.DP_SHOWCENTURY | wx.adv.DP_ALLOWNONE)
        sizer.Add(self.loanPassedDate, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # new line ########################################################################
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        box_sizer.Add(sizer)

        # 放款日期
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"* 放款日期:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        label.SetForegroundColour(wx.RED)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.loanDate = \
            wx.adv.DatePickerCtrl(self, wx.ID_ANY, size=wx.Size(230, -1),
                                  style=wx.adv.DP_DROPDOWN | wx.adv.DP_SHOWCENTURY)
        sizer.Add(self.loanDate, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # new box -------------------------------------------------------------------------
        box = wx.StaticBox(self, -1, u"投保信息")
        box.SetForegroundColour((119, 136, 153))
        box_sizer = wx.StaticBoxSizer(box, wx.VERTICAL)
        border.Add(box_sizer, 0, wx.GROW | wx.ALIGN_CENTER_VERTICAL | wx.ALL,
                   5)

        # new line ########################################################################
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        box_sizer.Add(sizer)

        # 承保公司
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"承保公司:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.insuranceCompanyCombobox = \
            wx.ComboBox(self, wx.ID_ANY, size=wx.Size(230, -1), choices=[], style=wx.CB_DROPDOWN | wx.CB_READONLY)
        sizer.Add(self.insuranceCompanyCombobox, 1, wx.ALIGN_CENTRE | wx.ALL,
                  5)

        for company in self.company_data:
            self.insuranceCompanyCombobox.Append(company[1], company[0])

        # 险种
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"险种:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.insuranceTypeInput =\
            wx.TextCtrl(self, wx.ID_ANY, "", size=wx.Size(230, -1))
        sizer.Add(self.insuranceTypeInput, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # new line ########################################################################
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        box_sizer.Add(sizer)

        # 保险生效日期
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"* 保险生效日期:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        label.SetForegroundColour(wx.RED)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.insuranceStartDate = \
            wx.adv.DatePickerCtrl(self, wx.ID_ANY, size=wx.Size(230, -1),
                                  style=wx.adv.DP_DROPDOWN | wx.adv.DP_SHOWCENTURY)
        sizer.Add(self.insuranceStartDate, 1, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.Bind(wx.adv.EVT_DATE_CHANGED, self.get_end,
                  self.insuranceStartDate)

        # 保险到期日期
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"* 保险到期日期:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        label.SetForegroundColour(wx.RED)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.insuranceEndDate = \
            wx.adv.DatePickerCtrl(self, wx.ID_ANY, size=wx.Size(230, -1),
                                  style=wx.adv.DP_DROPDOWN | wx.adv.DP_SHOWCENTURY)
        sizer.Add(self.insuranceEndDate, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        # new line ########################################################################
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        border.Add(sizer, 0, wx.GROW | wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        # 备注
        label = wx.StaticText(self,
                              wx.ID_ANY,
                              u"备注:",
                              size=(110, -1),
                              style=wx.ALIGN_RIGHT)
        sizer.Add(label, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
        self.remarkInput =\
            wx.TextCtrl(self, wx.ID_ANY, "", size=wx.Size(470, -1), style=wx.TE_MULTILINE)
        sizer.Add(self.remarkInput, 1, wx.ALIGN_CENTRE | wx.ALL, 5)

        line = wx.StaticLine(self,
                             -1,
                             size=wx.DefaultSize,
                             style=wx.HORIZONTAL)
        border.Add(line, 0, wx.GROW | wx.ALIGN_CENTER_VERTICAL | wx.TOP, 5)

        # 按钮
        buttons = wx.StdDialogButtonSizer()
        btn = wx.Button(self, wx.ID_OK, u"保存")
        btn.SetDefault()
        buttons.Add(btn)
        btn = wx.Button(self, wx.ID_CANCEL, u"取消")
        buttons.Add(btn)
        buttons.Realize()
        border.Add(buttons, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        self.SetSizer(border)
        border.Fit(self)
Beispiel #23
0
    def __init__(self, parent, id=wx.ID_ANY):
        wx.Dialog.__init__(self,
                           parent,
                           id,
                           "Advanced Setup",
                           style=wx.DEFAULT_DIALOG_STYLE | wx.TAB_TRAVERSAL)
        '''
		Impinj.TagPopulation			= None	# Size of a group to read.
		Impinj.ReceiverSensitivity		= None
		Impinj.TransmitPower			= None
		
		Impinj.ConnectionTimeoutSeconds	= 1		# Interval for connection timeout
		Impinj.KeepaliveSeconds			= 2		# Interval to request a Keepalive message
		Impinj.RepeatSeconds			= 2		# Interval in which a tag is considered a repeat read.
		'''

        bs = wx.GridBagSizer(vgap=5, hgap=5)

        row = 0

        border = 8
        bs.Add(wx.StaticText(self, label='Advanced Reader Options:'),
               pos=(0, 0),
               span=(1, 2),
               border=border,
               flag=wx.ALL)

        row += 1
        bs.Add(wx.StaticText(self, label='Tag Population'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.TagPopulation = intctrl.IntCtrl(self,
                                             min=0,
                                             max=500,
                                             limited=True,
                                             allow_none=True,
                                             value=Impinj.TagPopulation,
                                             size=(100, -1),
                                             style=wx.TE_RIGHT)
        bs.Add(self.TagPopulation,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP)
        bs.Add(wx.StaticText(
            self,
            label=
            'Expected number of tags in range of the antennas at the finish line.\nSuggestions: 4=TimeTrial/MTB, 16=Small Criterium/Road Race, 100=Large Criterium/Road Race.'
        ),
               pos=(row, 2),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        row += 1
        bs.Add(wx.StaticLine(self), pos=(row, 0), span=(1, 3), flag=wx.EXPAND)

        row += 1
        bs.Add(wx.StaticText(self, label='Transmit Power'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.TransmitPower = intctrl.IntCtrl(self,
                                             min=0,
                                             max=10000,
                                             limited=True,
                                             allow_none=True,
                                             value=Impinj.TransmitPower,
                                             size=(100, -1),
                                             style=wx.TE_RIGHT)
        bs.Add(self.TransmitPower,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP)
        bs.Add(wx.StaticText(
            self,
            label='Check reader for details.  Leave blank for full power.'),
               pos=(row, 2),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        row += 1
        bs.Add(wx.StaticText(self, label='Receiver Sensitivity'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.ReceiverSensitivity = intctrl.IntCtrl(
            self,
            min=0,
            max=500,
            limited=True,
            allow_none=True,
            value=Impinj.ReceiverSensitivity,
            size=(100, -1),
            style=wx.TE_RIGHT)
        bs.Add(self.ReceiverSensitivity,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP)
        bs.Add(wx.StaticText(
            self,
            label='Check reader for details.  Leave blank for full sensitivity.'
        ),
               pos=(row, 2),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        row += 1
        bs.Add(wx.StaticLine(self), pos=(row, 0), span=(1, 3), flag=wx.EXPAND)

        row += 1
        bs.Add(wx.StaticText(self, label='Connection Timeout Seconds'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.ConnectionTimeoutSeconds = intctrl.IntCtrl(
            self,
            min=1,
            max=60,
            limited=True,
            value=Impinj.ConnectionTimeoutSeconds,
            size=(100, -1),
            style=wx.TE_RIGHT)
        bs.Add(self.ConnectionTimeoutSeconds,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP)
        bs.Add(wx.StaticText(
            self, label='Maximum seconds to wait for a reader response.'),
               pos=(row, 2),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        row += 1
        bs.Add(wx.StaticText(self, label='Keepalive Seconds'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.KeepaliveSeconds = intctrl.IntCtrl(self,
                                                min=1,
                                                max=60,
                                                limited=True,
                                                value=Impinj.KeepaliveSeconds,
                                                size=(100, -1),
                                                style=wx.TE_RIGHT)
        bs.Add(self.KeepaliveSeconds,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP)
        bs.Add(wx.StaticText(
            self,
            label=
            'Frequency of "heartbeat" messages indicating the reader is still connected.'
        ),
               pos=(row, 2),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        row += 1
        bs.Add(wx.StaticText(self, label='Repeat Seconds'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.RepeatSeconds = intctrl.IntCtrl(self,
                                             min=1,
                                             max=120,
                                             limited=True,
                                             value=Impinj.RepeatSeconds,
                                             size=(100, -1),
                                             style=wx.TE_RIGHT)
        bs.Add(self.RepeatSeconds,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP)
        bs.Add(wx.StaticText(
            self,
            label=
            'Interval in which multiple tag reads are considered "repeats" and not reported.'
        ),
               pos=(row, 2),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        self.fields = [
            'ConnectionTimeoutSeconds',
            'KeepaliveSeconds',
            'RepeatSeconds',
            'TagPopulation',
            'TransmitPower',
            'ReceiverSensitivity',
        ]

        row += 1
        bs.Add(wx.StaticLine(self), pos=(row, 0), span=(1, 3), flag=wx.EXPAND)

        row += 1
        self.playSoundsCheckbox = wx.CheckBox(self, label='Beep on Read')
        self.playSoundsCheckbox.SetValue(Utils.playBell)
        bs.Add(self.playSoundsCheckbox,
               pos=(row, 1),
               span=(1, 3),
               border=border,
               flag=wx.TOP | wx.LEFT | wx.RIGHT)

        row += 1
        bs.Add(wx.StaticLine(self), pos=(row, 0), span=(1, 3), flag=wx.EXPAND)

        row += 1
        self.restoreDefaultButton = wx.Button(self, label='Restore Defaults')
        self.restoreDefaultButton.Bind(wx.EVT_BUTTON, self.onRestoreDefault)
        bs.Add(self.restoreDefaultButton,
               pos=(row, 0),
               span=(1, 3),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER)

        row += 1
        bs.Add(wx.StaticText(
            self,
            label='Reminder: Press "Reset" for these changes to take effect.'),
               pos=(row, 0),
               span=(1, 3),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_RIGHT)

        self.okBtn = wx.Button(self, wx.ID_OK)
        self.Bind(wx.EVT_BUTTON, self.onOK, self.okBtn)

        self.cancelBtn = wx.Button(self, wx.ID_CANCEL)
        self.Bind(wx.EVT_BUTTON, self.onCancel, self.cancelBtn)

        row += 1
        hs = wx.BoxSizer(wx.HORIZONTAL)
        hs.Add(self.okBtn, border=border, flag=wx.ALL)
        self.okBtn.SetDefault()
        hs.Add(self.cancelBtn, border=border, flag=wx.ALL)

        bs.Add(hs, pos=(row, 0), span=(1, 3), flag=wx.ALIGN_RIGHT)

        self.SetSizerAndFit(bs)
        bs.Fit(self)

        self.CentreOnParent(wx.BOTH)
        self.SetFocus()
Beispiel #24
0
 def test_intctrlCtor(self):
     t1 = IC.IntCtrl(self.frame)
     t2 = IC.IntCtrl(self.frame, -1, 10)
     t3 = IC.IntCtrl(self.frame, value=32, min=32, max=72)
     t3.ChangeValue(16)
     self.assertTrue(not t3.IsInBounds())
Beispiel #25
0
 def initUI(self):
     panel = wx.Panel(self)
     sizer = wx.GridBagSizer(6, 5)
     # Destination settings
     dst_box = wx.StaticBox(panel, label="File System")
     dst_sizer = wx.StaticBoxSizer(dst_box, wx.VERTICAL)
     dst_grid = wx.GridBagSizer(3, 5)
     lbl_Source = wx.StaticText(panel, label="Source")
     self.txt_Source = wx.TextCtrl(panel)
     self.btn_Source = wx.Button(
         panel,
         label="Browse...",
         size=(-1, 20),
     )
     lbl_Destination = wx.StaticText(panel, label="Local/ Temp")
     self.txt_Destination = wx.TextCtrl(panel)
     self.btn_Destination = wx.Button(panel,
                                      label="Browse...",
                                      size=(-1, 20))
     lbl_ssh_key = wx.StaticText(panel, label="SCP Key")
     self.txt_ssh_key = wx.TextCtrl(panel)
     self.btn_ssh_key = wx.Button(panel, label="Browse...", size=(-1, 20))
     lbl_ssh_host = wx.StaticText(panel, label="SCP Host")
     self.txt_ssh_host = wx.TextCtrl(panel)
     lbl_username = wx.StaticText(panel, label="SCP User")
     self.txt_ssh_user = wx.TextCtrl(panel)
     lbl_password = wx.StaticText(panel, label="SCP Password")
     self.txt_ssh_pw = wx.TextCtrl(panel, style=wx.TE_PASSWORD)
     dst_grid.Add(lbl_Source,
                  pos=(0, 0),
                  flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(self.txt_Source,
                  pos=(0, 1),
                  span=(1, 3),
                  flag=wx.EXPAND | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(self.btn_Source,
                  pos=(0, 4),
                  flag=wx.RIGHT | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(lbl_Destination,
                  pos=(1, 0),
                  flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(self.txt_Destination,
                  pos=(1, 1),
                  span=(1, 3),
                  flag=wx.EXPAND | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(self.btn_Destination,
                  pos=(1, 4),
                  flag=wx.RIGHT | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(lbl_ssh_host,
                  pos=(2, 0),
                  flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(self.txt_ssh_host,
                  pos=(2, 1),
                  span=(1, 1),
                  flag=wx.EXPAND | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(lbl_ssh_key,
                  pos=(2, 2),
                  flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(self.txt_ssh_key,
                  pos=(2, 3),
                  span=(1, 1),
                  flag=wx.EXPAND | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(self.btn_ssh_key,
                  pos=(2, 4),
                  flag=wx.RIGHT | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(lbl_username,
                  pos=(3, 0),
                  flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(self.txt_ssh_user,
                  pos=(3, 1),
                  span=(1, 1),
                  flag=wx.EXPAND | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(lbl_password,
                  pos=(3, 2),
                  flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.Add(self.txt_ssh_pw,
                  pos=(3, 3),
                  span=(1, 1),
                  flag=wx.EXPAND | wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     dst_grid.AddGrowableCol(1)
     dst_grid.AddGrowableCol(3)
     dst_sizer.Add(dst_grid, flag=wx.EXPAND)
     sizer.Add(dst_sizer,
               pos=(0, 0),
               span=(1, 5),
               flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT,
               border=0)
     # Run params
     run_box = wx.StaticBox(panel, label="Run")
     run_sizer = wx.StaticBoxSizer(run_box, wx.VERTICAL)
     run_grid = wx.GridSizer(3, 4, 5, 5)
     lbl_cell_id = wx.StaticText(panel, label="Flo-Cell ID")
     self.txt_cell_id = wx.TextCtrl(panel,
                                    style=wx.TE_RIGHT,
                                    size=(80, -1),
                                    value=self.app.cell_id)
     lbl_cell_type = wx.StaticText(panel, label="Flo-Cell Type")
     self.txt_cell_type = wx.TextCtrl(panel,
                                      style=wx.TE_RIGHT,
                                      size=(80, -1),
                                      value=self.app.cell_type)
     lbl_kit = wx.StaticText(panel, label="Sequencing Kit")
     self.txt_kit = wx.TextCtrl(panel,
                                style=wx.TE_RIGHT,
                                size=(80, -1),
                                value=self.app.kit)
     lbl_usr1 = wx.StaticText(panel, label="User Field 1")
     self.txt_usr1 = wx.TextCtrl(panel,
                                 style=wx.TE_RIGHT,
                                 size=(60, -1),
                                 value=self.app.usr1)
     lbl_usr2 = wx.StaticText(panel, label="User Field 2")
     self.txt_usr2 = wx.TextCtrl(panel,
                                 style=wx.TE_RIGHT,
                                 size=(60, -1),
                                 value=self.app.usr2)
     run_grid.Add(lbl_cell_id, flag=wx.ALIGN_CENTER_VERTICAL, border=5)
     run_grid.Add(self.txt_cell_id)
     run_grid.Add(lbl_usr1, flag=wx.ALIGN_CENTER_VERTICAL, border=5)
     run_grid.Add(self.txt_usr1)
     run_grid.Add(lbl_cell_type, flag=wx.ALIGN_CENTER_VERTICAL, border=5)
     run_grid.Add(self.txt_cell_type)
     run_grid.Add(lbl_usr2, flag=wx.ALIGN_CENTER_VERTICAL, border=5)
     run_grid.Add(self.txt_usr2)
     run_grid.Add(lbl_kit, flag=wx.ALIGN_CENTER_VERTICAL, border=5)
     run_grid.Add(self.txt_kit)
     run_sizer.Add(run_grid, flag=wx.EXPAND)
     sizer.Add(run_sizer,
               pos=(1, 0),
               span=(1, 5),
               flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT,
               border=0)
     # Options
     opt_box = wx.StaticBox(panel, label="Options")
     opt_sizer = wx.StaticBoxSizer(opt_box, wx.VERTICAL)
     opt_grid = wx.GridSizer(4, 4, 5, 5)
     self.chk_recursive = wx.CheckBox(panel, label="Recursive")
     self.chk_igexist = wx.CheckBox(panel, label="Ignore Existing")
     lbl_batch_size = wx.StaticText(panel, label="Batch size")
     lbl_batch_offset = wx.StaticText(panel, label="Batch offset")
     lbl_delay = wx.StaticText(panel, label="Delay")
     self.int_batch_size = intctrl.IntCtrl(panel,
                                           style=wx.TE_RIGHT,
                                           size=(80, -1),
                                           value=self.app.batch_size)
     self.int_batch_offset = intctrl.IntCtrl(panel,
                                             style=wx.TE_RIGHT,
                                             size=(60, -1),
                                             value=self.app.batch_offset)
     self.int_delay = intctrl.IntCtrl(panel,
                                      style=wx.TE_RIGHT,
                                      size=(80, -1),
                                      value=self.app.delay)
     lbl_file_regex = wx.StaticText(panel, label="File regex")
     lbl_batch_prefix = wx.StaticText(panel, label="Batch prefix")
     self.txt_file_regex = wx.TextCtrl(panel,
                                       style=wx.TE_RIGHT,
                                       size=(80, -1),
                                       value=self.app.regex)
     self.txt_batch_prefix = wx.TextCtrl(panel,
                                         style=wx.TE_RIGHT,
                                         size=(60, -1),
                                         value=self.app.batch_prefix)
     opt_grid.Add(self.chk_recursive,
                  flag=wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     opt_grid.Add(self.chk_igexist, flag=wx.ALIGN_CENTER_VERTICAL, border=5)
     opt_grid.Add(wx.StaticText(panel))
     opt_grid.Add(wx.StaticText(panel))
     opt_grid.Add(lbl_batch_size, flag=wx.ALIGN_CENTER_VERTICAL, border=5)
     opt_grid.Add(self.int_batch_size,
                  flag=wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     opt_grid.Add(lbl_batch_offset, flag=wx.ALIGN_CENTER_VERTICAL, border=5)
     opt_grid.Add(self.int_batch_offset,
                  flag=wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     opt_grid.Add(lbl_file_regex, flag=wx.ALIGN_CENTER_VERTICAL, border=5)
     opt_grid.Add(self.txt_file_regex,
                  flag=wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     opt_grid.Add(lbl_batch_prefix, flag=wx.ALIGN_CENTER_VERTICAL, border=5)
     opt_grid.Add(self.txt_batch_prefix,
                  flag=wx.ALIGN_CENTER_VERTICAL,
                  border=5)
     opt_grid.Add(lbl_delay, flag=wx.ALIGN_CENTER_VERTICAL, border=5)
     opt_grid.Add(self.int_delay, flag=wx.ALIGN_CENTER_VERTICAL, border=5)
     opt_sizer.Add(opt_grid, flag=wx.EXPAND)
     sizer.Add(opt_sizer,
               pos=(2, 0),
               span=(1, 5),
               flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT,
               border=0)
     # Log
     self.txt_log = wx.TextCtrl(panel, style=wx.TE_MULTILINE)
     self.txt_log.Disable()
     sizer.Add(self.txt_log,
               pos=(3, 0),
               span=(1, 5),
               flag=wx.EXPAND,
               border=5)
     # Flow Control
     self.btn_Start = wx.Button(panel, label="Start")
     sizer.Add(self.btn_Start, pos=(4, 3))
     self.btn_Stop = wx.Button(panel, label="Stop")
     self.btn_Stop.Disable()
     sizer.Add(self.btn_Stop,
               pos=(4, 4),
               span=(1, 1),
               flag=wx.BOTTOM | wx.RIGHT,
               border=5)
     sizer.AddGrowableCol(2)
     sizer.AddGrowableRow(3)
     panel.SetSizer(sizer)
     self.panel = panel
Beispiel #26
0
    def __init__(self, parent, id=wx.ID_ANY, title='', size=(200, 200)):
        wx.Frame.__init__(self, parent, id, title, size=size)

        self.config = wx.Config(
            appName="CrossMgrAlien",
            vendorName="SmartCyclingSolutions",
            #style=wx.CONFIG_USE_LOCAL_FILE
        )

        self.SetBackgroundColour(wx.Colour(232, 232, 232))

        self.LightGreen = wx.Colour(153, 255, 153)
        self.LightRed = wx.Colour(255, 153, 153)

        font = self.GetFont()
        bigFont = wx.Font(font.GetPointSize() * 1.5, font.GetFamily(),
                          font.GetStyle(), wx.FONTWEIGHT_BOLD)
        titleFont = wx.Font(bigFont.GetPointSize() * 2.2, bigFont.GetFamily(),
                            bigFont.GetStyle(), bigFont.GetWeight())

        self.vbs = wx.BoxSizer(wx.VERTICAL)

        bs = wx.BoxSizer(wx.HORIZONTAL)

        self.reset = RoundButton(self, wx.ID_ANY, 'Reset', size=(80, 80))
        self.reset.SetBackgroundColour(wx.WHITE)
        self.reset.SetForegroundColour(wx.Colour(0, 128, 128))
        self.reset.SetFontToFitLabel(
        )  # Use the button's default font, but change the font size to fit the label.
        self.reset.Bind(wx.EVT_BUTTON, self.doReset)
        self.reset.Refresh()
        bs.Add(self.reset, border=8, flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL)
        bs.Add(setFont(titleFont,
                       wx.StaticText(self, wx.ID_ANY, 'CrossMgrAlien')),
               border=8,
               flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL)
        bs.AddStretchSpacer()
        bitmap = wx.Bitmap(clipboard_xpm)
        self.copyToClipboard = wx.BitmapButton(self, wx.ID_ANY, bitmap)
        self.copyToClipboard.SetToolTip(
            wx.ToolTip('Copy Configuration and Logs to Clipboard...'))
        self.copyToClipboard.Bind(wx.EVT_BUTTON, self.doCopyToClipboard)
        bs.Add(self.copyToClipboard,
               border=32,
               flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL)
        self.tStart = datetime.datetime.now()
        bs.Add(setFont(
            bigFont,
            wx.StaticText(
                self, wx.ID_ANY,
                'Last Reset: {}'.format(self.tStart.strftime('%H:%M:%S')))),
               border=10,
               flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL)
        self.runningTime = setFont(bigFont,
                                   wx.StaticText(self, wx.ID_ANY, '00:00:00'))
        bs.Add(self.runningTime,
               border=20,
               flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL)
        bs.Add(setFont(bigFont, wx.StaticText(self, wx.ID_ANY, ' / ')),
               flag=wx.ALIGN_CENTER_VERTICAL)
        self.time = setFont(bigFont, wx.StaticText(self, wx.ID_ANY,
                                                   '00:00:00'))
        bs.Add(self.time, flag=wx.ALIGN_CENTER_VERTICAL)

        self.vbs.Add(bs, flag=wx.ALL | wx.EXPAND, border=4)

        fgs = wx.FlexGridSizer(rows=0, cols=2, vgap=4, hgap=4)
        fgs.AddGrowableRow(1)
        fgs.AddGrowableCol(0)
        fgs.AddGrowableCol(1)
        fgs.SetFlexibleDirection(wx.BOTH)

        self.vbs.Add(fgs, flag=wx.EXPAND, proportion=5)

        #------------------------------------------------------------------------------------------------
        # Alien configuration.
        #
        gbs = wx.GridBagSizer(4, 4)
        fgs.Add(gbs, flag=wx.EXPAND | wx.ALL, border=4)

        iRow = 0
        hs = wx.BoxSizer(wx.HORIZONTAL)
        hs.Add(setFont(bigFont,
                       wx.StaticText(self, wx.ID_ANY, 'Alien Configuration:')),
               flag=wx.ALIGN_CENTER_VERTICAL)
        self.autoDetectButton = wx.Button(self, wx.ID_ANY, 'Auto Detect')
        self.autoDetectButton.Bind(wx.EVT_BUTTON, self.doAutoDetect)
        hs.Add(self.autoDetectButton,
               flag=wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
               border=6)

        self.advancedButton = wx.Button(self, wx.ID_ANY, 'Advanced...')
        self.advancedButton.Bind(wx.EVT_BUTTON, self.doAdvanced)
        hs.Add(self.advancedButton, flag=wx.LEFT, border=6)

        gbs.Add(hs, pos=(iRow, 0), span=(1, 2), flag=wx.ALIGN_LEFT)
        iRow += 1

        gbs.Add(wx.StaticText(self, wx.ID_ANY, 'Antennas:'),
                pos=(iRow, 0),
                span=(1, 1),
                flag=wx.ALIGN_RIGHT | wx.ALIGN_BOTTOM)

        gs = wx.GridSizer(rows=0, cols=4, hgap=2, vgap=2)
        self.antennas = []
        for i in range(4):
            gs.Add(wx.StaticText(self, wx.ID_ANY, '{}'.format(i)),
                   flag=wx.ALIGN_CENTER)
        for i in range(4):
            cb = wx.CheckBox(self, wx.ID_ANY, '')
            if i < 2:
                cb.SetValue(True)
            cb.Bind(wx.EVT_CHECKBOX, lambda x: self.getAntennaStr())
            gs.Add(cb, flag=wx.ALIGN_CENTER)
            self.antennas.append(cb)

        gbs.Add(gs, pos=(iRow, 1), span=(1, 1), flag=wx.ALIGN_CENTER_VERTICAL)

        iRow += 1

        gbs.Add(wx.StaticText(self, wx.ID_ANY, 'Notify Address:'),
                pos=(iRow, 0),
                span=(1, 1),
                flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL)

        hb = wx.BoxSizer(wx.HORIZONTAL)
        ips = Utils.GetAllIps()
        self.notifyHost = wx.Choice(self, choices=ips)
        hb.Add(self.notifyHost)
        hb.Add(wx.StaticText(self, label=' : {}'.format(NotifyPort)),
               flag=wx.ALIGN_CENTER_VERTICAL)
        gbs.Add(hb, pos=(iRow, 1), span=(1, 1))

        iRow += 1
        self.listenForHeartbeat = wx.CheckBox(
            self,
            label='Listen for Alien Heartbeat on Port: {}'.format(
                HeartbeatPort),
            style=wx.ALIGN_LEFT)
        self.listenForHeartbeat.SetValue(True)
        gbs.Add(self.listenForHeartbeat, pos=(iRow, 0), span=(1, 2))

        iRow += 1
        gbs.Add(wx.StaticText(self, label='Alien Cmd Address:'),
                pos=(iRow, 0),
                span=(1, 1),
                flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL)
        hb = wx.BoxSizer(wx.HORIZONTAL)
        self.cmdHost = IpAddrCtrl(self, wx.ID_ANY, style=wx.TE_PROCESS_TAB)

        hb.Add(self.cmdHost)
        hb.Add(wx.StaticText(self, label=' : '), flag=wx.ALIGN_CENTER_VERTICAL)
        self.cmdPort = intctrl.IntCtrl(self, size=(50, -1), min=0, max=999999)
        hb.Add(self.cmdPort, flag=wx.ALIGN_CENTER_VERTICAL)
        gbs.Add(hb, pos=(iRow, 1), span=(1, 1), flag=wx.ALIGN_LEFT)

        iRow += 1
        gbs.Add(wx.StaticText(self, label='Backup File:'),
                pos=(iRow, 0),
                span=(1, 1),
                flag=wx.ALIGN_RIGHT)
        self.backupFile = wx.StaticText(self, label='')
        gbs.Add(self.backupFile,
                pos=(iRow, 1),
                span=(1, 1),
                flag=wx.ALIGN_LEFT)

        #------------------------------------------------------------------------------------------------
        # CrossMgr configuration.
        #
        gbs = wx.GridBagSizer(4, 4)
        fgs.Add(gbs, flag=wx.EXPAND | wx.ALL, border=4)

        gbs.Add(setFont(bigFont,
                        wx.StaticText(self, label='CrossMgr Configuration:')),
                pos=(0, 0),
                span=(1, 2),
                flag=wx.ALIGN_LEFT)
        gbs.Add(wx.StaticText(self, label='CrossMgr Address:'),
                pos=(1, 0),
                span=(1, 1),
                flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL)

        hb = wx.BoxSizer(wx.HORIZONTAL)
        self.crossMgrHost = IpAddrCtrl(self, style=wx.TE_PROCESS_TAB)
        hb.Add(self.crossMgrHost, flag=wx.ALIGN_LEFT)
        hb.Add(wx.StaticText(self, label=' : 53135'),
               flag=wx.ALIGN_CENTER_VERTICAL)
        gbs.Add(hb, pos=(1, 1), span=(1, 1), flag=wx.ALIGN_LEFT)

        #------------------------------------------------------------------------------------------------
        # Add messages
        #
        self.alienMessagesText = wx.TextCtrl(self,
                                             style=wx.TE_READONLY
                                             | wx.TE_MULTILINE | wx.HSCROLL,
                                             size=(-1, 400))
        fgs.Add(self.alienMessagesText, flag=wx.EXPAND, proportion=2)
        self.alienMessages = MessageManager(self.alienMessagesText)

        self.crossMgrMessagesText = wx.TextCtrl(self,
                                                style=wx.TE_READONLY
                                                | wx.TE_MULTILINE | wx.HSCROLL,
                                                size=(-1, 400))
        fgs.Add(self.crossMgrMessagesText, flag=wx.EXPAND, proportion=2)
        self.crossMgrMessages = MessageManager(self.crossMgrMessagesText)
        self.fgs = fgs

        #------------------------------------------------------------------------------------------------
        # Create a timer to update the messages.
        #
        self.timer = wx.Timer()
        self.timer.Bind(wx.EVT_TIMER, self.updateMessages)
        self.timer.Start(1000, False)

        self.Bind(wx.EVT_CLOSE, self.onCloseWindow)

        self.readOptions()

        self.SetSizer(self.vbs)
        self.start()
Beispiel #27
0
    def __init__(self, parent, id=wx.ID_ANY):
        wx.Dialog.__init__(self,
                           parent,
                           id,
                           "Advanced Setup",
                           style=wx.DEFAULT_DIALOG_STYLE | wx.TAB_TRAVERSAL)
        '''
		Alien.ConnectionTimeoutSeconds	= 1		# Interval for connection timeout
		Alien.KeepaliveSeconds			= 2		# Interval to request a Keepalive message
		Alien.RepeatSeconds			= 2		# Interval in which a tag is considered a repeat read.
		'''

        bs = wx.GridBagSizer(vgap=5, hgap=5)

        border = 8
        bs.Add(wx.StaticText(self, wx.ID_ANY, 'Advanced Reader Options:'),
               pos=(0, 0),
               span=(1, 2),
               border=border,
               flag=wx.ALL)

        row = 1
        bs.Add(wx.StaticText(self, wx.ID_ANY, 'Repeat Seconds'),
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_RIGHT
               | wx.ALIGN_CENTER_VERTICAL)
        self.RepeatSeconds = intctrl.IntCtrl(self,
                                             wx.ID_ANY,
                                             min=1,
                                             max=120,
                                             limited=True,
                                             value=Alien.RepeatSeconds,
                                             size=(32, -1))
        bs.Add(self.RepeatSeconds,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.TOP)
        bs.Add(wx.StaticText(
            self, wx.ID_ANY,
            'interval in which multiple tag reads are considered "repeats" and not reported'
        ),
               pos=(row, 2),
               span=(1, 1),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL)

        row += 1
        self.playSoundsCheckbox = wx.CheckBox(self, wx.ID_ANY, 'Beep on Read')
        self.playSoundsCheckbox.SetValue(Utils.playBell)
        bs.Add(self.playSoundsCheckbox,
               pos=(row, 0),
               span=(1, 3),
               border=border,
               flag=wx.TOP | wx.LEFT | wx.RIGHT)

        row += 1
        self.restoreDefaultButton = wx.Button(self, wx.ID_ANY,
                                              'Restore Defaults')
        self.restoreDefaultButton.Bind(wx.EVT_BUTTON, self.onRestoreDefault)
        bs.Add(self.restoreDefaultButton,
               pos=(row, 0),
               span=(1, 3),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_CENTER)

        row += 1
        bs.Add(wx.StaticText(
            self, wx.ID_ANY,
            'Reminder: Press "Reset" for these changes to take effect.'),
               pos=(row, 0),
               span=(1, 3),
               border=border,
               flag=wx.TOP | wx.RIGHT | wx.ALIGN_RIGHT)

        self.okBtn = wx.Button(self, wx.ID_OK)
        self.Bind(wx.EVT_BUTTON, self.onOK, self.okBtn)

        self.cancelBtn = wx.Button(self, wx.ID_CANCEL)
        self.Bind(wx.EVT_BUTTON, self.onCancel, self.cancelBtn)

        row += 1
        hs = wx.BoxSizer(wx.HORIZONTAL)
        hs.Add(self.okBtn, border=border, flag=wx.ALL)
        self.okBtn.SetDefault()
        hs.Add(self.cancelBtn, border=border, flag=wx.ALL)

        bs.Add(hs, pos=(row, 0), span=(1, 3), flag=wx.ALIGN_RIGHT)

        self.SetSizerAndFit(bs)
        bs.Fit(self)

        self.CentreOnParent(wx.BOTH)
        self.SetFocus()
    def InitUI(self):

        self.file_object = file_object()

        ##############
        ## Menu Bar
        ##############
        menubar = wx.MenuBar()
        fileMenu = wx.Menu()

        ## Add items to file menu.
        open_item = fileMenu.Append(wx.ID_OPEN, "&Open",
                                    "Open Excel or .csv File")
        self.Bind(wx.EVT_MENU, self.OnOpen, open_item)

        fileMenu.AppendSeparator()

        quit_item = fileMenu.Append(wx.ID_EXIT, '&Quit', 'Quit Application')
        self.Bind(wx.EVT_MENU, self.OnQuit, quit_item)

        ## Add file menu to the menu bar.
        menubar.Append(fileMenu, "&File")
        ## Put menu bar in frame.
        self.SetMenuBar(menubar)

        panel = wx.Panel(self)

        vbox = wx.BoxSizer(wx.VERTICAL)

        settings_flexbox = wx.FlexGridSizer(3, 2, 10, 10)

        ## Add a status bar to the bottom for reporting messages.
        #self.statusbar = self.CreateStatusBar()

        ##############
        ## Current File Display
        ##############
        current_file_header = wx.StaticText(panel, label="Current File:")
        self.current_file_label = wx.StaticText(panel, label="")

        vbox.Add(current_file_header,
                 flag=wx.ALIGN_LEFT | wx.LEFT | wx.TOP,
                 border=10)
        vbox.Add(self.current_file_label,
                 flag=wx.ALIGN_LEFT | wx.LEFT,
                 border=10)

        ##############
        ## Current Sheet Name
        ##############
        current_sheet_header = wx.StaticText(panel, label="Current Sheet:")
        self.current_sheet_label = wx.StaticText(panel, label="")

        vbox.Add(current_sheet_header,
                 flag=wx.ALIGN_LEFT | wx.LEFT | wx.TOP,
                 border=10)
        vbox.Add(self.current_sheet_label,
                 flag=wx.ALIGN_LEFT | wx.LEFT,
                 border=10)

        ##############
        ## Start Row
        ##############
        start_row_label = wx.StaticText(panel, label="Start Row:")
        self.start_row_entry = INTCTRL.IntCtrl(
            panel, value=self.file_object.start_row, min=1, limited=True)

        #self.start_row_entry.Bind(wx.EVT_TEXT, self.On_Start_Row)

        #vbox.Add(start_row_label, flag=wx.ALIGN_LEFT | wx.LEFT | wx.TOP, border=10)
        #vbox.Add(self.start_row_entry, flag=wx.ALIGN_LEFT | wx.LEFT, border=10)

        ##############
        ## Columns Type
        ##############
        columns_type_label = wx.StaticText(panel, label="Type of Columns:")
        self.columns_type_entry = wx.TextCtrl(panel, value="Compounds")

        #self.columns_type_entry.Bind(wx.EVT_TEXT, self.On_Columns_Type)

        #vbox.Add(columns_type_label, flag=wx.ALIGN_LEFT | wx.LEFT | wx.TOP, border=10)
        #vbox.Add(self.columns_type_entry, flag=wx.ALIGN_LEFT | wx.LEFT, border=10)

        ##############
        ## Values Type
        ##############
        values_type_label = wx.StaticText(panel, label="Type of Values:")
        self.values_type_entry = wx.TextCtrl(panel, value="Concentration")

        #self.values_type_entry.Bind(wx.EVT_TEXT, self.On_Values_Type)

        #vbox.Add(values_type_label, flag=wx.ALIGN_LEFT | wx.LEFT | wx.TOP, border=10)
        #vbox.Add(self.values_type_entry, flag=wx.ALIGN_LEFT | wx.LEFT, border=10)

        settings_flexbox.AddMany([
            (start_row_label, wx.ALIGN_BOTTOM | wx.EXPAND),
            (self.start_row_entry),
            (columns_type_label, wx.ALIGN_BOTTOM | wx.EXPAND),
            (self.columns_type_entry),
            (values_type_label, wx.ALIGN_BOTTOM | wx.EXPAND),
            (self.values_type_entry)
        ])

        vbox.Add(settings_flexbox, flag=wx.ALIGN_CENTER | wx.ALL, border=10)

        ##############
        ## Linearize Data Button
        ##############
        linearize_button = wx.Button(panel, label="Linearize Data")
        linearize_button.Bind(wx.EVT_BUTTON, self.OnLinearize)

        vbox.Add(linearize_button, flag=wx.ALIGN_CENTER | wx.ALL, border=10)

        panel.SetSizer(vbox)
        panel.Fit()
    def make_main_controls(self):
        """Create the controls on the frame
        """
        opt = self.options_data
        grid = wx.GridBagSizer(vgap=0, hgap=0)
        grid.SetFlexibleDirection(direction=wx.BOTH)
        grid.SetNonFlexibleGrowMode(mode=wx.FLEX_GROWMODE_SPECIFIED)

        choice_text = wx.StaticText(
            self,
            id=wx.ID_ANY,
            label=u"Choose type of lottery: ",
            pos=wx.Point(x=-1, y=-1),
            size=wx.DefaultSize,
            style=0,
        )
        choice_text.Wrap(width=-1)

        grid.Add(
            choice_text,
            pos=wx.GBPosition(row=1, col=1),
            span=wx.GBSpan(rowspan=1, colspan=1),
            flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL,
            border=5,
        )

        lottery_combo = wx.ComboBox(
            self,
            id=self.ID_LOTTERY_TYPE,
            value=C.LOTTERY_CHOICES[opt.lottery_type],
            pos=wx.DefaultPosition,
            size=wx.DefaultSize,
            choices=C.LOTTERY_CHOICES,
            style=wx.CB_READONLY,
        )

        grid.Add(
            lottery_combo,
            pos=wx.GBPosition(row=1, col=2),
            span=wx.GBSpan(rowspan=1, colspan=1),
            flag=wx.ALIGN_BOTTOM | wx.ALIGN_CENTER_VERTICAL,
            border=5,
        )

        lines_text = wx.StaticText(
            self,
            id=wx.ID_ANY,
            label=u"Lines: ",
            pos=wx.Point(x=-1, y=-1),
            size=wx.DefaultSize,
            style=0,
        )
        lines_text.Wrap(width=-1)
        grid.Add(
            lines_text,
            pos=wx.GBPosition(row=2, col=1),
            span=wx.GBSpan(rowspan=1, colspan=1),
            flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL,
            border=5,
        )

        lines_control = intctrl.IntCtrl(
            parent=self,
            value=opt.number_of_lines,
            pos=wx.DefaultPosition,
            size=wx.DefaultSize,
            style=0,
            validator=wx.DefaultValidator,
            min=1,
            max=99,
            limited=True,
            allow_none=False,
            allow_long=False,
        )
        lines_control.SetMaxLength(len=2)
        lines_control.SetMaxSize(size=wx.Size(30, -1))
        grid.Add(
            lines_control,
            pos=wx.GBPosition(row=2, col=2),
            span=wx.GBSpan(rowspan=1, colspan=1),
            flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL,
            border=5,
        )

        radio_box = wx.RadioBox(
            self,
            id=wx.ID_ANY,
            label=u"Options",
            pos=wx.DefaultPosition,
            size=wx.DefaultSize,
            choices=C.OPTIONS_CHOICES,
            majorDimension=1,
            style=wx.RA_SPECIFY_ROWS | wx.BORDER_RAISED,
        )
        radio_box.SetSelection(n=opt.option)
        flags = wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL | wx.ALL
        grid.Add(
            radio_box,
            pos=wx.GBPosition(row=3, col=1),
            span=wx.GBSpan(rowspan=1, colspan=2),
            flag=flags,
            border=5,
        )

        button_sizer = wx.StdDialogButtonSizer()
        ok_button = wx.Button(parent=self, id=wx.ID_OK)
        button_sizer.AddButton(button=ok_button)
        cancel_button = wx.Button(parent=self, id=wx.ID_CANCEL)
        button_sizer.AddButton(button=cancel_button)
        button_sizer.Realize()
        grid.Add(
            button_sizer,
            pos=wx.GBPosition(row=5, col=1),
            span=wx.GBSpan(rowspan=1, colspan=2),
            flag=wx.ALIGN_CENTER_HORIZONTAL,
            border=5,
        )

        self.SetSizer(grid)
        lottery_combo.Bind(event=wx.EVT_COMBOBOX,
                           handler=self.on_type_combo,
                           id=self.ID_LOTTERY_TYPE)
        self.Bind(event=intctrl.EVT_INT,
                  handler=self.on_line_control,
                  source=lines_control)
        radio_box.Bind(event=wx.EVT_RADIOBOX, handler=self.on_radiobox)
        self.Bind(event=wx.EVT_BUTTON,
                  handler=self.on_ok,
                  source=ok_button,
                  id=wx.ID_OK)
        self.Bind(
            event=wx.EVT_BUTTON,
            handler=self.on_cancel,
            source=cancel_button,
            id=wx.ID_CANCEL,
        )
Beispiel #30
0
    def __init__(self, parent, size, listener):
        wx.Panel.__init__(self, parent, size=size)

        self.listener = listener

        ## Header
        self.header = wx.StaticText(self, -1, "Controls")
        headerFont = wx.Font(16, wx.DECORATIVE, wx.NORMAL, wx.BOLD)
        self.header.SetFont(headerFont)

        ## Config input
        configFileText = wx.StaticText(self, -1, "Config:")
        self.configFilename = wx.FilePickerCtrl(
            self,
            path=os.path.abspath(DEFAULT_CONFIG_FILENAME),
            size=(200, -1))
        configFileSizer = wx.BoxSizer(wx.HORIZONTAL)

        configFileSizer.Add(configFileText)  # label
        configFileSizer.Add((20, -1), proportion=1)  # spacing
        configFileSizer.Add(self.configFilename)

        ##  Start button
        self.startButton = wx.Button(self, id=ID_START, label="&Initialize")
        self.Bind(wx.EVT_BUTTON, self.listener.OnStart, self.startButton)

        ## Run rounds, steps inputs
        rounds_label = wx.StaticText(self, -1, "Rounds: ")
        self.rounds_input = intctrl.IntCtrl(self,
                                            size=(40, -1),
                                            value=0,
                                            min=0)
        steps_label = wx.StaticText(self, -1, "Steps: ")
        self.steps_input = intctrl.IntCtrl(self, size=(40, -1), value=1, min=0)

        ## Run button
        self.runButton = wx.Button(self, id=ID_RUN, label="&Run")
        self.Bind(wx.EVT_BUTTON, self.OnRun, self.runButton)

        runConfigSizer = wx.BoxSizer(wx.HORIZONTAL)
        runConfigSizer.Add(rounds_label)
        runConfigSizer.Add(self.rounds_input)
        runConfigSizer.Add((10, -1))  # padding
        runConfigSizer.Add(steps_label)
        runConfigSizer.Add(self.steps_input)
        runConfigSizer.Add((20, -1), proportion=1)  # padding
        runConfigSizer.Add(self.runButton)

        ##  Stop button
        self.stopButton = wx.Button(self, id=ID_STOP, label="S&top")
        self.Bind(wx.EVT_BUTTON, self.listener.OnStop, self.stopButton)

        # Sizer

        controlsSizer = wx.BoxSizer(wx.VERTICAL)
        controlsSizer.Add(self.header)
        controlsSizer.Add(configFileSizer)
        controlsSizer.Add(self.startButton)
        controlsSizer.Add(runConfigSizer)
        controlsSizer.Add(self.stopButton)

        self.SetSizerAndFit(controlsSizer)

        self.reset_buttons()