Exemplo n.º 1
0
    def test_replaceHandle(self):
        mock_wsd = MockWorkspaceDisplay()
        observer = WorkspaceDisplayADSObserver(mock_wsd)

        expected_name = "a"
        expected_parameter = 444555.158
        observer.replaceHandle(expected_name, expected_parameter)
        mock_wsd.replace_workspace.assert_called_once_with(expected_name, expected_parameter)
Exemplo n.º 2
0
    def test_replaceHandle(self):
        mock_wsd = MockWorkspaceDisplay()
        observer = WorkspaceDisplayADSObserver(mock_wsd)

        expected_name = "a"
        expected_parameter = 444555.158
        observer.replaceHandle(expected_name, expected_parameter)
        mock_wsd.replace_workspace.assert_called_once_with(
            expected_name, expected_parameter)
Exemplo n.º 3
0
    def __init__(self, ws, plot=None, parent=None, model=None, view=None, ads_observer=None, container=None,
                 window_width=600, window_height=400):
        """
        Creates a display for the provided workspace.

        :param ws: Workspace to be displayed
        :param plot: Plotting function that will be used to plot workspaces. Passed in as parameter to allow mocking
        :param parent: Parent of the widget
        :param model: Model to be used by the widget. Passed in as parameter to allow mocking
        :param view: View to be used by the widget. Passed in as parameter to allow mocking
        :param ads_observer: ADS observer to be used by the presenter. If not provided the default
                             one is used. Mainly intended for testing.
        """
        # Create model and view, or accept mocked versions
        self.model = model if model else MatrixWorkspaceDisplayModel(ws)
        self.view = view if view else MatrixWorkspaceDisplayView(self, parent)
        self.container = container if container else StatusBarView(parent, self.view, self.model.get_name(),
                                                                   window_width=window_width,
                                                                   window_height=window_height,
                                                                   presenter=self)

        super(MatrixWorkspaceDisplay, self).__init__(self.container.status_bar)

        self.plot = plot

        self.ads_observer = ads_observer if ads_observer else WorkspaceDisplayADSObserver(self)

        self.setup_tables()

        self.view.set_context_menu_actions(self.view.table_y)
        self.view.set_context_menu_actions(self.view.table_x)
        self.view.set_context_menu_actions(self.view.table_e)
Exemplo n.º 4
0
    def __init__(self,
                 ws,
                 parent=None,
                 window_flags=Qt.Window,
                 ads_observer=None,
                 view: InstrumentView = None):
        super(InstrumentViewPresenter, self).__init__()
        self.ws_name = str(ws)

        self.container = view
        if not self.container:
            workspace = AnalysisDataService.retrieve(self.ws_name)
            workspace.readLock()
            try:
                self.container = InstrumentView(parent=parent,
                                                presenter=self,
                                                name=self.ws_name,
                                                window_flags=window_flags)
            finally:
                workspace.unlock()

        if ads_observer:
            self.ads_observer = ads_observer
        else:
            self.ads_observer = WorkspaceDisplayADSObserver(
                self, observe_replace=False)

        # TODO FIXME - this may not be a good design.  It violates the OO principles
        # Update the instrument view manager
        InstrumentViewManager.register(self, self.ws_name)
Exemplo n.º 5
0
    def __init__(self, ws, parent=None, ads_observer=None):
        super(InstrumentViewPresenter, self).__init__()
        self.ws_name = ws.name()
        self.container = InstrumentView(parent, self, self.ws_name)

        if ads_observer:
            self.ads_observer = ads_observer
        else:
            self.ads_observer = WorkspaceDisplayADSObserver(
                self, observe_replace=False)
Exemplo n.º 6
0
    def __init__(self,
                 ws,
                 plot=None,
                 parent=None,
                 window_flags=Qt.Window,
                 model=None,
                 view=None,
                 ads_observer=None,
                 container=None,
                 window_width=600,
                 window_height=400):
        """
        Creates a display for the provided workspace.

        :param ws: Workspace to be displayed
        :param plot: Plotting function that will be used to plot workspaces. Passed in as parameter to allow mocking
        :param parent: Parent of the widget
        :param model: Model to be used by the widget. Passed in as parameter to allow mocking
        :param view: View to be used by the widget. Passed in as parameter to allow mocking
        :param ads_observer: ADS observer to be used by the presenter. If not provided the default
                             one is used. Mainly intended for testing.
        """
        self.hasDx = any(
            [ws.hasDx(i) for i in range(ws.getNumberHistograms())])

        # Create model and view, or accept mocked versions
        self.model = model if model else MatrixWorkspaceDisplayModel(ws)
        self.view = view if view else MatrixWorkspaceDisplayView(
            self, parent, window_flags)
        self.container = container if container else StatusBarView(
            parent,
            self.view,
            self.model.get_name(),
            window_width=window_width,
            window_height=window_height,
            presenter=self,
            window_flags=window_flags)

        super(MatrixWorkspaceDisplay, self).__init__(self.container.status_bar)
        self.plot = plot

        self.ads_observer = ads_observer if ads_observer else WorkspaceDisplayADSObserver(
            self)

        self.setup_tables()

        self.view.set_context_menu_actions(self.view.table_y)
        self.view.set_context_menu_actions(self.view.table_x)
        self.view.set_context_menu_actions(self.view.table_e)
        if self.hasDx:
            self.view.set_context_menu_actions(self.view.table_dx)

        # connect to replace_signal signal to handle replacement of the workspace
        self.container.replace_signal.connect(self.action_replace_workspace)
        self.container.rename_signal.connect(self.action_rename_workspace)
