예제 #1
0
    def DoCreateResource(self):
        assert self.GetInstance() is None

        w = gizmos.EditableListBox(self.GetParentAsWindow(), self.GetID(),
                                   self.GetText("label"), self.GetPosition(),
                                   self.GetSize(), self.GetStyle(),
                                   self.GetName())

        # Doesn't work
        #self.insideBox = True
        #self.CreateChildrenPrivately(None, self.GetParamNode('content'))
        #self.insideBox = False

        # Long way
        strings = []
        n = self.GetParamNode('content')
        if n: n = n.GetChildren()
        while n:
            if n.GetType() != xrc.XML_ELEMENT_NODE or n.GetName() != "item":
                n = n.GetNext()
                continue
            strings.append(n.GetNodeContent())
            n = n.GetNext()
        w.SetStrings(strings)
        self.SetupWindow(w)
        return w
예제 #2
0
    def _init_ui(self):
        self.panel = wx.Panel(self)
        msizer = wx.BoxSizer(wx.VERTICAL)
        self.elb = gizmos.EditableListBox(self.panel,
                                          -1,
                                          label=self.label,
                                          size=(250, 250))
        if self.string_list is None:
            self.string_list = []
        self.elb.SetStrings(self.string_list)

        msizer.Add(self.elb, 1, wx.EXPAND | wx.ALL, 5)

        hbox = wx.BoxSizer(wx.HORIZONTAL)
        cancel_btn = wx.Button(self.panel, label='Cancel')
        ok_btn = wx.Button(self.panel, label='OK')
        hbox.Add(cancel_btn, 0)
        hbox.Add(ok_btn, 0, wx.LEFT, 10)

        msizer.Add(hbox, 0, wx.ALIGN_CENTER | wx.ALL, 5)

        self.panel.SetSizer(msizer)

        self.Bind(wx.EVT_BUTTON, self.on_cancel, cancel_btn)
        self.Bind(wx.EVT_BUTTON, self.on_ok, ok_btn)
예제 #3
0
    def __init__(self, parent, id, title, values):
        wx.Dialog.__init__(self,
                           parent,
                           id,
                           title,
                           pos=(50, 50),
                           size=(250, 250),
                           style=wx.DEFAULT_FRAME_STYLE)

        self.parent = parent

        panel = wx.Panel(self, wx.ID_ANY)
        vbox = wx.BoxSizer(wx.VERTICAL)

        self.elb = gizmos.EditableListBox(panel, wx.ID_ANY,
                                          _("Dictionary manager"))

        D = eval(values) if values != '' else {}

        self.elb.SetStrings(
            map(lambda a, b: "('%s','%s')" % (str(a), str(b)), D.keys(),
                D.values()))

        vbox.Add(self.elb, 1, wx.EXPAND | wx.ALL)
        panel.SetSizer(vbox)
        self.Center()

        self.elb.Bind(wx.EVT_LIST_END_LABEL_EDIT, self.OnExcludesChange)

        ### just for window http://wiki.wxpython.org/wxPython%20Platform%20Inconsistencies#New_frames_not_showing_widgets_correctly_under_MS_Windows
        e = wx.SizeEvent(self.GetSize())
        self.ProcessEvent(e)
