Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
W
wiki
  • Project
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Иван Кубота
  • wiki
  • Wiki
  • Input

Input

Last edited by Иван Кубота Sep 20, 2017
Page history

Input

Компонент с кастомным пикером

Принцип работы: Этот компонент ведёт себя как обычный TextBox, но позволяет назначить кастомный picker для ввода данных. Пикер появляется в нижней части экрана.

Код использования инпута:

    Input i0: {{this.day}}-{{this.month}}-{{this.year}} // отображаем дату в формате ДД-МММММММ-ГГГГ
        label: Мой инпут дня начала
        picker: MyWheels //имя пикера
        day: 19
        month: Сентября
        year: 2017

Код определения пикера MyWheels:

def UIComponent MyWheels
    public Number year: {{w3}}
    public String month: {{w2}}
    public Number day: {{w1}}

    Calendar cal
        day: {{day}}
        month: {{month}}
        year: {{year}}
        minYear: 1937
        maxYear: 2100

    HBox
        flexDefinition: 150px 550px 300px
        Wheel w1
            value: {{day}}
            data: {{cal.days}}
        Wheel w2
            value: {{month}}
            data: {{cal.months}}
        Wheel w3
            value: {{year}}
            data: {{cal.years}}

При активации поля - инстанциируется MyWheels и помещается в нижнюю область ввода.

После этого происходит установка всех экспортированных публичных свойств пикера.

В данном случае year, month и day перезаписываются текущими значениями инпута:

  • year: 2017
  • month: Сентября
  • day: 19

Компонент Input подписывается на изменение этих свойств у пикера и при наступлении - выставляет новое значение себе.

Это значит что мы создали Input i0 и можем использовать его свойства в коде. {{i0.day}} отдаст день.


Отдельный пример чисто показать мастерство:

Инпут с бинарным представлением числа

    Input: {{this.v1+this.v2*2+this.v3*4+this.v4*8+this.v5*16}}
        label: Охуенный инпут числа
        picker: Digital
        v1: 0
        v2: 0
        v3: 1
        v4: 0
        v5: 1

Пикер с пятью свитчами для выбора числа:

def UIComponent Digital
  HBox
    padding: 20px
    height: 110px
    public String label: Охуенный инпут числа {{tt.counter}} // Да, мы можем изменять все свойства инпута, в том числе `лэйбл`, паддинги, высоту
    public Switch v1
    public Switch v2
    public Switch v3
    public Switch v4
    public Switch v5
    Timer tt
        enabled: true
        interval: 300
Clone repository
  • Dialog
  • Event bus (ext. doc)
  • External (extended) documentation
  • Facerecognition
  • Logging (ext. doc)
  • Objects
  • Quokkascript crash course
  • Recfaces camera recognition services
  • Control_back
  • Control_forward
  • Control_main_menu
  • Control_primary_account_number
  • Control_to_main_menu
  • Devices
  • Events
More Pages
×

New Wiki Page

Tip: You can specify the full path for the new file. We will automatically create any missing directories.