def analogWrite(off=False):
    sb = createStatementBlock(off, 'analogWrite')
    sb.addCodeElement(gettext_noop('set analog pin'))
    sb.addArgumentHolder(createDropdownNumberBlockHolder(off, PWM_PINS, sb))
    sb.addCodeElement(gettext_noop('value'))
    sb.addArgumentHolder(createNumberBlockHolder(off, sb))
    return sb
def setServo(off=False):
    sb = createStatementBlock(off, 'setServo')
    sb.addCodeElement(gettext_noop('set'))
    sb.addVariableElement('servo', countComponents, 'component_servo')
    sb.addCodeElement(gettext_noop('angle'))
    sb.addArgumentHolder(createNumberBlockHolder(off, sb))
    sb.addCodeElement('°')
    return sb
def setLed(off=False):
    sb = createStatementBlock(off, 'setLed')
    sb.addCodeElement(gettext_noop('set'))
    sb.addVariableElement('led', countComponents, 'component_led')
    sb.addCodeElement(gettext_noop('to'))
    sb.addCodeElement()
    sb.addArgumentHolder(createDropdownBooleanBlockHolder(off, LED_VALUES, sb))
    return sb
def digitalWrite(off=False):
    sb = createStatementBlock(off, 'digitalWrite')
    sb.addCodeElement(gettext_noop('set digital pin'))
    sb.addArgumentHolder(createDropdownNumberBlockHolder(off, ALL_PINS, sb))
    sb.addCodeElement(gettext_noop('value'))
    sb.addArgumentHolder(
        createDropdownBooleanBlockHolder(off, DIGITAL_VALUES, sb))
    return sb
def posLcd(off=False):
    sb = createStatementBlock(off, 'posLcd')
    sb.addCodeElement('posicione')
    sb.addVariableElement('lcd', countComponents, 'component_lcd')
    sb.addCodeElement(gettext_noop('row'))
    sb.addArgumentHolder(createDropdownNumberBlockHolder(off, LCD_ROWS, sb))
    sb.addCodeElement(gettext_noop('column'))
    sb.addArgumentHolder(createDropdownNumberBlockHolder(off, LCD_COLS, sb))
    return sb
def setDisplay7seg(off=False):
    sb = createStatementBlock(off, 'setDisplay7seg')
    sb.addCodeElement(gettext_noop('show on'))
    sb.addVariableElement('display7seg', countComponents,
                          'component_display7seg')
    sb.addCodeElement(gettext_noop('the nº'))
    sb.addArgumentHolder(
        createDropdownNumberBlockHolder(off, DISPLAY_7SEG_NUMBERS, sb))
    return sb
def logicOperation(name, operator, off):
    bb = createBooleanBlock(off, name)
    bb.addArgumentHolder(createBooleanBlockHolder(off, bb))
    bb.addCodeElement(operator, {
        gettext_noop('and'): 'and_',
        gettext_noop('or'): 'or_'
    })
    bb.addArgumentHolder(createBooleanBlockHolder(off, bb))
    return bb
def setBuzzer(off=False):
    sb = createStatementBlock(off, 'setBuzzer')
    sb.addCodeElement(gettext_noop('play'))
    sb.addVariableElement('buzina', countComponents, 'component_buzzer')
    sb.addCodeElement('<i>' + gettext_noop('note') + '</i>')
    sb.addArgumentHolder(
        createDropdownNumberBlockHolder(off, MANY_FEW_NOTES, sb))
    sb.addCodeElement('<i>' + gettext_noop('duration') + '</i>')
    sb.addArgumentHolder(createNumberBlockHolder(off, sb))
    return sb
def setRGBLed(off=False):
    sb = createStatementBlock(off, 'setRGBLed')
    sb.addCodeElement(gettext_noop('set'))
    sb.addVariableElement('led rgb', countComponents, 'component_rgb_led')
    sb.addCodeElement(gettext_noop('R'))
    sb.addArgumentHolder(createNumberBlockHolder(off, sb))
    sb.addCodeElement(gettext_noop('G'))
    sb.addArgumentHolder(createNumberBlockHolder(off, sb))
    sb.addCodeElement(gettext_noop('B'))
    sb.addArgumentHolder(createNumberBlockHolder(off, sb))
    return sb
def onMotor(off=False):
    sb = createStatementBlock(off, 'onMotor')
    sb.addCodeElement(gettext_noop('on'))
    sb.addCodeElement()
    sb.addVariableElement('motor', countComponents, 'component_motor')
    sb.addCodeElement()
    sb.addCodeElement(gettext_noop('to'))
    sb.addCodeElement()
    sb.addArgumentHolder(
        createDropdownBooleanBlockHolder(off, DIRECTIONS_MOTOR, sb))
    return sb
def getButton(off=False):
    sb = createBooleanBlock(off, 'getButton', 'purple')
    sb.addCodeElement('o')
    sb.addVariableElement(gettext_noop('button'), countComponents,
                          'component_button')
    sb.addCodeElement('est&aacute; pressionado')
    return sb