예제 #4
0
    def _init_ctrls(self, parent):
        self.DecYear = wx.Button(self, -1, '<<', size=(48, 36))
        self.DecYear.Bind(wx.EVT_BUTTON, self.OnDecYear)
        self.DecMonth = wx.Button(self, -1, ' < ', size=(48, 36))
        self.DecMonth.Bind(wx.EVT_BUTTON, self.OnDecMonth)
        self.Current = wx.Button(self, -1, 'Today')
        self.Current.Bind(wx.EVT_BUTTON, self.OnCurrent)
        self.IncMonth = wx.Button(self, -1, ' > ', size=(48, 36))
        self.IncMonth.Bind(wx.EVT_BUTTON, self.OnIncMonth)
        self.IncYear = wx.Button(self, -1, '>>', size=(48, 36))
        self.IncYear.Bind(wx.EVT_BUTTON, self.OnIncYear)
        bsizer = wx.BoxSizer(wx.HORIZONTAL)
        bsizer.Add(self.DecYear, 0, wx.ALL, 2)
        bsizer.Add(self.DecMonth, 0, wx.ALL, 2)
        bsizer.Add(self.Current, 1, wx.ALL | wx.EXPAND, 2)
        bsizer.Add(self.IncMonth, 0, wx.ALL, 2)
        bsizer.Add(self.IncYear, 0, wx.ALL, 2)

        self.Calendar = Calendar(self, -1, size=(200, 300))
        self.Calendar.Bind(wx.lib.calendar.EVT_CALENDAR, self.OnCalendarChange)
        self.Calendar.SetCurrentDay()
        self.Calendar.grid_color = 'BLUE'
        self.Calendar.SetBusType()

        self.FBB = FileBrowseButton(self,
                                    size=(450, -1),
                                    changeCallback=self.OnFBBChange)
        self.FBB.SetLabel('Symbols File:')

        self.DBB = DirBrowseButton(self,
                                   size=(450, -1),
                                   changeCallback=self.OnDBBChange)
        self.DBB.SetLabel('Prices Folder:')

        self.ListBox = gizmos.EditableListBox(
            self,
            -1,
            #              style=gizmos.EL_DEFAULT_STYLE | gizmos.EL_NO_REORDER
        )
        self.ListBox.GetUpButton().Show(False)
        self.ListBox.GetDownButton().Show(False)
        self.ListBox.Bind(wx.EVT_LIST_DELETE_ITEM, self.OnSymbolListChange)
        self.ListBox.Bind(wx.EVT_LIST_INSERT_ITEM, self.OnSymbolListChange)

        self.Download = wx.Button(self, wx.OK, 'Download Prices')
        self.Download.Bind(wx.EVT_BUTTON, self.OnDownload)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.AddSizer(bsizer, 0, wx.LEFT | wx.RIGHT | wx.EXPAND, 5)
        sizer.AddWindow(self.Calendar, 0, wx.LEFT | wx.RIGHT | wx.EXPAND, 5)
        sizer.AddWindow(self.FBB, 0, wx.ALL | wx.EXPAND, 5)
        sizer.AddWindow(self.DBB, 0, wx.ALL | wx.EXPAND, 5)
        sizer.AddWindow(self.ListBox, 1, wx.ALL | wx.EXPAND, 5)
        sizer.AddWindow(self.Download, 0, wx.ALL | wx.ALIGN_RIGHT, 5)
        self.SetSizer(sizer)
예제 #5
0
    def __init__(self, parent, log):
        wx.Panel.__init__(self, parent, -1)
        self.log = log

        self.elb = gizmos.EditableListBox(self, -1, "List of Stuff", (50, 50),
                                          (250, 250))
        #style=wx.EL_ALLOW_NEW | wx.EL_ALLOW_EDIT | wx.EL_ALLOW_DELETE)

        self.elb.SetStrings([
            "This is a nifty ListBox widget",
            "that is editable by the user.",
            "",
            "Use the buttons above to",
            "manipulate items in the list",
            "Or to add new ones.",
        ])
