Ejemplo n.º 1
0
    def __init__(self, visualizers, id=-1,
                 x=1, y=5, texsave=True, 
                 zi=None, za=None, zp=10, # zoom (index, address, pad
                 size=(16,8), dpi=50,
                 ):
        visualizers = self.visualizers = toList(visualizers)
#        self.visualizers.reverse()
        
        title = "List Viewer"
        self.texsave = texsave
        
        N = visualizers[0].N
        if not all([v.N==N for v in visualizers[1:]]):
            raise ValueError("visualizers do not provide the same N of segments")
        
        # distribute segments into pages:
        y = min((y, N))
        self.shape = x, y
        n_per_page = self.n_per_page = x * y
        i_lists = []
        for i in range(0, N, n_per_page):
            i_lists.append(range(i, i + min(n_per_page, N-i)))
        self.i_lists = i_lists
        self.n = len(i_lists)
        
        
        
        self._zoom_events = zi
        self._zoom_address = za
        self._zoom_pad = zp
        self._zoom_window = None
        
    # init wx frame
        parent = wx.GetApp().shell
        title = "List Viewer"
        mpl_canvas.CanvasFrame.__init__(self, parent, title, size, dpi, 
                                        statusbar=True)
        # figure
        self.figure.subplots_adjust(left=.01, right=.99, bottom=.05, top=.95, 
                                 hspace=.5)
                
    # finalize
#        self._dataset = dataset
        self.show_page(0)
#        self.canvas.store_canvas()
        self.Show()
Ejemplo n.º 2
0
    def __init__(self, parent, visualizers, i=0, id=-1, size=(800,600)):
        title = self.title_stem = "Physio Viewer"#dataset.name
        wx.Frame.__init__(self, parent, id, title, size=size)
        
        self.visualizers = visualizers = toList(visualizers)
        datasets = self.datasets = [v.dataset for v in visualizers]
        self.active_dataset = datasets[0]
#        self.visualizers.reverse()
                
        
    # Toolbar
        tb = self.CreateToolBar(wx.TB_HORIZONTAL)
        tb.SetToolBitmapSize(size=(32,32))
        
        # select file
        tb.AddLabelTool(wx.ID_BACKWARD, "Back", Icon("tango/actions/go-previous"))
        self.Bind(wx.EVT_TOOL, self.OnBack, id=wx.ID_BACKWARD)
        tb.AddLabelTool(wx.ID_FORWARD, "Next", Icon("tango/actions/go-next"))
        self.Bind(wx.EVT_TOOL, self.OnNext, id=wx.ID_FORWARD)
        
        css = self.css = _ComboSegmentSelector(tb, datasets[0].segments, self)
        css.Bind(wx.EVT_TEXT, self.OnComboSegSel)
        tb.AddControl(css)
        
        # Display
        tb.AddSeparator()
#        checkbox = wx.CheckBox(tb, wx_base.ID_SHOW_SOURCE, "Show Source")
#        tb.AddControl(checkbox)
#        self.Bind(wx.EVT_CHECKBOX, self.OnCheckBox)
        
        tb.AddLabelTool(wx.ID_ZOOM_IN, "Zoom In", Icon("actions/zoom-in"))
        tb.AddLabelTool(wx.ID_ZOOM_OUT, "Zoom Out", Icon("actions/zoom-out"))
        self.Bind(wx.EVT_TOOL, self.OnZoom, id=wx.ID_ZOOM_IN)
        self.Bind(wx.EVT_TOOL, self.OnZoom, id=wx.ID_ZOOM_OUT)
        
        tb.AddLabelTool(wx.ID_UP, "Move Left", Icon("tango/actions/media-seek-backward"))
        tb.AddLabelTool(wx.ID_DOWN, "Move Left", Icon("tango/actions/media-seek-forward"))
        self.Bind(wx.EVT_TOOL, self.OnMove, id=wx.ID_UP)
        self.Bind(wx.EVT_TOOL, self.OnMove, id=wx.ID_DOWN)
        
        tb.AddLabelTool(wx.ID_REFRESH, "Refresh", Icon("tango/actions/view-refresh"))
        self.Bind(wx.EVT_TOOL, self.OnReloadData, id=wx.ID_REFRESH)
        
        tb.Realize()
        
        
    # EVTs
        self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
        self.Bind(wx.EVT_CLOSE, self.OnClose)
        
    # Create Panels
        s1 = self.splitter_1 = wx.SplitterWindow(self, -1)#, style=wx.SP_3DSASH) 
        s1.SetSashGravity(1)
#        s2 = self.splitter_2 = wx.SplitterWindow(s1, -1)
        
        p1 = self.ZoomPanel = view_panels.ZoomPanel(s1)
        p2 = self.OverviewPanel = view_panels.OverviewPanel(s1)
        
        self.Bind(view_panels.EVT_FIGURE_POS, p1.OnFigurePosEvent, id=ID.CANVAS_PANEL_OVERVIEW)# source=p2)
        self.Bind(view_panels.EVT_FIGURE_POS, p2.OnFigurePosEvent, id=ID.CANVAS_PANEL_ZOOM)#source=p1)
#        p1 = self.detailview = _physio_view_panel_detailview(s1, self)
#        p2a = self.overview  = _physio_view_panel_overview(s2, self) 
#        p2b = self.settings  = wx.Panel(s2, id=wx.ID_ANY)
#        p2b = self.settings  = _dataset_settings_panel(datasets[0].p, s2, self)
        logging.debug("PHYSIO Panels created")
        
        s1.SplitHorizontally(p1, p2, 300)
        self.set_segment(0)
        self.Show()