def build_gui(self, container): vbox = Widgets.VBox() vbox.set_border_width(2) vbox.set_spacing(2) nb = Widgets.StackWidget() self.nb = nb vbox.add_widget(self.nb, stretch=1) if self.settings.get('closeable', False): btns = Widgets.HBox() btns.set_border_width(4) btns.set_spacing(4) btn = Widgets.Button("Close") btn.add_callback('activated', lambda w: self.close()) btns.add_widget(btn) btn = Widgets.Button("Help") btn.add_callback('activated', lambda w: self.help()) btns.add_widget(btn, stretch=0) btns.add_widget(Widgets.Label(''), stretch=1) vbox.add_widget(btns, stretch=0) container.add_widget(vbox, stretch=1) self.gui_up = True
def _set_wstype(self, wstype): if wstype in ('tabs', 'nb', 'ws'): wstype = 'tabs' self.nb = Widgets.TabWidget(detachable=self.detachable, reorderable=True, group=self.group) elif wstype == 'mdi': self.nb = Widgets.MDIWidget(mode='mdi') elif wstype == 'stack': self.nb = Widgets.StackWidget() elif wstype == 'grid': self.nb = SymmetricGridWidget() self._update_mdi_menu() if self.nb.has_callback('page-switch'): self.nb.add_callback('page-switch', self._switch_page_cb) if self.nb.has_callback('page-detach'): self.nb.add_callback('page-detach', self._detach_page_cb) if self.nb.has_callback('page-close'): self.nb.add_callback('page-close', self._close_page_cb) self.wstype = wstype
def build_gui(self, container): vbox = Widgets.VBox() vbox.set_border_width(1) vbox.set_spacing(1) nb = Widgets.StackWidget() vbox.add_widget(nb, stretch=1) self.nb = nb # create sort toggle hbox = Widgets.HBox() cb = Widgets.CheckBox("Sortable") cb.set_state(self.flg_sort) cb.add_callback('activated', lambda w, tf: self.set_sortable_cb(tf)) hbox.add_widget(cb, stretch=0) hbox.add_widget(Widgets.Label(''), stretch=1) vbox.add_widget(hbox, stretch=0) btns = Widgets.HBox() btns.set_border_width(4) btns.set_spacing(4) btn = Widgets.Button("Close") btn.add_callback('activated', lambda w: self.close()) btns.add_widget(btn) btn = Widgets.Button("Help") btn.add_callback('activated', lambda w: self.help()) btns.add_widget(btn, stretch=0) btns.add_widget(Widgets.Label(''), stretch=1) vbox.add_widget(btns, stretch=0) container.add_widget(vbox, stretch=1) self.gui_up = True
def add_viewer(self, name, settings, workspace=None): vbox = Widgets.VBox() vbox.set_border_width(1) vbox.set_spacing(0) if not workspace: workspace = 'channels' w = self.ds.get_nb(workspace) size = (1, 1) if isinstance(w, Widgets.MDIWidget) and w.true_mdi: size = (300, 300) # build image viewer & widget fi = self.build_viewpane(settings, size=size) iw = Viewers.GingaViewerWidget(viewer=fi) stk_w = Widgets.StackWidget() stk_w.add_widget(iw, title='image') fi.add_callback('focus', self.focus_cb, name) vbox.add_widget(stk_w, stretch=1) fi.set_name(name) # Add the viewer to the specified workspace self.ds.add_tab(workspace, vbox, 1, name) self.update_pending() bnch = Bunch.Bunch(image_viewer=fi, widget=stk_w, container=vbox, workspace=workspace) return bnch
def build_gui(self, container, future=None): vbox1 = Widgets.VBox() msg_font = self.fv.get_font("sansFont", 14) tw = Widgets.TextArea() tw.set_font(msg_font) tw.set_wrap(True) self.tw = tw fr = Widgets.Expander("Instructions") fr.set_widget(tw) vbox1.add_widget(fr, stretch=0) nb = Widgets.TabWidget(tabpos='bottom') self.w.nb = nb vbox1.add_widget(nb, stretch=1) vbox0 = Widgets.VBox() hbox = Widgets.HBox() hbox.set_spacing(4) vbox0.add_widget(hbox, stretch=1) vbox = Widgets.VBox() fr = Widgets.Frame(" Image Server ") fr.set_widget(vbox) hbox.add_widget(fr, stretch=0) captions = (('Server:', 'llabel'), ('Server', 'combobox'), ('Use DSS channel', 'checkbutton'), ('Get Image', 'button')) w, b = Widgets.build_info(captions) self.w.update(b) self.w.get_image.add_callback('activated', lambda w: self.getimage_cb()) self.w.use_dss_channel.set_state(self.use_dss_channel) self.w.use_dss_channel.add_callback('activated', self.use_dss_channel_cb) vbox.add_widget(w, stretch=0) self.w.img_params = Widgets.StackWidget() vbox.add_widget(self.w.img_params, stretch=1) combobox = self.w.server index = 0 self.image_server_options = self.fv.imgsrv.getServerNames(kind='image') for name in self.image_server_options: combobox.append_text(name) index += 1 index = 0 combobox.set_index(index) combobox.add_callback('activated', lambda w, idx: self.setup_params_image(idx)) if len(self.image_server_options) > 0: self.setup_params_image(index, redo=False) vbox = Widgets.VBox() fr = Widgets.Frame(" Catalog Server ") fr.set_widget(vbox) hbox.add_widget(fr, stretch=0) captions = (('Server:', 'llabel'), ('Server', 'combobox'), ('Limit stars to area', 'checkbutton'), ('Search', 'button')) w, self.w2 = Widgets.build_info(captions) self.w2.search.add_callback('activated', lambda w: self.getcatalog_cb()) self.w2.limit_stars_to_area.set_state(self.limit_stars_to_area) self.w2.limit_stars_to_area.add_callback('activated', self.limit_area_cb) vbox.add_widget(w, stretch=0) self.w2.cat_params = Widgets.StackWidget() vbox.add_widget(self.w2.cat_params, stretch=1) combobox = self.w2.server index = 0 self.catalog_server_options = self.fv.imgsrv.getServerNames( kind='catalog') for name in self.catalog_server_options: combobox.append_text(name) index += 1 index = 0 combobox.set_index(index) combobox.add_callback('activated', lambda w, idx: self.setup_params_catalog(idx)) if len(self.catalog_server_options) > 0: self.setup_params_catalog(index, redo=False) # stretch vbox0.add_widget(Widgets.Label(''), stretch=1) btns = Widgets.HBox() btns.set_spacing(5) btn1 = Widgets.RadioButton("Rectangle") btn1.set_state(self.drawtype == 'rectangle') btn1.add_callback('activated', lambda w, tf: self.set_drawtype_cb(tf, 'rectangle')) btns.add_widget(btn1, stretch=0) btn2 = Widgets.RadioButton("Circle", group=btn1) btn2.set_state(self.drawtype == 'circle') btn2.add_callback('activated', lambda w, tf: self.set_drawtype_cb(tf, 'circle')) btns.add_widget(btn2, stretch=0) btn = Widgets.Button("Entire image") btn.add_callback('activated', lambda w: self.setfromimage()) btns.add_widget(btn, stretch=0) vbox0.add_widget(btns, stretch=0) self.w.params = vbox0 sw = Widgets.ScrollArea() sw.set_widget(vbox0) nb.add_widget(sw, title="Params") vbox = Widgets.VBox() self.table = CatalogListing(self.logger, vbox) hbox = Widgets.HBox() adj = Widgets.Slider(orientation='horizontal') adj.set_limits(0, 1000, incr_value=1) adj.set_value(0) #adj.resize(200, -1) adj.set_tracking(True) adj.set_tooltip("Choose subset of stars plotted") self.w.plotgrp = adj adj.add_callback('value-changed', self.plot_pct_cb) hbox.add_widget(adj, stretch=1) sb = Widgets.SpinBox(dtype=int) sb.set_limits(10, self.plot_max, incr_value=10) sb.set_value(self.plot_limit) #sb.set_wrapping(False) self.w.plotnum = sb sb.set_tooltip("Adjust size of subset of stars plotted") sb.add_callback('value-changed', self.plot_limit_cb) hbox.add_widget(sb, stretch=0) vbox.add_widget(hbox, stretch=0) self.w.listing = vbox nb.add_widget(vbox, title="Listing") btns = Widgets.HBox() btns.set_spacing(3) self.w.buttons = btns btn = Widgets.Button("Close") btn.add_callback('activated', lambda w: self.close()) btns.add_widget(btn, stretch=0) if future: btn = Widgets.Button('Ok') btn.add_callback('activated', lambda w: self.ok()) btns.add_widget(btn, stretch=0) btn = Widgets.Button('Cancel') btn.add_callback('activated', lambda w: self.cancel()) btns.add_widget(btn, stretch=0) vbox1.add_widget(btns, stretch=0) container.add_widget(vbox1, stretch=1) self.gui_up = True
def build_gui(self, container): nb = Widgets.StackWidget() self.nb = nb container.add_widget(self.nb, stretch=1)
elif wname == 'tabwidget': w = Widgets.TabWidget() w.add_widget(Widgets.Label('Content of Tab 1'), title='Tab 1') w.add_widget(Widgets.Label('Content of Tab 2'), title='Tab 2') hbox = Widgets.HBox() sbox = Widgets.SpinBox(dtype=int) sbox.set_limits(0, 1, incr_value=1) sbox.set_value(0) sbox.add_callback('value-changed', lambda sbx, val: w.set_index(val)) hbox.add_widget(sbox) vbox.add_widget(w, stretch=1) vbox.add_widget(hbox, stretch=0) elif wname == 'stackwidget': w = Widgets.StackWidget() w.add_widget(Widgets.Label('Content of Stack 1')) w.add_widget(Widgets.Label('Content of Stack 2')) vbox.add_widget(w, stretch=1) elif wname == 'mdiwidget': w = Widgets.MDIWidget() w.add_widget(Widgets.Label('Content of MDI Area 1')) w.add_widget(Widgets.Label('Content of MDI Area 2')) vbox.add_widget(w, stretch=1) elif wname == 'gridbox': w = Widgets.GridBox(rows=2, columns=2) w.add_widget(Widgets.Label('Content of Grid Area 1'), 0, 0) w.add_widget(Widgets.Label('Content of Grid Area 2'), 0, 1) w.add_widget(Widgets.Label('Content of Grid Area 3'), 1, 0)