Exemplo n.º 7
0
    def __init__(
        self,
        ws,
        parent=None,
        window_flags=Qt.Window,
        plot=None,
        model=None,
        view=None,
        name=None,
        ads_observer=None,
        container=None,
        window_width=600,
        window_height=400,
        batch=False,
    ):
        """
        Creates a display for the provided workspace.

        :param ws: Workspace to be displayed
        :param parent: Parent of the widget
        :param window_flags: An optional set of window flags
        :param plot: Plotting function that will be used to plot workspaces. This requires Matplotlib directly.
                     Passed in as parameter to allow mocking
        :param model: Model to be used by the widget. Passed in as parameter to allow mocking
        :param view: View to be used by the widget. Passed in as parameter to allow mocking
        :param name: Custom name for the window
        :param ads_observer: ADS observer to be used by the presenter. If not provided the default
                             one is used. Mainly intended for testing.
        """
        view, model = self.create_table(ws, parent, window_flags, model, view,
                                        batch)
        self.view = view
        self.model = model
        self.name = name if name else model.get_name()
        self.container = (container if container else StatusBarView(
            parent,
            view,
            self.name,
            window_width=window_width,
            window_height=window_height,
            window_flags=window_flags,
            presenter=self,
        ))

        DataCopier.__init__(self, self.container.status_bar)

        self.parent = parent
        self.plot = plot

        self.ads_observer = (ads_observer if ads_observer else
                             WorkspaceDisplayADSObserver(self))

        self.presenter.refresh()
Exemplo n.º 8
0
    def __init__(self,
                 ws,
                 plot=None,
                 parent=None,
                 model=None,
                 view=None,
                 name=None,
                 ads_observer=None,
                 container=None,
                 window_width=600,
                 window_height=400):
        """
        Creates a display for the provided workspace.

        :param ws: Workspace to be displayed
        :param parent: Parent of the widget
        :param plot: Plotting function that will be used to plot workspaces. This requires Matplotlib directly.
                     Passed in as parameter to allow mocking
        :param model: Model to be used by the widget. Passed in as parameter to allow mocking
        :param view: View to be used by the widget. Passed in as parameter to allow mocking
        :param name: Custom name for the window
        :param ads_observer: ADS observer to be used by the presenter. If not provided the default
                             one is used. Mainly intended for testing.
        """
        model = model if model is not None else TableWorkspaceDisplayModel(ws)
        view = view if view else TableWorkspaceDisplayView(self, parent)
        TableWorkspaceDataPresenter.__init__(self, model, view)

        self.name = name if name else self.model.get_name()
        self.container = container if container else StatusBarView(
            parent,
            self.view,
            self.name,
            window_width=window_width,
            window_height=window_height,
            presenter=self)

        DataCopier.__init__(self, self.container.status_bar)

        self.parent = parent
        self.plot = plot
        self.view.set_context_menu_actions(self.view)

        self.ads_observer = ads_observer if ads_observer else WorkspaceDisplayADSObserver(
            self)

        self.refresh()

        # connect to cellChanged signal after the data has been loaded
        self.view.itemChanged.connect(self.handleItemChanged)
Exemplo n.º 9
0
    def __init__(self,
                 ws,
                 parent=None,
                 window_flags=Qt.Window,
                 ads_observer=None):
        super(InstrumentViewPresenter, self).__init__()
        self.ws_name = str(ws)

        self.container = InstrumentView(parent,
                                        self,
                                        self.ws_name,
                                        window_flags=window_flags)

        if ads_observer:
            self.ads_observer = ads_observer
        else:
            self.ads_observer = WorkspaceDisplayADSObserver(
                self, observe_replace=False)

        # TODO FIXME - this may not be a good design.  It violates the OO principles
        # Update the instrument view manager
        InstrumentViewManager.register(self, self.ws_name)
Exemplo n.º 10
0
 def test_deleteHandle(self):
     mock_wsd = MockWorkspaceDisplay()
     observer = WorkspaceDisplayADSObserver(mock_wsd)
     expected_name = "adad"
     observer.deleteHandle(expected_name, None)
     mock_wsd.close.assert_called_once_with(expected_name)
Exemplo n.º 11
0
 def test_clearHandle(self):
     mock_wsd = MockWorkspaceDisplay()
     observer = WorkspaceDisplayADSObserver(mock_wsd)
     observer.clearHandle()
     mock_wsd.force_close.assert_called_once_with()
Exemplo n.º 12
0
 def test_deleteHandle(self):
     mock_wsd = MockWorkspaceDisplay()
     observer = WorkspaceDisplayADSObserver(mock_wsd)
     expected_name = "adad"
     observer.deleteHandle(expected_name, None)
     mock_wsd.close.assert_called_once_with(expected_name)
Exemplo n.º 13
0
 def test_clearHandle(self):
     mock_wsd = MockWorkspaceDisplay()
     observer = WorkspaceDisplayADSObserver(mock_wsd)
     observer.clearHandle()
     mock_wsd.force_close.assert_called_once_with()