def __init__(self, parent, log, data=None, model=None):
        self.log = log
        wx.Panel.__init__(self, parent, -1)

        # Create a dataview control
        self.dvc = dv.DataViewCtrl(self,
                                   style=wx.BORDER_THEME
                                   | dv.DV_ROW_LINES # nice alternating bg colors
                                   #| dv.DV_HORIZ_RULES
                                   | dv.DV_VERT_RULES
                                   | dv.DV_MULTIPLE
                                   )
        
        # Create an instance of our model...
        if model is None:
            self.model = MyTreeListModel(data, log)
        else:
            self.model = model            

        # Tel the DVC to use the model
        self.dvc.AssociateModel(self.model)

        # Define the columns that we want in the view.  Notice the 
        # parameter which tells the view which col in the data model to pull
        # values from for each view column.
        if 1:
            self.tr = tr = dv.DataViewTextRenderer()
            c0 = dv.DataViewColumn("Genre",   # title
                                   tr,        # renderer
                                   0,         # data model column
                                   width=80)
            self.dvc.AppendColumn(c0)
        else:
            self.dvc.AppendTextColumn("Genre",   0, width=80)
            
        c1 = self.dvc.AppendTextColumn("Artist",   1, width=170, mode=dv.DATAVIEW_CELL_EDITABLE)
        c2 = self.dvc.AppendTextColumn("Title",    2, width=260, mode=dv.DATAVIEW_CELL_EDITABLE)
        c3 = self.dvc.AppendDateColumn('Acquired', 4, width=100, mode=dv.DATAVIEW_CELL_ACTIVATABLE)
        c4 = self.dvc.AppendToggleColumn('Like',   5, width=40, mode=dv.DATAVIEW_CELL_ACTIVATABLE)
        
        # Notice how we pull the data from col 3, but this is the 6th col
        # added to the DVC. The order of the view columns is not dependent on
        # the order of the model columns at all.
        c5 = self.dvc.AppendTextColumn("id", 3, width=40,  mode=dv.DATAVIEW_CELL_EDITABLE)
        c5.Alignment = wx.ALIGN_RIGHT
        
        # Set some additional attributes for all the columns
        for c in self.dvc.Columns:
            c.Sortable = True
            c.Reorderable = True

            
        self.Sizer = wx.BoxSizer(wx.VERTICAL)
        self.Sizer.Add(self.dvc, 1, wx.EXPAND)
        
        b1 = wx.Button(self, label="New View", name="newView")
        self.Bind(wx.EVT_BUTTON, self.OnNewView, b1)
        
        self.Sizer.Add(b1, 0, wx.ALL, 5)
예제 #2
0
 def initialize(self, cb_wallet):
     self.GOOD_BMP = Bitmap(file_path("gui/good.bmp"))
     self.BAD_BMP = Bitmap(file_path("gui/bad.bmp"))
     self.m_choice_nwords.Set(WORDSLEN_LIST)
     self.m_choice_nwords.SetSelection(0)
     ctab = self.m_dataViewListCtrl1
     dv1 = dataview.DataViewColumn("Name", dataview.DataViewTextRenderer(),
                                   0)
     dv1.SetWidth(125)
     ctab.AppendColumn(dv1)
     dv2 = dataview.DataViewColumn("Account",
                                   dataview.DataViewTextRenderer(), 1)
     dv2.SetWidth(372)
     ctab.AppendColumn(dv2)
     dv3 = dataview.DataViewColumn("Balance",
                                   dataview.DataViewTextRenderer(), 2)
     dv3.SetWidth(86)
     ctab.AppendColumn(dv3)
     self.cb_wallet = cb_wallet
예제 #3
0
    def init_dvc(self, results):

        data = dict()
        for r in results:
            v_result = ViewResult(r)
            for i in r.iterations:
                v_iteration = ViewIteration(i, r)
                v_result.iterations.append(v_iteration)
            data[r.name] = v_result

        data = data.values()

        # Create an instance of our model...
        self.model = MyTreeListModel(data)

        self.data = data
        # Tel the DVC to use the model
        self.dvc.AssociateModel(self.model)

        # Define the columns that we want in the view.  Notice the
        # parameter which tells the view which col in the data model to pull
        # values from for each view column.
        self.tr = tr = dv.DataViewTextRenderer()
        tr.EnableEllipsize()
        tr.SetAlignment(0)
        c0 = dv.DataViewColumn(
            L('VIEW_OPTION_RESULTS'),  # title
            tr,  # renderer
            0,  # data model column
            width=200)
        self.dvc.AppendColumn(c0)

        c1 = self.dvc.AppendTextColumn(L('VIEW_ITERATION_F_R'), 1, width=200)
        c1.Alignment = wx.ALIGN_CENTRE

        self.dvc.AppendToggleColumn(L('VIEW_ITERATION_OPTION'),
                                    2,
                                    width=20,
                                    mode=dv.DATAVIEW_CELL_ACTIVATABLE)

        # Set some additional attributes for all the columns
        for c in self.dvc.Columns:
            c.Sortable = True
            c.Reorderable = True

        for node in self.model.getParentItem():
            self.dvc.Expand(node)