예제 #6
0
파일: t9editor.py 프로젝트: deosai/bitpim
 def __init__(self, mainwindow, parent):
     super(T9EditorWidget, self).__init__(parent, -1)
     self._mw=mainwindow
     self._t9list=T9WordsList()
     self.ignoredirty=False
     self.dirty=False
     # main box sizer
     vbs=wx.BoxSizer(wx.VERTICAL)
     # horizontal sizer for the main contents
     hbs=wx.BoxSizer(wx.HORIZONTAL)
     _svbs=wx.StaticBoxSizer(wx.StaticBox(self, -1, 'T9 Keys'),
                             wx.VERTICAL)
     self._keys_lb=wx.ListBox(self, -1,
                              style=wx.LB_SINGLE|wx.LB_HSCROLL|wx.LB_NEEDED_SB)
     wx.EVT_LISTBOX(self, self._keys_lb.GetId(), self._OnSelectKey)
     _svbs.Add(self._keys_lb, 1, wx.EXPAND|wx.ALL, 5)
     hbs.Add(_svbs, 1, wx.EXPAND|wx.ALL, 5)
     self._words_w=gizmos.EditableListBox(self, -1, 'T9 Words:', style=0)
     self._words_lb=self._words_w.GetListCtrl()
     wx.EVT_BUTTON(self._words_w, self._words_w.GetUpButton().GetId(),
                   self._OnUpDown)
     wx.EVT_BUTTON(self._words_w, self._words_w.GetDownButton().GetId(),
                   self._OnUpDown)
     hbs.Add(self._words_w, 3, wx.EXPAND|wx.ALL, 5)
     vbs.Add(hbs, 1, wx.EXPAND|wx.ALL, 5)
     vbs.Add(wx.StaticLine(self, -1), 0, wx.EXPAND|wx.TOP|wx.BOTTOM, 5)
     hbs=wx.BoxSizer(wx.HORIZONTAL)
     self._save_btn=wx.Button(self, wx.ID_SAVE)
     hbs.Add(self._save_btn, 0,
             wx.ALIGN_CENTRE|wx.ALL, 5)
     hbs.Add(wx.Button(self, wx.ID_HELP), 0,
             wx.ALIGN_CENTRE|wx.ALL, 5)
     self._revert_btn=wx.Button(self, wx.ID_REVERT_TO_SAVED)
     hbs.Add(self._revert_btn, 0,
             wx.ALIGN_CENTRE|wx.ALL, 5)
     wx.EVT_BUTTON(self, wx.ID_SAVE, self._OnSave)
     wx.EVT_BUTTON(self, wx.ID_REVERT_TO_SAVED, self._OnRevert)
     wx.EVT_BUTTON(self, wx.ID_HELP,
                   lambda _: wx.GetApp().displayhelpid(self.help_id))
     vbs.Add(hbs, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
     self.SetSizer(vbs)
     self.SetAutoLayout(True)
     vbs.Fit(self)
     # populate data
     self._populate()
     # turn on dirty flag
     self.setdirty(False)
예제 #7
0
파일: main.py 프로젝트: raj347/iocbio
    def __init__(self, parent, ID, tasks):
        wx.Panel.__init__ (self, parent, ID)
        GlobalAttr.__init__(self, parent)

        self.elb = elb = gizmos.EditableListBox (self, wx.ID_ANY, "Tasks/parameters - select and press operation button")
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add (elb, 1, wx.EXPAND|wx.ALL)
        self.SetSizer(sizer)

        self.lst_ctrl = lst_ctrl = elb.GetListCtrl()
        lst_ctrl.Bind (wx.EVT_LIST_END_LABEL_EDIT, self.OnEndLabelEdit)
        lst_ctrl.Bind (wx.EVT_LIST_DELETE_ITEM, self.OnItemDelete)

        elb.GetDownButton().Bind(wx.EVT_BUTTON, self.OnDown)
        elb.GetUpButton().Bind(wx.EVT_BUTTON, self.OnUp)

        self.tasks = []
        self.set_tasks (tasks)
예제 #8
0
 def __init__(self, mainwindow, parent):
     super(SMSWidget, self).__init__(parent, -1)
     self._main_window = mainwindow
     #self._data=self._canned_data={}
     self._data = {}
     self._parent = parent
     self.sms_tree_nodes = {}
     # main box sizer
     vbs = wx.BoxSizer(wx.VERTICAL)
     # data date adjuster
     hbs = wx.BoxSizer(wx.HORIZONTAL)
     self.read_only = False
     self.historical_date = None
     static_bs = wx.StaticBoxSizer(
         wx.StaticBox(self, -1, 'Historical Data Status:'), wx.VERTICAL)
     self.historical_data_label = wx.StaticText(self, -1, 'Current Data')
     static_bs.Add(self.historical_data_label, 1, wx.EXPAND | wx.ALL, 5)
     hbs.Add(static_bs, 1, wx.EXPAND | wx.ALL, 5)
     vbs.Add(hbs, 0, wx.EXPAND | wx.ALL, 5)
     static_bs1 = wx.StaticBoxSizer(
         wx.StaticBox(self, -1, 'Canned Messages:'), wx.HORIZONTAL)
     self.canned_list = gizmos.EditableListBox(
         self, -1, 'User Defined Canned Messages:')
     static_bs1.Add(self.canned_list, 1, wx.EXPAND | wx.ALL, 5)
     vbs1 = wx.BoxSizer(wx.VERTICAL)
     vbs1.Add(wx.StaticText(self, -1, '  Built-in Canned Messages:'), 0,
              wx.ALL, 0)
     self.builtin_canned_list = wx.ListBox(self, -1)
     vbs1.Add(self.builtin_canned_list, 1, wx.EXPAND | wx.ALL, 5)
     static_bs1.Add(vbs1, 1, wx.EXPAND | wx.ALL, 5)
     vbs.Add(static_bs1, 1, wx.EXPAND | wx.ALL, 5)
     self.save_btn = wx.Button(self, wx.ID_SAVE)
     vbs.Add(self.save_btn, 0, wx.ALIGN_CENTRE | wx.ALL, 5)
     self.list_widget = SMSList(self._main_window, self._parent, self)
     wx.EVT_BUTTON(self, self.save_btn.GetId(), self.OnSaveCannedMsg)
     # all done
     self.SetSizer(vbs)
     self.SetAutoLayout(True)
     vbs.Fit(self)
예제 #9
0
    def __init__(self, items, parent=None):
        wx.Dialog.__init__(self, parent, title=_('Edit text section order'), style=wx.RESIZE_BORDER|wx.DEFAULT_DIALOG_STYLE)
        self.SetMinSize((400, -1))
        self.SetSize(self.GetMinSize())
        self.items = items

        self.elb = gizmos.EditableListBox(self, -1, _("Text sections"), style=0)
        self.elb.SetStrings(items)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.elb, 1, wx.ALIGN_CENTRE|wx.ALL|wx.EXPAND, 5)

        btnsizer = wx.StdDialogButtonSizer()
        btn = wx.Button(self, wx.ID_OK)
        btn.SetDefault()
        btnsizer.AddButton(btn)
        btn = wx.Button(self, wx.ID_CANCEL)
        btnsizer.AddButton(btn)
        btnsizer.Realize()

        sizer.Add(btnsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5)
        self.SetSizer(sizer)
        sizer.Fit(self)
        self.Layout()
    def __init__(self, parent, categorie="", IDmodele=None):
        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER
                           | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX
                           | wx.THICK_FRAME)
        self.parent = parent
        self.categorie = categorie
        self.IDmodele = IDmodele
        self.defaut = 0

        # Généralités
        self.staticbox_generalites_staticbox = wx.StaticBox(
            self, -1, _(u"Généralités"))
        self.label_nom = wx.StaticText(self, -1, _(u"Nom :"))
        self.ctrl_nom = wx.TextCtrl(self, -1, u"")
        self.label_description = wx.StaticText(self, -1, _(u"Description :"))
        self.ctrl_description = wx.TextCtrl(self,
                                            -1,
                                            u"",
                                            style=wx.TE_MULTILINE)

        # Options
        self.staticbox_options_staticbox = wx.StaticBox(
            self, -1, _(u"Options"))
        self.label_taille = wx.StaticText(self, -1, _(u"Taille de police :"))
        self.ctrl_taille = wx.SpinCtrl(self, -1, "", size=(60, -1))
        self.ctrl_taille.SetRange(1, 200)
        self.ctrl_taille.SetValue(15)
        self.label_interligne = wx.StaticText(self, -1, _(u"Interligne :"))
        self.ctrl_interligne = wx.SpinCtrl(self, -1, "", size=(60, -1))
        self.ctrl_interligne.SetRange(1, 200)
        self.ctrl_interligne.SetValue(5)
        self.label_imprimante = wx.StaticText(self, -1, _(u"Imprimante :"))
        self.ctrl_imprimante = CTRL_Imprimante(self)

        # Mots-clés
        self.listeMotsCles = []
        for dictCategorie in CATEGORIES:
            if dictCategorie["code"] == self.categorie:
                self.listeMotsCles = dictCategorie["motscles"]

        self.staticbox_motscles_staticbox = wx.StaticBox(
            self, -1, _(u"Mots-clés disponibles"))
        self.ctrl_motscles = wx.ListBox(self,
                                        -1,
                                        choices=self.listeMotsCles,
                                        style=wx.SIMPLE_BORDER)
        self.ctrl_motscles.SetBackgroundColour("#F0FBED")

        # texte
        self.staticbox_texte_staticbox = wx.StaticBox(self, -1, _(u"Ticket"))
        self.ctrl_editeur = gizmos.EditableListBox(
            self, -1,
            _(u"Saisissez ci-dessous les lignes à imprimer sur le ticket"))
        self.ctrl_editeur.GetDelButton().SetToolTipString(
            _(u"Supprimer la ligne sélectionnée"))
        self.ctrl_editeur.GetDownButton().SetToolTipString(
            _(u"Descendre la ligne sélectionnée"))
        self.ctrl_editeur.GetUpButton().SetToolTipString(
            _(u"Monter la ligne sélectionnée"))
        self.ctrl_editeur.GetEditButton().SetToolTipString(
            _(u"Editer la ligne sélectionnée"))
        self.ctrl_editeur.GetNewButton().SetToolTipString(
            _(u"Insérer une nouvelle ligne"))

        # Commandes
        self.bouton_aide = CTRL_Bouton_image.CTRL(
            self, texte=_(u"Aide"), cheminImage="Images/32x32/Aide.png")
        self.bouton_apercu = CTRL_Bouton_image.CTRL(
            self,
            texte=_(u"Imprimer un ticket de test"),
            cheminImage="Images/32x32/Imprimante.png")
        self.bouton_ok = CTRL_Bouton_image.CTRL(
            self, texte=_(u"Ok"), cheminImage="Images/32x32/Valider.png")
        self.bouton_annuler = CTRL_Bouton_image.CTRL(
            self,
            id=wx.ID_CANCEL,
            texte=_(u"Annuler"),
            cheminImage="Images/32x32/Annuler.png")

        self.__set_properties()
        self.__do_layout()

        ##        self.Bind(wx.EVT_LISTBOX_DCLICK, self.OnInsertMotcle, self.ctrl_motscles)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonApercu, self.bouton_apercu)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonAide, self.bouton_aide)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonOk, self.bouton_ok)

        if self.IDmodele != None:
            self.SetTitle(_(u"Modification d'un modèle de ticket"))
            self.Importation()
        else:
            self.SetTitle(_(u"Saisie d'un modèle de ticket"))
