Exemple #1
0
    def view_database(self, selected_entries=None):
        '''
    		Logic for creating and viewing of a tab with the database table
    	'''
        print "Viewing"

        table_headers = [
            'id', 'File', 'Observation Time Start', 'Observation Time End',
            'Instrument', 'Min Wavelength', 'Max Wavelength', 'Starred'
        ]
        self.table_headers = table_headers

        vbox = QtHelp.VBox()

        filter_label = QtGui.QLabel("Filter")
        self.filter_label = filter_label
        filter_select = QtGui.QComboBox()

        search_box = QtGui.QLineEdit()
        search_box.textChanged.connect(self.query)
        self.search_box = search_box

        if selected_entries == None:
            selected_entries = database

        queries = self.get_data_from_selected_entries(selected_entries)

        wtable = QtGui.QTableWidget(len(queries), len(table_headers))

        for i, row in enumerate(queries):
            for j, col in enumerate(row):
                item = QtGui.QTableWidgetItem(str(col))
                wtable.setItem(i, j, item)

        wtable.itemClicked.connect(self.on_table_row_click)
        wtable.setHorizontalHeaderLabels(table_headers)
        wtable.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.ResizeToContents)

        self.wtable = wtable

        if 'sunpydb' in self.fv.ds.get_tabnames():
            self.fv.ds.remove_tab("sunpydb")

        filter_select.addItems(self.table_headers[:-1])
        self.filter_select = filter_select

        vbox.addWidget(filter_label, stretch=0)
        vbox.addWidget(filter_select, stretch=0)
        vbox.addWidget(search_box)
        vbox.addWidget(wtable, stretch=0)

        starred_entries_box = QtGui.QCheckBox("Show starred entries only")
        self.starred_entries_box = starred_entries_box
        starred_entries_box.stateChanged.connect(self.starred_entries_only)

        vbox.addWidget(starred_entries_box)

        self.fv.ds.add_tab("right", vbox, 1, "SunPyDB", tabname="sunpydb")
        self.fv.ds.raise_tab("sunpydb")
Exemple #2
0
    def _create_header_window(self):
        widget = QtGui.QWidget()
        vbox = QtGui.QVBoxLayout()
        vbox.setContentsMargins(2, 2, 2, 2)
        widget.setLayout(vbox)

        table = QtGui.QTableWidget()
        table.setColumnCount(len(self.columns))
        col = 0
        for hdr, kwd in self.columns:
            item = QtGui.QTableWidgetItem(hdr)
            table.setHorizontalHeaderItem(col, item)
            col += 1

        vbox.addWidget(table, stretch=1)
        return widget, table
Exemple #3
0
    def build_gui(self, container):

        widget = QtGui.QWidget()
        vbox = QtGui.QVBoxLayout()
        vbox.setContentsMargins(2, 2, 2, 2)
        widget.setLayout(vbox)

        # create the table
        table = QtGui.QTableWidget()
        table.setShowGrid(False)
        table.verticalHeader().hide()
        table.setColumnCount(len(self.columns))
        col = 0
        for hdr, kwd in self.columns:
            item = QtGui.QTableWidgetItem(hdr)
            table.setHorizontalHeaderItem(col, item)
            col += 1

        vbox.addWidget(table, stretch=1)
        table.itemDoubleClicked.connect(self.itemclicked_cb)
        self.treeview = table

        self.entry = QtGui.QLineEdit()
        vbox.addWidget(self.entry, stretch=0, alignment=QtCore.Qt.AlignTop)
        self.entry.returnPressed.connect(self.browse_cb)

        btns = QtHelp.HBox()
        layout = btns.layout()
        layout.setSpacing(3)

        btn = QtGui.QPushButton("Close")
        btn.clicked.connect(self.close)
        layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft)
        btn = QtGui.QPushButton("Refresh")
        btn.clicked.connect(self.refresh)
        layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft)
        btn = QtGui.QPushButton("Make Thumbs")
        btn.clicked.connect(self.make_thumbs)
        layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft)

        vbox.addWidget(btns, stretch=0, alignment=QtCore.Qt.AlignLeft)

        container.addWidget(widget, stretch=1)
Exemple #4
0
    def __init__(self, logger, container):
        self.logger = logger
        self.tag = None
        self.mycolor = 'skyblue'
        self.magmap = 'stairs8'

        self.mag_max = 25.0
        self.mag_min = 0.0

        # keys: are name, ra, dec, mag, flag, b_r, preference, priority, dst
        # TODO: automate this generation
        self.columns = [('Name', 'name'),
                        ('RA', 'ra'),
                        ('DEC', 'dec'),
                        ('Mag', 'mag'),
                        ('Preference', 'preference'),
                        ('Priority', 'priority'),
                        ('Flag', 'flag'),
                        ('b-r', 'b_r'),
                        ('Dst', 'dst'),
                        ('Description', 'description'),
                        ]

        self.catalog = None
        self.cursor = 0
        self.color_cursor = 'red'
        self.color_selected = 'skyblue'
        self.selection_mode = 'single'
        self.selected = []
        self.moving_cursor = False

        self.btn = Bunch.Bunch()

        self.mframe = container
            
        vbox = QtHelp.VBox()

        # create the table
        table = QtGui.QTableWidget()
        table.setColumnCount(len(self.columns))
        table.cellClicked.connect(self.select_star)
        self.table = table
        
        col = 0
        for hdr, kwd in self.columns:
            item = QtGui.QTableWidgetItem(hdr)
            table.setHorizontalHeaderItem(col, item)
            col += 1

        vbox.addWidget(table, stretch=1)

        self.cbar = ColorBar.ColorBar(self.logger)
        self.cmap = cmap.get_cmap(self.magmap)
        self.imap = imap.get_imap('ramp')
        self.cbar.set_cmap(self.cmap)
        self.cbar.set_imap(self.imap)
        #self.cbar.set_size_request(-1, 20)

        vbox.addWidget(self.cbar, stretch=0)

        btns = QtHelp.HBox()
        btns.setSpacing(5)

        for name in ('Plot', 'Clear', #'Close'
                     ):
            btn = QtGui.QPushButton(name)
            btns.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignCenter)
            self.btn[name.lower()] = btn

        self.btn.plot.clicked.connect(self.replot_stars)
        self.btn.clear.clicked.connect(self.clear)
        #self.btn.close.clicked.connect(self.close)

        vbox.addWidget(btns, stretch=0, alignment=QtCore.Qt.AlignTop)
        
        self.mframe.addWidget(vbox, stretch=1)