예제 #4
0
    def __init__(self,
                 parent,
                 log,
                 files_name_text,
                 select_list,
                 input_file_name,
                 model_excel_name,
                 data=None,
                 model=None):
        self.log = log
        wx.Panel.__init__(self, parent, -1)
        self.files_name_text = files_name_text

        self.input_file_name = input_file_name
        self.model_excel_name = model_excel_name

        # Create a dataview control
        self.dvc = dv.DataViewCtrl(
            self,
            style=wx.BORDER_THEME
            | dv.DV_ROW_LINES  # nice alternating bg colors
            #| dv.DV_HORIZ_RULES
            | dv.DV_VERT_RULES
            | dv.DV_MULTIPLE)

        # Create an instance of our model...
        if model is None:
            self.model = MyTreeListModel(data, log)
        else:
            self.model = model

        # Tel the DVC to use the model
        self.dvc.AssociateModel(self.model)

        # Define the columns that we want in the view.  Notice the
        # parameter which tells the view which col in the data model to pull
        # values from for each view column.
        if 0:
            self.tr = tr = dv.DataViewTextRenderer()
            c0 = dv.DataViewColumn(
                "Genre",  # title
                tr,  # renderer
                0,  # data model column
                width=80)
            self.dvc.AppendColumn(c0)
        else:
            self.dvc.AppendTextColumn("File name", 0, width=250)

        #c1 = self.dvc.AppendTextColumn("Artist",   1, width=170, mode=dv.DATAVIEW_CELL_EDITABLE)
        c2 = self.dvc.AppendTextColumn("Title",
                                       2,
                                       width=80,
                                       mode=dv.DATAVIEW_CELL_EDITABLE)
        #c3 = self.dvc.AppendDateColumn('index', 4, width=100, mode=dv.DATAVIEW_CELL_ACTIVATABLE)
        c4 = self.dvc.AppendToggleColumn('select',
                                         5,
                                         width=40,
                                         mode=dv.DATAVIEW_CELL_ACTIVATABLE)

        # Notice how we pull the data from col 3, but this is the 6th col
        # added to the DVC. The order of the view columns is not dependent on
        # the order of the model columns at all.
        c5 = self.dvc.AppendTextColumn("id",
                                       3,
                                       width=40,
                                       mode=dv.DATAVIEW_CELL_EDITABLE)
        #c5.Alignment = wx.ALIGN_RIGHT

        # Set some additional attributes for all the columns
        for c in self.dvc.Columns:
            c.Sortable = True
            c.Reorderable = True

        self.Sizer = wx.BoxSizer(wx.VERTICAL)
        self.Sizer.Add(self.dvc, 1, wx.EXPAND)

        #b1 = wx.Button(self, label="Open File", name="openFile")
        #self.Bind(wx.EVT_BUTTON, self.OnOpen, b1)

        #b2 = wx.Button(self, label="Del File", name="delFile")
        #self.Bind(wx.EVT_BUTTON, self.onDel, b2)

        b3 = wx.Button(self, label="Save File", name="saveFile")
        self.Bind(wx.EVT_BUTTON, self.OnSave, b3)

        #b4 = wx.Button(self, label="New View", name="newView")
        #self.Bind(wx.EVT_BUTTON, self.OnNewView, b4)

        btnbox = wx.BoxSizer(wx.HORIZONTAL)
        #btnbox.Add(b1, 0, wx.LEFT|wx.RIGHT, 5)
        #btnbox.Add(b2, 0, wx.LEFT|wx.RIGHT, 5)
        btnbox.Add(b3, 0, wx.LEFT | wx.RIGHT, 5)
        #btnbox.Add(b4, 0, wx.LEFT|wx.RIGHT, 5)
        self.Sizer.Add(btnbox, 0, wx.TOP | wx.BOTTOM, 5)
