示例#1
0
    def __init__(self, *args):
        """
        Descript. :
        """
        BlissWidget.__init__(self, *args)

        # Hardware objects ----------------------------------------------------
        self.diffractometer_hwobj = None
        self.session_hwobj = None
        self.lims_hwobj = None
        self.sample_changer_hwobj = None
        self.plate_manipulator_hwobj = None
        self.queue_hwobj = None

        # Internal variables --------------------------------------------------
        self.enable_collect_conditions = {}
        self.current_view = None
        self.lims_samples = None
        self.filtered_lims_samples = None

        # Properties ---------------------------------------------------------- 
        self.addProperty("holderLengthMotor", "string", "")
        self.addProperty("queue", "string", "/queue")
        self.addProperty("queue_model", "string", "/queue-model")
        self.addProperty("beamline_setup", "string", "/beamline-setup")
        self.addProperty("xml_rpc_server", "string", "/xml_rpc_server")
        self.addProperty("useFilterWidget", "boolean", True)
        self.addProperty("useSampleWidget", "boolean", True)
        self.addProperty("scOneName", "string", "Sample changer")
        self.addProperty("scTwoName", "string", "Plate")
        self.addProperty("usePlateNavigator", "boolean", False)

        # Signals ------------------------------------------------------------
        self.defineSignal("enable_hutch_menu", ())
        self.defineSignal("enable_command_menu", ())
        self.defineSignal("enable_task_toolbox", ())
        self.defineSignal("queue_is_executing", ())

        # Hiding and showing the tabs
        self.defineSignal("hide_sample_tab", ())
        self.defineSignal("hide_dc_parameters_tab", ())
        self.defineSignal("hide_sample_centring_tab", ())
        self.defineSignal("hide_dcg_tab", ())
        self.defineSignal("hide_sample_changer_tab", ())
        self.defineSignal("hide_plate_manipulator_tab", ())
        self.defineSignal("hide_char_parameters_tab", ())
        self.defineSignal("hide_energy_scan_tab",())
        self.defineSignal("hide_xrf_spectrum_tab",())
        self.defineSignal("hide_workflow_tab", ())
        self.defineSignal("hide_advanced_tab", ())

        # Populating the tabs with data
        self.defineSignal("populate_dc_parameter_widget", ())
        self.defineSignal("populate_dc_group_widget", ())
        self.defineSignal("populate_char_parameter_widget",())
        self.defineSignal("populate_sample_details",())
        self.defineSignal("populate_energy_scan_widget", ())
        self.defineSignal("populate_xrf_spectrum_widget", ())
        self.defineSignal("populate_workflow_tab", ())
        self.defineSignal("populate_advanced_widget", ())

        # Handle selection
        self.defineSignal("selection_changed",())
        self.defineSignal("set_directory", ())
        self.defineSignal("set_prefix", ())
        self.defineSignal("set_sample", ())

        # Slots ---------------------------------------------------------------
        self.defineSlot("logged_in", ())
        self.defineSlot("status_msg_changed", ())
        self.defineSlot("sample_load_state_changed", ())
        self.defineSlot("set_session", ())

        self.defineSlot("get_tree_brick",())
        self.defineSlot("get_selected_samples", ())

        #self.defineSlot("get_mounted_sample", ())
        #self.defineSlot("new_centred_position", ())
        #self.defineSlot("add_dcg", ())
        #self.defineSlot("add_data_collection", ())
        #self.defineSlot("set_session", ())

        # Graphic elements ----------------------------------------------------
        self.sample_changer_widget = uic.loadUi(os.path.join(\
             os.path.dirname(__file__),
             "widgets/ui_files/Qt4_sample_changer_widget_layout.ui"))

        #self.refresh_pixmap = Qt4_Icons.load("Refresh2.png")
        #self.sample_changer_widget.synch_button.setIcon(QtGui.QIcon(self.refresh_pixmap))
        #self.sample_changer_widget.synch_button.setText("Synch ISPyB")

        self.dc_tree_widget = DataCollectTree(self)
        self.dc_tree_widget.selection_changed_cb = self.selection_changed
        self.dc_tree_widget.run_cb = self.run
        #self.dc_tree_widget.clear_centred_positions_cb = \
        #    self.clear_centred_positions
        self.tree_options_dialog = TreeOptionsDialog(self, 'Tree options Dialog')
        self.tree_options_dialog.setModal(True)

        # Layout --------------------------------------------------------------
        main_layout = QtGui.QVBoxLayout(self)
        main_layout.addWidget(self.sample_changer_widget)
        main_layout.addWidget(self.dc_tree_widget)
        main_layout.setSpacing(0)
        main_layout.setContentsMargins(0, 0, 0, 0) 

        # SizePolicies --------------------------------------------------------

        # Qt signal/slot connections ------------------------------------------
        self.sample_changer_widget.details_button.clicked.connect(\
             self.toggle_sample_changer_tab)
        self.sample_changer_widget.filter_cbox.activated.connect(\
             self.mount_mode_combo_changed)
        self.sample_changer_widget.centring_cbox.activated.connect(\
             self.dc_tree_widget.set_centring_method)
        self.sample_changer_widget.synch_ispyb_button.clicked.connect(\
             self.refresh_sample_list)
        #self.sample_changer_widget.tree_options_button.clicked.connect(\
        #     self.open_tree_options_dialog)
        self.sample_changer_widget.filter_combo.activated.connect(\
             self.filter_combo_changed)
        self.sample_changer_widget.filter_ledit.textChanged.connect(\
             self.filter_text_changed)
        self.sample_changer_widget.sample_combo.activated.connect(\
             self.sample_combo_changed)

        # Other --------------------------------------------------------------- 
        self.enable_collect(False)
        #self.setFixedWidth(315) 
        self.dc_tree_widget.set_centring_method(1)
