Exemplo n.º 1
0
class MDSplusXdBox(props, MDSplusDtypeSelWidget, MDSplusWidget, Window):

    __gtype_name__ = "MDSplusXdBox"

    def inHBox(self, w):
        hb = HBox()
        hb.pack_start(w, False, False, 0)
        return hb

    def __init__(self, node=None, value=None):
        Window.__init__(self)
        MDSplusWidget.__init__(self)
        if node is not None:
            self.node = node
        else:
            self.value = value
        hbtop = HBox(homogeneous=False)
        self.on = CheckButton(label="On")
        self.parent_on = CheckButton(label="Parent")
        self.parent_on.set_sensitive(False)
        self.path = MDSplusPathWidget()
        if node is not None:
            self.path._node = self._node
        hbtags = HBox(homogeneous=False)
        self.tags = Entry()
        self.tags.set_width_chars(60)
        expression_menu = self.dtype_menu(tuple(), varname="dtype_expression", no_show=True)
        axis_menu = self.dtype_menu(("Range",), varname="dtype_axis", no_show=True)
        window_menu = self.dtype_menu(("Window",), varname="dtype_window", no_show=True)
        dispatch_menu = self.dtype_menu(("Dispatch",), varname="dtype_dispatch", no_show=True)
        action_menu = self.dtype_menu(("Action",), varname="dtype_action", no_show=True)
        task_menu = self.dtype_menu(("Method", "Routine"), varname="dtype_task", no_show=True)
        any_menu = self.dtype_menu(
            ("Range", "Window", "Dispatch", "Action", "Method", "Routine"), varname="dtype_any", no_show=True
        )
        menus = (
            self.dtype_expression,
            self.dtype_axis,
            self.dtype_dispatch,
            self.dtype_action,
            self.dtype_task,
            self.dtype_window,
            self.dtype_any,
        )
        hbtop.pack_start(self.on, False, False, 10)
        hbtop.pack_start(self.parent_on, False, False, 10)
        hbtop.pack_start(self.path, False, False, 0)
        hbtags.pack_start(Label("Tags:"), False, False, 10)
        hbtags.pack_start(self.tags, False, False, 0)
        self.action = MDSplusActionWidget()
        self.windoww = MDSplusWindowWidget()
        self.sequential = MDSplusSequentialWidget()
        self.expression = MDSplusExpressionWidget()
        self.method = MDSplusMethodWidget()
        self.routine = MDSplusRoutineWidget()
        self.dispatch = MDSplusDispatchWidget()
        self.range = MDSplusRangeWidget()
        self.widgets = (
            self.action,
            self.sequential,
            self.expression,
            self.method,
            self.routine,
            self.dispatch,
            self.range,
            self.windoww,
        )
        self.ok = Button(stock=STOCK_OK)
        self.cancel = Button(stock=STOCK_CANCEL)
        self.redo = Button(stock=STOCK_REDO)
        self.ok.connect("clicked", self.do_ok)
        self.cancel.connect("clicked", self.do_cancel)
        self.redo.connect("clicked", self.do_redo)
        hb2 = HBox()
        hb2.add(self.ok)
        hb2.add(self.redo)
        hb2.add(self.cancel)
        vb = VBox(homogeneous=False)
        vb.set_border_width(10)
        vb.pack_start(hbtop, False, False, 0)
        vb.pack_start(hbtags, False, False, 0)
        vb.pack_start(expression_menu, False, False, 0)
        vb.pack_start(axis_menu, False, False, 0)
        vb.pack_start(window_menu, False, False, 0)
        vb.pack_start(dispatch_menu, False, False, 0)
        vb.pack_start(action_menu, False, False, 0)
        vb.pack_start(task_menu, False, False, 0)
        vb.pack_start(any_menu, False, False, 0)
        for w in self.widgets:
            w.set_no_show_all(True)
            vb.pack_start(w, False, False, 0)
        vb.pack_start(hb2, False, False, 20)
        self.add(vb)
        self.do_redo(self.redo)
        self.putOnApply = True
        self.nidOffset = -1

    def set_dtype(self):
        if hasattr(self, "_node"):
            try:
                exec("self.dtype=self.dtype_%s" % (self.node.usage.lower(),))
            except Exception:
                self.dtype = self.dtype_expression
        else:
            self.dtype = self.dtype_any
        self.dtype.set_no_show_all(False)

    def do_ok(self, button):
        try:
            value = self.value
            if not self.putOnApply:
                self.hide()
            elif hasattr(self, "_node"):
                try:
                    self.node.record = value
                    self.hide()
                except Exception:
                    self.popupError(sys.exc_info())
            else:
                self.value = value
                self.hide()
        except:
            pass

    def do_redo(self, button):
        if not hasattr(self, "_node"):
            self.value = _value
            self.set_dtype()
        else:
            self.path.reset()
            self.on.set_active(self.node.disabled == False)
            self.parent_on.set_active(self.node.parent_disabled == False)
            tags = self.node.tags
            if tags is None:
                self.tags.set_text("")
            else:
                taglist = ""
                for tag in tags:
                    if taglist == "":
                        taglist = tag
                    else:
                        taglist = taglist + "," + tag
                self.tags.set_text(taglist)
            self.set_dtype()
            try:
                self.value = self.record
            except:
                self.value = None
        self.reset()

    def do_cancel(self, button):
        self.hide()