예제 #5
0
 def test_dataviewRenderer03(self):
     r = dv.DataViewTextRenderer()
예제 #6
0
    def __init__(self, *args, **kargs):
        page = kargs.pop('page', None)
        parent = kargs.pop('parent', None)
        title = kargs.pop('title', 'HDF export')
        path = kargs.pop('path', os.path.join(os.getcwd(), 'data.hdf'))
        dataset = kargs.pop('dataset', None)
        metadata = kargs.pop('metadata', OrderedDict())
        export_flag = kargs.pop('export_flag', {})
        if dataset is None:
            if page is None:
                return
            dataset, metadata, export_flag = build_data(
                page,
                verbose=False,
                metadata=metadata,
                export_flag=export_flag)
        style = (wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX
                 | wx.RESIZE_BORDER)
        if parent is not None:
            style = style | wx.FRAME_FLOAT_ON_PARENT

        wx.Frame.__init__(self,
                          *args,
                          style=style,
                          title=title,
                          parent=parent,
                          size=(400, 500))

        self.SetSizer(wx.BoxSizer(wx.VERTICAL))
        hsizer = wx.BoxSizer(wx.HORIZONTAL)
        self.GetSizer().Add(hsizer, 1, wx.EXPAND, 0)
        panel = wx.Panel(self)
        hsizer.Add(panel, 1, wx.EXPAND)

        panel.SetSizer(wx.BoxSizer(wx.VERTICAL))
        sizer = panel.GetSizer()
        sizer_h = wx.BoxSizer(wx.HORIZONTAL)

        wildcard = "HDF(hdf)|*.hdf|Any|*.*"
        self.filepicker = wx.FilePickerCtrl(panel,
                                            style=wx.FLP_SAVE
                                            | wx.FLP_USE_TEXTCTRL,
                                            path=path,
                                            wildcard=wildcard)
        self.sp = wx.SplitterWindow(panel,
                                    wx.ID_ANY,
                                    style=wx.SP_NOBORDER | wx.SP_LIVE_UPDATE
                                    | wx.SP_3DSASH)
        self.dataviewCtrl = dv.DataViewCtrl(self.sp,
                                            style=(wx.BORDER_THEME
                                                   | dv.DV_ROW_LINES
                                                   | dv.DV_VERT_RULES))

        self.model = HDFDataModel(export_flag=export_flag,
                                  dataset=dataset,
                                  metadata=metadata)
        self.dataviewCtrl.AssociateModel(self.model)

        self.tr = tr = dv.DataViewTextRenderer()
        c0 = dv.DataViewColumn(
            "name",  # title
            tr,  # renderer
            0,  # data model column
            width=200)
        self.dataviewCtrl.AppendColumn(c0)

        #        self.dataviewCtrl.AppendTextColumn('name', 0,
        #                                           width = 150,
        #                                           mode=dv.DATAVIEW_CELL_ACTIVATABLE)
        c1 = self.dataviewCtrl.AppendToggleColumn(
            'export', 1, width=70, mode=dv.DATAVIEW_CELL_ACTIVATABLE)
        c2 = self.dataviewCtrl.AppendTextColumn(
            'value', 2, width=100, mode=dv.DATAVIEW_CELL_ACTIVATABLE)
        c3 = self.dataviewCtrl.AppendTextColumn(
            'shape', 3, mode=dv.DATAVIEW_CELL_ACTIVATABLE)
        #c4 = self.dataviewCtrl.AppendTextColumn('metadata', 4,
        #                                        mode=dv.DATAVIEW_CELL_ACTIVATABLE)
        for c in self.dataviewCtrl.Columns:
            c.Sortable = True
            c.Reorderable = True
        c1.Alignment = wx.ALIGN_CENTER

        #from ifigure.widgets.var_viewerg2 import _PropertyGrid

        self.grid = pg.PropertyGrid(self.sp)

        #self.btn_load = wx.Button(self, label = 'Load')
        self.choices = [
            'Options...', 'No Property', 'Minimum properties', 'All properties'
        ]
        self.cb = wx.ComboBox(panel,
                              wx.ID_ANY,
                              style=wx.TE_PROCESS_ENTER | wx.CB_READONLY,
                              choices=self.choices)
        self.cb.SetValue(self.choices[0])
        self.btn_export = wx.Button(panel, label='Export...')

        sizer.Add(self.filepicker, 0, wx.EXPAND | wx.ALL, 1)
        sizer.Add(self.sp, 1, wx.EXPAND | wx.ALL, 5)
        sizer.Add(sizer_h, 0, wx.EXPAND | wx.ALL, 5)

        #sizer_h.Add(self.btn_load, 0,   wx.EXPAND|wx.ALL, 1)
        sizer_h.Add(self.cb, 0, wx.EXPAND | wx.ALL, 1)
        sizer_h.AddStretchSpacer(prop=1)
        sizer_h.Add(self.btn_export, 0, wx.EXPAND | wx.ALL, 1)

        self.Layout()
        self.Show()

        self.sp.SetMinimumPaneSize(30)
        self.sp.SplitHorizontally(self.dataviewCtrl, self.grid)
        self.sp.SetSashPosition(300)
        #        self.Bind(dv.EVT_DATAVIEW_ITEM_VALUE_CHANGED,
        #                  self.onDataChanged, self.dataviewCtrl)
        self.Bind(dv.EVT_DATAVIEW_SELECTION_CHANGED, self.onSelChanged,
                  self.dataviewCtrl)

        # self.Bind(dv.EVT_DATAVIEW_ITEM_COLLAPSING,
        #          self.onCollapsing, self.dataviewCtrl)

        self.grid.Bind(pg.EVT_PG_CHANGED, self.onPGChanged, self.grid)
        self.Bind(wx.EVT_BUTTON, self.onExport, self.btn_export)
        self.Bind(wx.EVT_COMBOBOX, self.onCBHit, self.cb)
        self.Bind(wx.EVT_CLOSE, self.onWindowClose)

        self.page = page
        wx.GetApp().TopWindow.hdf_export_window = self
