Exemple #1
0
    def get_panels(self, parent):
        """
        Create and return the list of wx.Panels for your plug-in.
        Define the plug-in perspective.

        Panels should inherit from DefaultPanel defined below,
        or should present the same interface. They must define
        "window_caption" and "window_name".

        :param parent: parent window

        :return: list of panels
        """
        # # Save a reference to the parent
        self.parent = parent
        self.frame = MDIFrame(self.parent, None, 'None', (100, 200))
        self.invariant_panel = InvariantPanel(parent=self.frame)
        self.frame.set_panel(self.invariant_panel)
        self._frame_set_helper()
        self.invariant_panel.set_manager(manager=self)
        self.perspective.append(self.invariant_panel.window_name)
        # Create reader when fitting panel are created
        self.state_reader = reader(self.set_state)
        # append that reader to list of available reader
        loader = Loader()
        loader.associate_file_reader(".inv", self.state_reader)
        # loader.associate_file_reader(".svs", self.state_reader)
        # Return the list of panels
        return [self.invariant_panel]
Exemple #2
0
    def create_1d_panel(self, data, group_id):
        """
        """
        # Create a new plot panel if none was available
        if issubclass(data.__class__, Data1D):
            from Plotter1D import ModelPanel1D
            ## get the data representation label of the data to plot
            ## when even the user select "change scale"
            xtransform = data.xtransform
            ytransform = data.ytransform
            ## create a plotpanel for 1D Data
            win = MDIFrame(self.parent, None, 'None', (100, 200))
            new_panel = ModelPanel1D(win,
                                     -1,
                                     xtransform=xtransform,
                                     ytransform=ytransform,
                                     style=wx.RAISED_BORDER)
            win.set_panel(new_panel)
            win.Show(False)
            new_panel.frame = win
            #win.Show(True)
            return new_panel

        msg = "1D Panel of group ID %s could not be created" % str(group_id)
        raise ValueError, msg
Exemple #3
0
 def create_2d_panel(self, data, group_id):
     """
     """
     if issubclass(data.__class__, Data2D):
         ##Create a new plotpanel for 2D data
         from Plotter2D import ModelPanel2D
         scale = data.scale
         win = MDIFrame(self.parent, None, 'None', (200, 150))
         win.Show(False)
         new_panel = ModelPanel2D(win, id=-1,
                                  data2d=data, scale=scale,
                                  style=wx.RAISED_BORDER)
         win.set_panel(new_panel)
         new_panel.frame = win
         return new_panel
     msg = "2D Panel of group ID %s could not be created" % str(group_id)
     raise ValueError, msg
Exemple #4
0
    def onBoxSum(self, event):
        """
        """
        from sas.guiframe.gui_manager import MDIFrame
        from boxSum import BoxSum
        self.onClearSlicer(event)
        self.slicer_z += 1
        self.slicer = BoxSum(self, self.subplot, zorder=self.slicer_z)
        self.subplot.set_ylim(self.data2D.ymin, self.data2D.ymax)
        self.subplot.set_xlim(self.data2D.xmin, self.data2D.xmax)
        self.update()
        self.slicer.update()
        ## Value used to initially set the slicer panel
        params = self.slicer.get_params()
        ## Create a new panel to display results of summation of Data2D
        from slicerpanel import SlicerPanel
        win = MDIFrame(self.parent, None, 'None', (100, 200))
        new_panel = SlicerPanel(parent=win,
                                id=-1,
                                base=self,
                                type=self.slicer.__class__.__name__,
                                params=params,
                                style=wx.RAISED_BORDER)

        new_panel.window_caption = self.slicer.__class__.__name__ + " " + \
                                    str(self.data2D.name)
        new_panel.window_name = self.slicer.__class__.__name__ + " " + \
                                    str(self.data2D.name)
        ## Store a reference of the new created panel

        ## save the window_caption of the new panel in the current slicer
        self.slicer.set_panel_name(name=new_panel.window_caption)
        ## post slicer panel to guiframe to display it
        from sas.guiframe.events import SlicerPanelEvent

        win.set_panel(new_panel)
        new_panel.frame = win
        wx.PostEvent(self.parent,
                     SlicerPanelEvent(panel=new_panel, main_panel=self))
        wx.CallAfter(new_panel.frame.Show)
        self.panel_slicer = new_panel
Exemple #5
0
    def get_panels(self, parent):
        """
            Create and return a list of panel objects
        """
        from inversion_panel import InversionControl

        self.parent = parent
        self.frame = MDIFrame(self.parent, None, 'None', (100, 200))
        self.control_panel = InversionControl(self.frame,
                                              -1,
                                              style=wx.RAISED_BORDER,
                                              standalone=self.standalone)
        self.frame.set_panel(self.control_panel)
        self._frame_set_helper()
        self.control_panel.set_manager(self)
        self.control_panel.nfunc = self.nfunc
        self.control_panel.d_max = self.max_length
        self.control_panel.alpha = self.alpha
        self.perspective = []
        self.perspective.append(self.control_panel.window_name)

        return [self.control_panel]