Exemplo n.º 2
0
class MDSplusXdBox(props,MDSplusDtypeSelWidget,MDSplusWidget,Window):

    __gtype_name__ = 'MDSplusXdBox'

    def inHBox(self,w):
        hb=HBox()
        hb.pack_start(w,False,False,0)
        return hb
        
    def __init__(self,node=None,value=None):
        Window.__init__(self)
        MDSplusWidget.__init__(self)
        if node is not None:
            self.node=node
        else:
            self.value=value
        hbtop=HBox(homogeneous=False)
        self.on=CheckButton(label="On")
        self.parent_on=CheckButton(label="Parent")
        self.parent_on.set_sensitive(False)
        self.path=MDSplusPathWidget()
        if node is not None:
            self.path._node=self._node
        hbtags=HBox(homogeneous=False)
        self.tags=Entry()
        self.tags.set_width_chars(60)
        expression_menu=self.dtype_menu(tuple(),varname='dtype_expression',no_show=True)
        axis_menu=self.dtype_menu(('Range',),varname='dtype_axis',no_show=True)
        window_menu=self.dtype_menu(('Window',),varname='dtype_window',no_show=True)
        dispatch_menu=self.dtype_menu(('Dispatch',),varname='dtype_dispatch',no_show=True)
        action_menu=self.dtype_menu(('Action',),varname='dtype_action',no_show=True)
        task_menu=self.dtype_menu(('Method','Routine'),varname='dtype_task',no_show=True)
        any_menu=self.dtype_menu(('Range','Window','Dispatch','Action','Method','Routine'),varname='dtype_any',no_show=True)
        menus=(self.dtype_expression,self.dtype_axis,self.dtype_dispatch,self.dtype_action,self.dtype_task,self.dtype_window,self.dtype_any)
        hbtop.pack_start(self.on,False,False,10)
        hbtop.pack_start(self.parent_on,False,False,10)
        hbtop.pack_start(self.path,False,False,0)
        hbtags.pack_start(Label("Tags:"),False,False,10)
        hbtags.pack_start(self.tags,False,False,0)
        self.action=MDSplusActionWidget()
        self.windoww=MDSplusWindowWidget()
        self.sequential=MDSplusSequentialWidget()
        self.expression=MDSplusExpressionWidget()
        self.method=MDSplusMethodWidget()
        self.routine=MDSplusRoutineWidget()
        self.dispatch=MDSplusDispatchWidget()
        self.range=MDSplusRangeWidget()
        self.widgets=(self.action,self.sequential,self.expression,self.method,self.routine,self.dispatch,self.range,self.windoww)
        self.ok=Button(stock=STOCK_OK)
        self.cancel=Button(stock=STOCK_CANCEL)
        self.redo=Button(stock=STOCK_REDO)
        self.ok.connect("clicked",self.do_ok)
        self.cancel.connect("clicked",self.do_cancel)
        self.redo.connect("clicked",self.do_redo)
        hb2=HBox()
        hb2.add(self.ok)
        hb2.add(self.redo)
        hb2.add(self.cancel)
        vb=VBox(homogeneous=False)
        vb.set_border_width(10)
        vb.pack_start(hbtop,False,False,0)
        vb.pack_start(hbtags,False,False,0)
        vb.pack_start(expression_menu,False,False,0)
        vb.pack_start(axis_menu,False,False,0)
        vb.pack_start(window_menu,False,False,0)
        vb.pack_start(dispatch_menu,False,False,0)
        vb.pack_start(action_menu,False,False,0)
        vb.pack_start(task_menu,False,False,0)
        vb.pack_start(any_menu,False,False,0)
        for w in self.widgets:
            w.set_no_show_all(True)
            vb.pack_start(w,False,False,0)
        vb.pack_start(hb2,False,False,20)
        self.add(vb)
        self.do_redo(self.redo)
        self.putOnApply = True
        self.nidOffset = -1

    def set_dtype(self):
        if hasattr(self,'_node'):
            try:
                exec 'self.dtype=self.dtype_%s' % (self.node.usage.lower(),)
            except Exception,e:
                self.dtype=self.dtype_expression
        else:
Exemplo n.º 3
0
class GeoForm(Table):
    
    __gsignals__ = {
        'search': (SIGNAL_ACTION, TYPE_NONE, (TYPE_FLOAT, TYPE_FLOAT))
    }
    
    def __init__(self):
        
        Table.__init__(self, 1, 5)
        
        self.entry1 = Entry()
        self.entry2 = Entry()
        
        self.button = Button("Search")
        
        self.attach(self.entry1, 0, 1, 0, 1) 
        self.attach(self.entry2, 1, 2, 0, 1) 
        self.attach(self.button, 2, 3, 0, 1)
        
        self.entry1.set_width_chars(12)
        self.entry2.set_width_chars(12)
        
        self.entry1.set_text("59.666042")
        self.entry2.set_text("16.481794")
        
        self.button.connect('clicked', self.clicked)
        
    
    def get_lat_long(self):
        
        s1 = self.entry1.get_text()
        s2 = self.entry2.get_text()
        
        re1 = FMT1.match(s1)
        re2 = FMT1.match(s2)
        
        if re1 and re2:
            return float(re1.group(0)), float(re2.group(0))
        
        re1 = FMT2.match(s1)
        re2 = FMT3.match(s2)
        
        if re1 and re2:
            c1 = re1.group(3), re1.group(1), re1.group(2)
            c2 = re2.group(3), re2.group(1), re2.group(2)
            return geo2dec(c1, c2)
        
        re1 = FMT4.match(s1)
        re2 = FMT5.match(s2)
        
        if re1 and re1:
            c1 = re1.group(1), re1.group(2), re1.group(3)
            c2 = re2.group(1), re2.group(2), re2.group(3)
            return geo2dec(c1, c2)
        
        raise SyntaxError()
        
    
    def clicked(self, event):
        
        try:
            self.emit('search', *self.get_lat_long())
        except SyntaxError: pass
Exemplo n.º 4
0
class GeoForm(Table):

    __gsignals__ = {
        'search': (SIGNAL_ACTION, TYPE_NONE, (TYPE_FLOAT, TYPE_FLOAT))
    }

    def __init__(self):

        Table.__init__(self, 1, 5)

        self.entry1 = Entry()
        self.entry2 = Entry()

        self.button = Button("Search")

        self.attach(self.entry1, 0, 1, 0, 1)
        self.attach(self.entry2, 1, 2, 0, 1)
        self.attach(self.button, 2, 3, 0, 1)

        self.entry1.set_width_chars(12)
        self.entry2.set_width_chars(12)

        self.entry1.set_text("59.666042")
        self.entry2.set_text("16.481794")

        self.button.connect('clicked', self.clicked)

    def get_lat_long(self):

        s1 = self.entry1.get_text()
        s2 = self.entry2.get_text()

        re1 = FMT1.match(s1)
        re2 = FMT1.match(s2)

        if re1 and re2:
            return float(re1.group(0)), float(re2.group(0))

        re1 = FMT2.match(s1)
        re2 = FMT3.match(s2)

        if re1 and re2:
            c1 = re1.group(3), re1.group(1), re1.group(2)
            c2 = re2.group(3), re2.group(1), re2.group(2)
            return geo2dec(c1, c2)

        re1 = FMT4.match(s1)
        re2 = FMT5.match(s2)

        if re1 and re1:
            c1 = re1.group(1), re1.group(2), re1.group(3)
            c2 = re2.group(1), re2.group(2), re2.group(3)
            return geo2dec(c1, c2)

        raise SyntaxError()

    def clicked(self, event):

        try:
            self.emit('search', *self.get_lat_long())
        except SyntaxError:
            pass