def setLcd(off=False):
    sb = createStatementBlock(off, 'setLcd')
    sb.addCodeElement('escreve no')
    sb.addVariableElement('lcd', countComponents, 'component_lcd')
    sb.addCodeElement(gettext_noop('text'))
    sb.addArgumentHolder(createStringBlockHolder(off, sb))
    return sb
def setBrightnessLed(off=False):
    sb = createStatementBlock(off, 'setBrightnessLed')
    sb.addCodeElement(gettext_noop('set'))
    sb.addVariableElement('led', countComponents, 'component_led')
    sb.addCodeElement('brilho')
    sb.addCodeElement()
    sb.addArgumentHolder(createNumberBlockHolder(off, sb))
    return sb
def speedMotor(off=False):
    sb = createStatementBlock(off, 'speedMotor')
    sb.addCodeElement(gettext_noop('speed'))
    sb.addCodeElement()
    sb.addVariableElement('motor', countComponents, 'component_motor')
    sb.addCodeElement()
    sb.addArgumentHolder(createNumberBlockHolder(off, sb))
    return sb
def logicConstant(name, operator, off):
    bb = createBooleanBlock(off, name)
    bb.addCodeElement(operator, {
        gettext_noop('TRUE'): 'true_',
        gettext_noop('FALSE'): 'false_'
    }, {
        gettext_noop('T'): gettext_noop('TRUE'),
        gettext_noop('F'): gettext_noop('FALSE')
    })
    return bb
def clearDisplay7seg(off=False):
    sb = createStatementBlock(off, 'clearDisplay7seg')
    sb.addCodeElement(gettext_noop('erase'))
    sb.addVariableElement('display7seg', countComponents,
                          'component_display7seg')
    return sb
def analogRead(off=False):
    nb = createNumberBlock(off, 'analogRead', 'purple')
    nb.addCodeElement(gettext_noop('analog pin'))
    nb.addArgumentHolder(createDropdownNumberBlockHolder(off, ANALOG_PINS, nb))
    nb.addCodeElement()
    return nb
def digitalRead(off=False):
    bb = createBooleanBlock(off, 'digitalRead', 'purple')
    bb.addCodeElement(gettext_noop('digital pin'))
    bb.addArgumentHolder(createDropdownNumberBlockHolder(off, ALL_PINS, bb))
    bb.addCodeElement()
    return bb
def offMotor(off=False):
    sb = createStatementBlock(off, 'offMotor')
    sb.addCodeElement(gettext_noop('stop'))
    sb.addCodeElement()
    sb.addVariableElement('motor', countComponents, 'component_motor')
    return sb
def getThermistor(off=False):
    nb = createNumberBlock(off, 'getThermistor', 'purple')
    nb.addCodeElement(gettext_noop('temperature'))
    nb.addVariableElement('termistor', countComponents, 'component_thermistor')
    return nb
def delayUntil(off=False):
    sb = createStatementBlock(off, 'delayUntil', 'orange')
    sb.addCodeElement(gettext_noop('espere ate que'))
    sb.addArgumentHolder(createBooleanBlockHolder(off, sb))
    return sb
def getKnob(off=False):
    nb = createNumberBlock(off, 'getKnob', 'purple')
    nb.addCodeElement('valor')
    nb.addVariableElement(gettext_noop('knob'), countComponents,
                          'component_knob')
    return nb
def repeat_(off=False):
    csb = createCompoundStatementBlock(off, 'repeat_', loop=True)
    csb.addCodeElement(gettext_noop('repeat'))
    csb.addArgumentHolder(createNumberBlockHolder(off, csb))
    return csb
def getLdr(off=False):
    nb = createNumberBlock(off, 'getLdr', 'purple')
    nb.addCodeElement(gettext_noop('luminosity'))
    nb.addVariableElement('ldr', countComponents, 'component_ldr')
    return nb
def while_(off=False):
    csb = createCompoundStatementBlock(off, name='while_', loop=True)
    csb.addCodeElement(gettext_noop('while'))
    csb.addArgumentHolder(createBooleanBlockHolder(off, csb))
    return csb
def forever(off=False):
    mb = createMainBlock(off, 'forever')
    mb.addCodeElement(gettext_noop('forever'))
    return mb
def delay_(off=False):
    sb = createStatementBlock(off, 'delay_', 'orange')
    sb.addCodeElement(gettext_noop('delay'))
    sb.addArgumentHolder(createNumberBlockHolder(off, sb))
    sb.addCodeElement('ms')
    return sb
def getJoystickVRy(off=False):
    nb = createNumberBlock(off, 'getJoystickVRy', 'purple')
    nb.addCodeElement(gettext_noop('ordinate') + ' (y)')
    nb.addVariableElement('joystick', countComponents, 'component_joystick')
    return nb
