Ejemplo n.º 1
0
 def _check_inputs(self, event=None):
     methods_used_name = self.methods_used_textctrl.GetValue()
     settings_name     = self.settings_textctrl.GetValue()
     new_name = make_strategy_name(methods_used_name, settings_name)
     # ZERO LENGTH
     if len(methods_used_name) < 1 or len(settings_name) < 1:
         self.warning_text.SetLabel(pt.AT_LEAST_ONE_CHARACTER)
         self.ok_button.Enable(False)
         return
     self.save_as_text.SetLabel(pt.STRATEGY_SAVE_AS + 
                                new_name)
     new_methods_used_name = make_methods_used_name(new_name)
     new_settings_name     = make_settings_name(new_name)
     # CUSTOM IN NAME
     if  pt.CUSTOM_LC in new_name:
         self.warning_text.SetLabel(pt.MAY_NOT_CONTAIN_CUSTOM)
         self.ok_button.Enable(False)
         return
     # METHODS USED NAME ALREADY USED
     if (pt.CUSTOM_LC in make_methods_used_name(self.old_name) and 
         new_methods_used_name in self.all_methods_used_names):
         self.warning_text.SetLabel(pt.METHODS_USED_NAME_ALREADY_USED % 
                                    new_methods_used_name)
         self.ok_button.Enable(False)
         return
     # SETTINGS NAME ALREADY USED
     if (new_settings_name in get_unique_settings_names(self.all_names,
                                                   new_methods_used_name)):
         self.warning_text.SetLabel(pt.SETTINGS_NAME_ALREADY_USED % 
                                    new_settings_name)
         self.ok_button.Enable(False)
         return
     self.warning_text.SetLabel(pt.OK_TO_SAVE)
     self.ok_button.Enable(True)
Ejemplo n.º 2
0
def get_unique_settings_names(names_list, methods_used_name):
    unique_names = set()
    for name in names_list:
        if make_methods_used_name(name) == methods_used_name:
            fname = make_settings_name(name)
        else:
            fname = pt.CUSTOM_LC
        unique_names.add(fname)
    return list(unique_names)
Ejemplo n.º 3
0
    def __init__(self, parent, old_name, all_names, **kwargs):
        wx.Dialog.__init__(self, parent, **kwargs)

        self.old_name  = old_name
        self.all_names = all_names

        # get all unique methods_used names
        self.all_methods_used_names = get_unique_methods_used_names(all_names) 
        
        methods_used_name = make_methods_used_name(old_name)
        settings_name    = make_settings_name(old_name)

        # SAVE AS TEXT
        self.save_as_text = wx.StaticText(self, 
                            label=pt.STRATEGY_SAVE_AS)
        font = self.save_as_text.GetFont()
        font.SetWeight(wx.FONTWEIGHT_BOLD)
        font.SetPointSize(16)
        self.save_as_text.SetFont(font)

        # METHODS USED TEXTCTRL
        self.methods_used_textctrl = NamedTextCtrl(self, 
                name=pt.METHODS_USED_NAME,
                validator=CharacterSubsetValidator(valid_strategy_characters))
        self.methods_used_textctrl.SetTextctrlSize((200,-1))
        self.methods_used_textctrl.SetValue(methods_used_name)
        if not old_name.lower().startswith(pt.CUSTOM_LC):
            self.methods_used_textctrl.Enable(False)

        # SETTINGS TEXTCTRL
        self.settings_textctrl   = NamedTextCtrl(self, name=pt.SETTINGS_NAME,
                validator=CharacterSubsetValidator(valid_strategy_characters))
        self.settings_textctrl.SetTextctrlSize((200,-1))
        self.settings_textctrl.SetValue(settings_name)

        # WARNING TEXT
        self.warning_text = wx.StaticText(self, label='')

        # BUTTONS
        self.ok_button = wx.Button(self, id=wx.ID_OK)
        cancel_button  = wx.Button(self, id=wx.ID_CANCEL)

        button_sizer = wx.BoxSizer(orient=wx.HORIZONTAL)
        flag = wx.ALL|wx.EXPAND
        border = 5
        button_sizer.Add(cancel_button,  proportion=0, flag=flag, border=border)
        button_sizer.Add(self.ok_button, proportion=0, flag=flag, border=border)

        sizer = wx.BoxSizer(orient=wx.VERTICAL)
        flag = wx.ALL|wx.ALIGN_CENTER_VERTICAL|wx.EXPAND
        sizer.Add(self.save_as_text,         proportion=0, flag=flag, border=15)
        sizer.Add(self.methods_used_textctrl, proportion=0, flag=flag, border=5)
        sizer.Add(self.settings_textctrl,    proportion=0, flag=flag, border=5)
        sizer.Add(button_sizer,              proportion=0, flag=wx.ALIGN_RIGHT)
        sizer.Add(self.warning_text,         proportion=0, flag=flag, border=5)
        self.SetSizerAndFit(sizer)

        self.Bind(wx.EVT_TEXT, self._check_inputs, 
                  self.methods_used_textctrl.text_ctrl)
        self.Bind(wx.EVT_TEXT, self._check_inputs, 
                  self.settings_textctrl.text_ctrl)
        self._check_inputs()