Exemplo n.º 5
0
class MDSplusXdBox(props,MDSplusDtypeSelWidget,MDSplusWidget,Window):

    __gtype_name__ = 'MDSplusXdBox'

    def inHBox(self,w):
        hb=HBox()
        hb.pack_start(w,False,False,0)
        return hb
        
    def __init__(self,node=None,value=None):
        Window.__init__(self)
        MDSplusWidget.__init__(self)
        if node is not None:
            self.node=node
        else:
            self.value=value
        hbtop=HBox(homogeneous=False)
        self.on=CheckButton(label="On")
        self.parent_on=CheckButton(label="Parent")
        self.parent_on.set_sensitive(False)
        self.path=MDSplusPathWidget()
        if node is not None:
            self.path._node=self._node
        hbtags=HBox(homogeneous=False)
        self.tags=Entry()
        self.tags.set_width_chars(60)
        expression_menu=self.dtype_menu(tuple(),varname='dtype_expression',no_show=True)
        axis_menu=self.dtype_menu(('Range',),varname='dtype_axis',no_show=True)
        window_menu=self.dtype_menu(('Window',),varname='dtype_window',no_show=True)
        dispatch_menu=self.dtype_menu(('Dispatch',),varname='dtype_dispatch',no_show=True)
        action_menu=self.dtype_menu(('Action',),varname='dtype_action',no_show=True)
        task_menu=self.dtype_menu(('Method','Routine'),varname='dtype_task',no_show=True)
        any_menu=self.dtype_menu(('Range','Window','Dispatch','Action','Method','Routine'),varname='dtype_any',no_show=True)
        menus=(self.dtype_expression,self.dtype_axis,self.dtype_dispatch,self.dtype_action,self.dtype_task,self.dtype_window,self.dtype_any)
        hbtop.pack_start(self.on,False,False,10)
        hbtop.pack_start(self.parent_on,False,False,10)
        hbtop.pack_start(self.path,False,False,0)
        hbtags.pack_start(Label("Tags:"),False,False,10)
        hbtags.pack_start(self.tags,False,False,0)
        self.action=MDSplusActionWidget()
        self.windoww=MDSplusWindowWidget()
        self.sequential=MDSplusSequentialWidget()
        self.expression=MDSplusExpressionWidget()
        self.method=MDSplusMethodWidget()
        self.routine=MDSplusRoutineWidget()
        self.dispatch=MDSplusDispatchWidget()
        self.range=MDSplusRangeWidget()
        self.widgets=(self.action,self.sequential,self.expression,self.method,self.routine,self.dispatch,self.range,self.windoww)
        self.ok=Button(stock=STOCK_OK)
        self.cancel=Button(stock=STOCK_CANCEL)
        self.redo=Button(stock=STOCK_REDO)
        self.ok.connect("clicked",self.do_ok)
        self.cancel.connect("clicked",self.do_cancel)
        self.redo.connect("clicked",self.do_redo)
        hb2=HBox()
        hb2.add(self.ok)
        hb2.add(self.redo)
        hb2.add(self.cancel)
        vb=VBox(homogeneous=False)
        vb.set_border_width(10)
        vb.pack_start(hbtop,False,False,0)
        vb.pack_start(hbtags,False,False,0)
        vb.pack_start(expression_menu,False,False,0)
        vb.pack_start(axis_menu,False,False,0)
        vb.pack_start(window_menu,False,False,0)
        vb.pack_start(dispatch_menu,False,False,0)
        vb.pack_start(action_menu,False,False,0)
        vb.pack_start(task_menu,False,False,0)
        vb.pack_start(any_menu,False,False,0)
        for w in self.widgets:
            w.set_no_show_all(True)
            vb.pack_start(w,False,False,0)
        vb.pack_start(hb2,False,False,20)
        self.add(vb)
        self.do_redo(self.redo)
        self.putOnApply = True
        self.nidOffset = -1

    def set_dtype(self):
        if hasattr(self,'_node'):
            try:
                exec('self.dtype=self.dtype_%s' % (self.node.usage.lower(),))
            except Exception:
                self.dtype=self.dtype_expression
        else:
            self.dtype=self.dtype_any
        self.dtype.set_no_show_all(False)
            
    def do_ok(self,button):
        try:
            value=self.value
            if not self.putOnApply:
                self.hide()
            elif hasattr(self,'_node'):
                try:
                    self.node.record=value
                    self.hide()
                except Exception:
                    self.popupError(sys.exc_info()[1])
            else:
                self.value=value
                self.hide()
        except:
            pass

    def do_redo(self,button):
        if not hasattr(self,'_node'):
            self.value=_value
            self.set_dtype()
        else:
            self.path.reset()
            self.on.set_active(self.node.disabled==False)
            self.parent_on.set_active(self.node.parent_disabled==False)
            tags = self.node.tags
            if tags is None:
                self.tags.set_text('')
            else:
                taglist=''
                for tag in tags:
                    if taglist == '':
                        taglist=tag
                    else:
                        taglist=taglist+','+tag
                self.tags.set_text(taglist)
            self.set_dtype()
            try:
                self.value=self.record
            except:
                self.value=None
        self.reset()

    def do_cancel(self,button):
        self.hide()