Esempio n. 29
0
    def __init__(self, changeLanguage, **kwargs):
        FlowPanel.__init__(self, **kwargs)
        self.setID('header')

        #---------------------------------------------------------------------------------------------------
        div = Element(Element=DOM.createDiv(), StyleName='btn-group2')

        self.buttonBlocks = Button(_('Blocks'),
                                   self.showBlocks,
                                   classIcon="icon-selected")
        div.add(self.buttonBlocks)

        self.buttonHarwares = Button(_('Components'),
                                     self.showHardwares,
                                     classIcon="icon-deselected")
        div.add(self.buttonHarwares)

        self.add(div)
        #---------------------------------------------------------------------------------------------------
        div = Element(Element=DOM.createDiv(),
                      StyleName='btn-group2 groupHidden')

        self.buttonMakeBlock = Button(_('Building Block'),
                                      self.makeBlock,
                                      classIcon="icon-buildBlock")
        div.add(self.buttonMakeBlock)

        #self.dropdownMakeBlock = Dropdown('', None, self.makeBlockItemClick, StyleName='dropdown_btn', rootPanel=div)
        #self.dropdownMakeBlock.addValue('Importar Bloco', 'icon-ImportBlock')
        #self.dropdownMakeBlock.addValue('Exportar Bloco', 'icon-ExportBlock')
        #div.add(self.dropdownMakeBlock)

        self.add(div)

        #---------------------------------------------------------------------------------------------------
        #div = Element(Element=DOM.createDiv(), StyleName='btn-group2')

        #self.buttonReload = Button(_('Reload'), self.reloadClick, classIcon="icon-repeat")
        #div.add(self.buttonReload)

        #self.add(div)

        #---------------------------------------------------------------------------------------------------
        div = Element(Element=DOM.createDiv(),
                      StyleName='btn-group2 groupHidden')

        self.buttonUndo = Button(_('Undo'), undo, classIcon="icon-undo")
        div.add(self.buttonUndo)

        self.buttonRedo = Button(_('Redo'), redo, classIcon="icon-redo")
        div.add(self.buttonRedo)

        self.add(div)

        #self.buttonUndo2 = Button("Desfazer2", self.undo2)
        #self.add(self.buttonUndo2)

        #self.buttonRedo2 = Button("Refazer2", self.redo2)
        #self.add(self.buttonRedo2)

        #---------------------------------------------------------------------------------------------------
        div = Element(Element=DOM.createDiv(),
                      StyleName='btn-group2 groupHidden')

        self.buttonOpen = Button(_('Open'), loadState, classIcon="icon-open")
        div.add(self.buttonOpen)

        self.buttonSave = Button(_('Save'),
                                 saveState,
                                 classIcon="icon-download")
        self.buttonSave.setID("btnSave")
        div.add(self.buttonSave)

        self.add(div)

        #---------------------------------------------------------------------------------------------------
        div = Element(Element=DOM.createDiv(), StyleName='btn-group')

        self.codeGenerator = GenerateCodeButtonListener(
            getWorkspace().getCodePanel())
        self.buttonTranslate = Button(_("Translate"), self.codeGenerator)
        self.buttonTranslate.addMouseListener(self)
        div.add(self.buttonTranslate)

        self.dropdownTranslate = Dropdown('',
                                          None,
                                          self.translateItemClick,
                                          StyleName='dropdown_btn',
                                          rootPanel=div)
        self.isAutomatic = False
        self.dropdownTranslate.addValue(gettext_noop('Manual'),
                                        'icon-selected')
        self.dropdownTranslate.addValue(gettext_noop('Automatic'),
                                        'icon-deselected')
        div.add(self.dropdownTranslate)

        self.add(div)

        #---------------------------------------------------------------------------------------------------
        div = Element(Element=DOM.createDiv(), StyleName='btn-group2')

        self.changeLanguage = changeLanguage
        self.dropdownFlag = Dropdown('',
                                     None,
                                     self.flagItemClick,
                                     StyleName='dropdown_btn flag',
                                     classIcon='icon-pt_BR')
        self.dropdownFlag.addValue('Portugu&ecirc;s', 'icon-pt_BR')
        self.dropdownFlag.addValue('English', 'icon-en_US')
        self.dropdownFlag.addValue('Espa&ntilde;ol', 'icon-es_ES')
        self.dropdownFlag.addValue('Italiano', 'icon-it_IT')
        self.dropdownFlag.addMouseListener(TooltipListener("Idioma"))
        div.add(self.dropdownFlag)

        self.add(div)
        #---------------------------------------------------------------------------------------------------

        self.mainStack = []
def if_else_(off=False):
    csb = createCompoundStatementBlock(off, 'if_else_', 2)
    csb.addCodeElement(gettext_noop('if&nbsp;&nbsp;'))
    csb.addArgumentHolder(createBooleanBlockHolder(off, csb))
    csb.block.addCodeElement(gettext_noop('else'))
    return csb