示例#2
0
    def __init__(self, *args):
        """
        Descript. :
        """
        BlissWidget.__init__(self, *args)

        # Hardware objects ----------------------------------------------------
        self.beamline_config_hwobj = None
        self.lims_hwobj = None
        self.sample_changer_hwobj = None
        self.queue_hwobj = None

        # Internal variables --------------------------------------------------
        self.current_cpos = None
        self.__collection_stopped = False
        self.current_view = None

        # Properties ----------------------------------------------------------
        self.addProperty("holderLengthMotor", "string", "")
        self.addProperty("queue", "string", "/Qt4_queue")
        self.addProperty("queue_model", "string", "/Qt4_queue-model")
        self.addProperty("beamline_setup", "string",
                         "/Qt4_beamline-setup-break")
        self.addProperty("xml_rpc_server", "string", "/Qt4_xml_rpc_server")

        # Signals ------------------------------------------------------------
        self.defineSignal("enable_hutch_menu", ())
        self.defineSignal("enable_command_menu", ())
        self.defineSignal("enable_task_toolbox", ())

        # Hiding and showing the tabs
        self.defineSignal("hide_sample_tab", ())
        self.defineSignal("hide_dc_parameters_tab", ())
        self.defineSignal("hide_sample_centring_tab", ())
        self.defineSignal("hide_dcg_tab", ())
        self.defineSignal("hide_sample_changer_tab", ())
        self.defineSignal("hide_char_parameters_tab", ())
        self.defineSignal("hide_energy_scan_tab", ())
        self.defineSignal("hide_xrf_scan_tab", ())
        self.defineSignal("hide_workflow_tab", ())
        self.defineSignal("hide_advanced_scan_tab", ())

        # Populating the tabs with data
        self.defineSignal("populate_dc_parameter_widget", ())
        self.defineSignal("populate_char_parameter_widget", ())
        self.defineSignal("populate_sample_details", ())
        self.defineSignal("populate_energy_scan_widget", ())
        self.defineSignal("populate_xrf_scan_widget", ())
        self.defineSignal("populate_workflow_tab", ())
        self.defineSignal("populate_advanced_scan_tab", ())

        # Handle selection
        self.defineSignal("selection_changed", ())
        self.defineSignal("set_directory", ())
        self.defineSignal("set_prefix", ())
        self.defineSignal("set_sample", ())

        # Slots ---------------------------------------------------------------
        self.defineSlot("logged_in", ())
        self.defineSlot("status_msg_changed", ())
        self.defineSlot("sample_load_state_changed", ())
        self.defineSlot("set_session", ())

        self.defineSlot("get_tree_brick", ())
        self.defineSlot("get_selected_samples", ())

        #self.defineSlot("get_mounted_sample", ())
        #self.defineSlot("new_centred_position", ())
        #self.defineSlot("add_dcg", ())
        #self.defineSlot("add_data_collection", ())
        #self.defineSlot("set_session", ())

        # Graphic elements ----------------------------------------------------
        self.sample_changer_widget = uic.loadUi(
            os.path.join(
                os.path.dirname(__file__),
                "widgets/ui_files/Qt4_sample_changer_widget_layout.ui"))

        self.refresh_pixmap = Qt4_Icons.load("Refresh2.png")
        self.sample_changer_widget.synch_button.setIcon(
            QtGui.QIcon(self.refresh_pixmap))
        self.sample_changer_widget.synch_button.setText("Synch ISPyB")

        self.dc_tree_widget = DataCollectTree(self)
        self.dc_tree_widget.selection_changed_cb = self.selection_changed
        self.dc_tree_widget.run_cb = self.run
        #self.dc_tree_widget.clear_centred_positions_cb = \
        #    self.clear_centred_positions

        # Layout --------------------------------------------------------------
        main_layout = QtGui.QVBoxLayout(self)
        main_layout.addWidget(self.sample_changer_widget)
        main_layout.addWidget(self.dc_tree_widget)
        main_layout.setSpacing(0)
        main_layout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(main_layout)

        # SizePolicies --------------------------------------------------------
        self.sample_changer_widget.setSizePolicy(
            QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Fixed)

        # Qt signal/slot connections ------------------------------------------
        self.sample_changer_widget.details_button.clicked.\
             connect(self.toggle_sample_changer_tab)

        self.sample_changer_widget.filter_cbox.activated.\
             connect(self.dc_tree_widget.filter_sample_list)

        self.sample_changer_widget.centring_cbox.activated.\
             connect(self.dc_tree_widget.set_centring_method)

        self.sample_changer_widget.synch_button.clicked.\
             connect(self.refresh_sample_list)

        # Other ---------------------------------------------------------------
        self.enable_collect(False)
        #self.setFixedWidth(315)
        #self.sample_changer_widget.child('centring_cbox').setCurrentItem(1)
        self.dc_tree_widget.set_centring_method(1)