예제 #1
0
class BooleanArgument(Argument):
    def __init__(self):
        Argument.__init__(self, [Block.BOOLEAN_BLOCK])
        self.height = 20
        self.width = 15
        drawBooleanArgument(self)
        self.addInput()
        self.resize()

    def addInput(self):
        self.input = TextBox()
        self.input.setWidth(20)
        self.input.addInputListener(self)
        self.append(self.input)
        DOM.setBooleanAttribute(self.input.getElement(), "readOnly", True)
        self.input.addChangeListener(self)

    def onChange(self, sender):
        from edu.uca.util.Serializable import stateChange
        stateChange()

    def onInput(self, sender):
        if len(self.input.getText()) == 0:
            self.input.setWidth(
                20)  # nao esta usando pois nao pode digitar no input bool
        else:
            self.input.setWidth(20 + ((len(self.input.getText()) - 1) * 7))
        self.width = self.input.getWidth()
        self.resize()

    def resize(self):
        c = math.ceil(self.height / 2 + 1)
        self.tr.setStyleAttribute({
            'right': -c - 2,
            'width': c + 3,
            'height': c
        })
        self.br.setStyleAttribute({
            'right': -c - 2,
            'width': c + 3,
            'height': c
        })
        self.tl.setStyleAttribute({
            'left': -c - 2,
            'width': c + 3,
            'height': c
        })
        self.bl.setStyleAttribute({
            'left': -c - 2,
            'width': c + 3,
            'height': c
        })
        self.setStyleAttribute({'width': self.width})
        self.t.setWidth(self.width)
        self.b.setWidth(self.width)
class InputControl(Control):
    def __init__(self,
                 min_value,
                 max_value,
                 start_value=None,
                 step=None,
                 **kwargs):

        if not kwargs.has_key("StyleName"):
            kwargs['StyleName'] = "gwt-InputControl"
        self.input = TextBox()
        self.input.addKeyboardListener(self)
        #element = DOM.createDiv()
        if kwargs.has_key('Element'):
            # XXX FIXME: unlikely to work!
            element = kwargs.pop('Element')
        else:
            element = self.input.getElement()  # YUK!!!
        Control.__init__(self, element, min_value, max_value, start_value,
                         step, **kwargs)

        self.addClickListener(self)
        self.addFocusListener(self)
        self.addKeyboardListener(self)

    def onFocus(self, sender):
        self.addStyleName("gwt-InputControl-focussed")

    def onLostFocus(self, sender):
        self.removeStyleName("gwt-InputControl-focussed")

    def setControlPos(self, value):

        self.input.setText(value)

    def onKeyPress(self, sender, keycode, modifiers):
        if keycode == KeyboardListener.KEY_ENTER:
            DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
            txt = self.input.getText()
            if not txt:
                return
            new_value = float(txt)
            new_value = self.processValue(new_value)
            self.setControlPos(new_value)
            self.setValue(new_value)
        else:
            Control.onKeyPress(self, sender, keycode, modifiers)
예제 #3
0
파일: InputControl.py 프로젝트: Afey/pyjs
class InputControl(Control):

    def __init__(self, min_value, max_value, start_value=None, step=None,
                       **kwargs):

        if not kwargs.has_key("StyleName"):
            kwargs['StyleName'] = "gwt-InputControl"
        self.input = TextBox()
        self.input.addKeyboardListener(self)
        #element = DOM.createDiv()
        if kwargs.has_key('Element'):
            # XXX FIXME: unlikely to work!
            element = kwargs.pop('Element')
        else:
            element = self.input.getElement() # YUK!!!
        Control.__init__(self, element, min_value, max_value, start_value, step,
                               **kwargs)

        self.addClickListener(self)
        self.addFocusListener(self)
        self.addKeyboardListener(self)

    def onFocus(self, sender):
        self.addStyleName("gwt-InputControl-focussed")

    def onLostFocus(self, sender):
        self.removeStyleName("gwt-InputControl-focussed")

    def setControlPos(self, value):

        self.input.setText(value)

    def onKeyPress(self, sender, keycode, modifiers):
        if keycode == KeyboardListener.KEY_ENTER:
            DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
            txt = self.input.getText()
            if not txt:
                return
            new_value = float(txt)
            new_value = self.processValue(new_value)
            self.setControlPos(new_value)
            self.setValue(new_value)
        else:
            Control.onKeyPress(self, sender, keycode, modifiers)