예제 #11
0
파일: playlist.py 프로젝트: deosai/bitpim
 def __init__(self, mainwindow, parent):
     super(PlaylistWidget, self).__init__(parent, -1)
     self._mw=mainwindow
     self._data=[]
     self._master=[]
     self.ignoredirty=False
     self.dirty=False
     # main box sizer
     vbs=wx.BoxSizer(wx.VERTICAL)
     # horizontal sizer for the main contents
     hbs=wx.BoxSizer(wx.HORIZONTAL)
     # the list box
     self._item_list=gizmos.EditableListBox(self, -1, 'Play Lists:',
                                            style=gizmos.EL_ALLOW_NEW|\
                                            gizmos.EL_ALLOW_EDIT|\
                                            gizmos.EL_ALLOW_DELETE)
     self._item_list.GetUpButton().Show(False)
     self._item_list.GetDownButton().Show(False)
     self._item_list_w=self._item_list.GetListCtrl()
     hbs.Add(self._item_list, 1, wx.EXPAND|wx.ALL, border=5)
     hbs.Add(wx.StaticLine(self, -1, style=wx.LI_VERTICAL), 0,
             wx.EXPAND|wx.ALL, 5)
     # the detailed panel
     hbs1=wx.BoxSizer(wx.HORIZONTAL)
     # the playlist
     _vbs1=wx.BoxSizer(wx.VERTICAL)
     self._pl_list=gizmos.EditableListBox(self, -1, "Play List Content:",
                                          style=gizmos.EL_ALLOW_DELETE)
     self._pl_list_w=self._pl_list.GetListCtrl()
     _vbs1.Add(self._pl_list, 1, wx.EXPAND, 0)
     self._count_lbl=wx.StaticText(self, -1, '')
     _vbs1.Add(self._count_lbl, 0, wx.EXPAND|wx.TOP, 5)
     hbs1.Add(_vbs1, 1, wx.EXPAND|wx.ALL, 5)
     _add_btn=wx.Button(self, -1, '<-Add')
     hbs1.Add(_add_btn, 0, wx.ALL, 5)
     self._master_list=gizmos.EditableListBox(self, -1, 'Available Songs:', style=0)
     self._master_list_w=self._master_list.GetListCtrl()
     self._master_list.GetUpButton().Show(False)
     self._master_list.GetDownButton().Show(False)
     hbs1.Add(self._master_list, 1, wx.EXPAND|wx.ALL, 5)
     hbs.Add(hbs1, 3, wx.EXPAND|wx.ALL, 5)
     # the bottom buttons
     hbs1=wx.BoxSizer(wx.HORIZONTAL)
     self._save_btn=wx.Button(self, wx.ID_SAVE)
     self._revert_btn=wx.Button(self, wx.ID_REVERT_TO_SAVED)
     help_btn=wx.Button(self, wx.ID_HELP)
     hbs1.Add(self._save_btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
     hbs1.Add(help_btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
     hbs1.Add(self._revert_btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
     # all done
     vbs.Add(hbs, 1, wx.EXPAND|wx.ALL, 5)
     vbs.Add(wx.StaticLine(self, -1), 0, wx.EXPAND|wx.TOP|wx.BOTTOM, 5)
     vbs.Add(hbs1, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
     self.SetSizer(vbs)
     self.SetAutoLayout(True)
     vbs.Fit(self)
     # event handlers
     wx.EVT_LIST_ITEM_SELECTED(self._item_list, self._item_list_w.GetId(),
                               self.OnPlaylistSelected)
     wx.EVT_LIST_BEGIN_LABEL_EDIT(self._item_list, self._item_list_w.GetId(),
                                self.OnStartLabelChanged)
     wx.EVT_LIST_END_LABEL_EDIT(self._item_list, self._item_list_w.GetId(),
                                self.OnLabelChanged)
     wx.EVT_BUTTON(self, _add_btn.GetId(), self.OnAdd2Playlist)
     wx.EVT_BUTTON(self, self._save_btn.GetId(), self.OnSave)
     wx.EVT_BUTTON(self, self._revert_btn.GetId(), self.OnRevert)
     wx.EVT_LIST_DELETE_ITEM(self._item_list, self._item_list_w.GetId(),
                             self.OnMakeDirty)
     wx.EVT_LIST_DELETE_ITEM(self._pl_list, self._pl_list_w.GetId(),
                             self.OnMakeDirty)
     wx.EVT_BUTTON(self, wx.ID_HELP,
                   lambda _: wx.GetApp().displayhelpid(helpids.ID_TAB_PLAYLIST))
     wx.EVT_BUTTON(self._pl_list, self._pl_list.GetUpButton().GetId(),
                   self._OnUpDown)
     wx.EVT_BUTTON(self._pl_list, self._pl_list.GetDownButton().GetId(),
                   self._OnUpDown)
     # populate data
     self._populate()
     # turn on dirty flag
     self.setdirty(False)
예제 #12
0
    def __init__(self, parent):
        super(VirtualAttPanel, self).__init__(parent, id=wx.ID_ANY)

        self.vatts_list = wx.ListBox(
            self,
            wx.ID_ANY,
            style=wx.LB_SINGLE,
            choices=datastore.sample_attributes.virtual_atts())
        self.vattlabel = wx.StaticText(self, wx.ID_ANY,
                                       "<No Attribute Selected>")
        self.avail_list = wx.ListBox(self, wx.ID_ANY, style=wx.LB_EXTENDED)

        self.order_box = gizmos.EditableListBox(self,
                                                wx.ID_ANY,
                                                'Composes Attributes:',
                                                style=gizmos.EL_ALLOW_DELETE)

        self.add_att_button = wx.Button(self, wx.ID_ANY, "<--    Add    ---")
        self.add_button = wx.Button(self, wx.ID_ANY, "Add Hierarchy...")
        self.save_button = wx.Button(self, wx.ID_ANY, "Save Composition")
        self.add_att_button.Disable()
        self.order_box.Disable()

        colsizer = wx.BoxSizer(wx.HORIZONTAL)
        sz = wx.BoxSizer(wx.VERTICAL)
        sz.Add(wx.StaticText(self, wx.ID_ANY, "Hierarchies"),
               border=5,
               flag=wx.ALL)
        sz.Add(self.vatts_list,
               proportion=1,
               border=5,
               flag=wx.ALL | wx.EXPAND)
        colsizer.Add(sz, proportion=1, flag=wx.EXPAND)

        sz = wx.BoxSizer(wx.VERTICAL)
        sz.Add(self.vattlabel, border=5, flag=wx.ALL)
        sz.Add(self.order_box, proportion=1, border=5, flag=wx.ALL | wx.EXPAND)
        sz.Add(self.save_button, border=5, flag=wx.ALL)
        colsizer.Add(sz, proportion=1, flag=wx.EXPAND)

        sz = wx.BoxSizer(wx.VERTICAL)
        sz.Add(self.add_att_button.GetSize())
        sz.Add(self.add_att_button, border=5, flag=wx.ALL)
        sz.Add(self.add_att_button.GetSize())
        colsizer.Add(sz, flag=wx.ALIGN_CENTER_VERTICAL)

        sz = wx.BoxSizer(wx.VERTICAL)
        sz.Add(wx.StaticText(self, wx.ID_ANY, "Available Attributes"),
               border=5,
               flag=wx.ALL)
        sz.Add(self.avail_list,
               proportion=1,
               border=5,
               flag=wx.ALL | wx.EXPAND)
        colsizer.Add(sz, proportion=1, flag=wx.EXPAND)

        buttonsizer = wx.BoxSizer(wx.HORIZONTAL)
        buttonsizer.Add(self.add_button, border=5, flag=wx.ALL)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(buttonsizer, border=5, flag=wx.ALL | wx.ALIGN_LEFT)
        sizer.Add(colsizer, proportion=1, flag=wx.EXPAND)

        self.SetSizer(sizer)

        self.Bind(wx.EVT_BUTTON, self.add_vatt, self.add_button)
        self.Bind(wx.EVT_BUTTON, self.add_attribute, self.add_att_button)
        self.Bind(wx.EVT_LIST_DELETE_ITEM, self.remove_attribute,
                  self.order_box.GetListCtrl())
        self.Bind(wx.EVT_BUTTON, self.save_changes, self.save_button)

        self.Bind(wx.EVT_LISTBOX, self.select_vatt, self.vatts_list)

        self.Bind(events.EVT_REPO_CHANGED, self.on_repository_altered)
예제 #13
0
    def __init__(self, parent):
        super(ViewPanel, self).__init__(parent, id=wx.ID_ANY)

        self.views_list = wx.ListBox(self,
                                     wx.ID_ANY,
                                     style=wx.LB_SINGLE,
                                     choices=sorted(datastore.views.keys()))
        self.viewlabel = wx.StaticText(self, wx.ID_ANY, "<No View Selected>")
        self.avail_list = wx.ListBox(self, wx.ID_ANY, style=wx.LB_EXTENDED)
        self.save_button = wx.Button(self, wx.ID_ANY, "Save View")

        self.order_box = gizmos.EditableListBox(
            self,
            wx.ID_ANY,
            'Attributes in View:',
            style=(not gizmos.EL_ALLOW_DELETE))

        #TODO: use an ItemsPicker!
        #kinda gross hack to make these buttons the same size
        self.add_att_button = wx.Button(self, wx.ID_ANY, "<--    Add    ---")
        self.remove_att_button = wx.Button(self, wx.ID_ANY, "--- Remove -->")
        self.add_button = wx.Button(self, wx.ID_ANY, "Add View...")
        self.delete_button = wx.Button(self, wx.ID_ANY, "Delete View")
        self.add_att_button.Disable()
        self.remove_att_button.Disable()
        self.order_box.Disable()

        colsizer = wx.BoxSizer(wx.HORIZONTAL)
        sz = wx.BoxSizer(wx.VERTICAL)
        sz.Add(wx.StaticText(self, wx.ID_ANY, "Views"), border=5, flag=wx.ALL)
        sz.Add(self.views_list,
               proportion=1,
               border=5,
               flag=wx.ALL | wx.EXPAND)
        colsizer.Add(sz, proportion=1, flag=wx.EXPAND)

        sz = wx.BoxSizer(wx.VERTICAL)
        sz.Add(self.viewlabel, border=5, flag=wx.ALL)
        sz.Add(self.save_button, border=5, flag=wx.ALL)
        sz.Add(self.order_box, proportion=1, border=5, flag=wx.ALL | wx.EXPAND)
        colsizer.Add(sz, proportion=1, flag=wx.EXPAND)

        sz = wx.BoxSizer(wx.VERTICAL)
        sz.Add(self.add_att_button.GetSize())
        sz.Add(self.add_att_button, border=5, flag=wx.ALL)
        sz.Add(self.add_att_button.GetSize())
        sz.Add(self.remove_att_button, border=5, flag=wx.ALL)
        colsizer.Add(sz, flag=wx.ALIGN_CENTER_VERTICAL)

        sz = wx.BoxSizer(wx.VERTICAL)
        sz.Add(wx.StaticText(self, wx.ID_ANY, "Available Attributes"),
               border=5,
               flag=wx.ALL)
        sz.Add(self.avail_list,
               proportion=1,
               border=5,
               flag=wx.ALL | wx.EXPAND)
        colsizer.Add(sz, proportion=1, flag=wx.EXPAND)

        buttonsizer = wx.BoxSizer(wx.HORIZONTAL)
        buttonsizer.Add(self.add_button, border=5, flag=wx.ALL)
        buttonsizer.Add(self.delete_button, border=5, flag=wx.ALL)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(buttonsizer, border=5, flag=wx.ALL | wx.ALIGN_LEFT)
        sizer.Add(colsizer, proportion=1, flag=wx.EXPAND)

        self.SetSizer(sizer)

        self.Bind(wx.EVT_BUTTON, self.add_view, self.add_button)
        self.Bind(wx.EVT_BUTTON, self.delete_view, self.delete_button)
        self.Bind(wx.EVT_BUTTON, self.add_attribute, self.add_att_button)
        self.Bind(wx.EVT_BUTTON, self.remove_attribute, self.remove_att_button)

        self.Bind(wx.EVT_LISTBOX, self.select_view, self.views_list)
        self.order_box.Bind(wx.EVT_LIST_ITEM_SELECTED, self.select_for_remove)
        #self.Bind(wx.EVT_LIST_DELETE_ITEM, self.remove_attribute, self.order_box.GetListCtrl())
        self.Bind(wx.EVT_LISTBOX, self.select_for_add, self.avail_list)

        self.Bind(wx.EVT_BUTTON, self.save_changes, self.save_button)
        self.Bind(events.EVT_REPO_CHANGED, self.on_repository_altered)
예제 #14
0
 def __init__(self, parent):
     wx.Panel.__init__(self, parent)
     # create control
     self.ebox = gizmos.EditableListBox(self, -1, 'title')
     # bind right-click
     self.ebox.Bind(wx.EVT_CONTEXT_MENU, self.onEditableListBoxContextMenu)
예제 #15
0
    def __init__(self, parent):
        #TODO: this guy needs to be resizable!
        super(CreateMilieu, self).__init__(parent, wx.ID_ANY, 'Create Milieu')
        self.was_valid = None
        template_names = sorted(datastore.templates)

        name_label = wx.StaticText(self, wx.ID_ANY, "Milieu Name")
        type_label = wx.StaticText(self, wx.ID_ANY, "Based On")
        path_label = wx.StaticText(self, wx.ID_ANY, "Path to CSV File")

        curtype = template_names[0]
        self.name_box = wx.TextCtrl(self,
                                    wx.ID_ANY,
                                    size=(150, -1),
                                    validator=self.name_validator())
        self.type_box = wx.ComboBox(self,
                                    wx.ID_ANY,
                                    value=curtype,
                                    choices=template_names,
                                    style=wx.CB_DROPDOWN | wx.CB_READONLY,
                                    validator=self.content_validator(
                                        'GetValue',
                                        'Template name not specified!',
                                        'Template'))
        self.path_box = wx.FilePickerCtrl(
            self,
            wx.ID_ANY,
            wildcard='*.csv',
            message="Select a CSV File that contains data for this milieu",
            validator=self.content_validator('GetPath',
                                             'Problem with Path Name!',
                                             'Path'))
        self.order_box = gizmos.EditableListBox(self,
                                                wx.ID_ANY,
                                                'Select Field Order     ',
                                                style=0)  #just up/down buttons
        self.order_box.Strings = datastore.templates[curtype].keys()

        buttons = self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL)
        self.Bind(wx.EVT_COMBOBOX, self.change_template, self.type_box)

        sizer = wx.GridBagSizer(5, 5)
        sizer.Add(name_label,
                  pos=(1, 0),
                  span=(2, 1),
                  flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL)
        sizer.Add(type_label,
                  pos=(3, 0),
                  span=(2, 1),
                  flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL)
        sizer.Add(path_label,
                  pos=(5, 0),
                  span=(2, 1),
                  flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL)
        sizer.Add(self.name_box,
                  pos=(1, 1),
                  span=(2, 1),
                  flag=wx.SHAPED | wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        sizer.Add(self.type_box,
                  pos=(3, 1),
                  span=(2, 1),
                  flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        sizer.Add(self.path_box,
                  pos=(5, 1),
                  span=(2, 1),
                  flag=wx.SHAPED | wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        sizer.Add(self.order_box,
                  pos=(0, 2),
                  span=(7, 1),
                  flag=wx.EXPAND | wx.ALL)
        sizer.Add(buttons, pos=(7, 0), span=(1, 3), flag=wx.EXPAND | wx.ALL)
        sizer.AddGrowableRow(2)
        sizer.AddGrowableCol(2)
        self.SetSizer(sizer)
        sizer.Fit(self)