예제 #7
0
    def __init__(self, parent, data=None, model=None):

        wx.Panel.__init__(self, parent, size=(600, 250))

        self.anuncio = None
        self.parent = parent
        self.dvc = dv.DataViewCtrl(self,
                                   style=wx.BORDER_THEME
                                   | dv.DV_ROW_LINES
                                   | dv.DV_VERT_RULES
                                   | dv.DV_MULTIPLE)

        self.model = None
        if model is None:
            if data:
                self.model = MyTreeListModel(data)
        else:
            self.model = model

        # Tel the DVC to use the model
        if self.model:
            self.dvc.AssociateModel(self.model)

        self.tr = tr = dv.DataViewTextRenderer()
        c0 = dv.DataViewColumn(
            "Bloque",  # title
            tr,  # renderer
            0,  # data model column
            width=250)
        self.dvc.AppendColumn(c0)
        # else:
        # self.dvc.AppendTextColumn("Bloque",   0, width=80)

        c3 = self.dvc.AppendTextColumn('Inicio',
                                       1,
                                       width=200,
                                       mode=dv.DATAVIEW_CELL_ACTIVATABLE)
        c4 = self.dvc.AppendTextColumn('Final',
                                       2,
                                       width=200,
                                       mode=dv.DATAVIEW_CELL_ACTIVATABLE)

        c1 = self.dvc.AppendTextColumn("Anuncio",
                                       3,
                                       width=300,
                                       mode=dv.DATAVIEW_CELL_ACTIVATABLE)
        c2 = self.dvc.AppendTextColumn("Marca",
                                       4,
                                       width=150,
                                       mode=dv.DATAVIEW_CELL_ACTIVATABLE)

        c5 = self.dvc.AppendTextColumn("id",
                                       5,
                                       width=40,
                                       mode=dv.DATAVIEW_CELL_ACTIVATABLE)

        # Notice how we pull the data from col 3, but this is the 6th col
        # added to the DVC. The order of the view columns is not dependent on
        # the order of the model columns at all.

        # c5.Alignment = wx.ALIGN_RIGHT

        # Set some additional attributes for all the columns

        for i, c in enumerate(self.dvc.Columns):
            c.Sortable = True
            c.Reorderable = True

        self.Sizer = wx.BoxSizer(wx.VERTICAL)
        self.Sizer.Add(self.dvc, 1, wx.EXPAND)
        self.Bind(dv.EVT_DATAVIEW_ITEM_ACTIVATED, self.OnClick)

        b1 = wx.Button(self, label="Vista Completa", name="vistacompleta")
        self.Bind(wx.EVT_BUTTON, self.OnNewView, b1)

        self.Sizer.Add(b1, 0, wx.ALL, 5)