Skip to content

Latest commit

 

History

History
222 lines (158 loc) · 6.78 KB

WORK_IN_PROGRESS.md

File metadata and controls

222 lines (158 loc) · 6.78 KB

RITDevX - Rapid Interface Tool for Devices Experiments

This document describes the planned requirements for the project and its current state

[PT_BR] Esse documento descreve os requisitos planejados para o projeto e seu atual estado

Codacy Badge

Desinger

File Operations

  • Save
  • Save As
  • Open
  • NEW / Clear
  • Exit
  • Exit (ask if as changes.)
  • Warning for IMAGES not found on open file
  • List of Recent files
  • Show loading on Open large files..
  • Add Layer Support
  • Print-screen - to export components to easy create backboards

Editing Features

  • Drag and drop (external images)
  • Move Components
  • Move Components (using keyboard arrows)
    • Move fast using CTRL
  • Delete (Delete key / popup)
  • Delete (ask before delete ?)
  • Clone
  • Rename
  • Show Grid
  • Double-click switch image state (ON/OFF)
  • Grid Snap (using grid constraints)
  • Guide lines
  • Snap / Guide lines with others components
  • Popup on right click (allow change file properties / images)
  • Open Image Editor (like gimp) on Po-pup Menu...
  • Auto-reload images on external changes (automatic ou from button ?).
  • Control + Z (Undo / Redo)
  • Detect transparent image shape / border
  • Relative image (open)
  • Relative image (save)
  • Custom Color Choser

Simulation

  • Start simulation (F9)
  • Disconnect on close

Visual

  • Arduino IDE Plugin / Integration
  • Disable events table (not used for while...)
  • Create menu / toolbar using icons.
  • 2 layous (Compact / Two-Panel)
  • Translation (implement controller/utils/I18n.java)
  • Slash Screen / Icon

Components / Widgets

  • Documentation for widgets .. (generate HTML from markdown?!) NOTE: the documentation has to be clear that it uses OpenDevice in the protocol ...
  • Allow creatate Containers, and set border, backgrouds and titles Like: https://www.youtube.com/watch?v=DuEwOkOvlB0 para quem tiver preguiça de desenhar, ou criar uma forma de update em tempo real.

Images (on/off images)

  • On/Off images
  • Design Mode
  • Controller Mode
  • Avoid click in transparent areas of image
  • [ ]
  • Resize

Icons

  • Design Mode
  • Controller Mode
  • On/Off images
  • Operation modes
  • CustomCmd : Send values defined by user.

Charts (XCharts)

  • Line
    • Design Mode
    • Controller Mode
  • Multi-line support

Button (image)

  • Design Mode
  • Controller Mode
  • CustomCmd : Send values defined by user.
  • Pre-defined buttom images
  • Contribuited images loaded from github
  • Operation modes
    • Sensor
    • Switch
    • Push

Gauges (SteelSeries)

Note: we need a big help here. This library has a multiple of configuration parameters, but leaving so many options confuses the user, an assessment needs to be made of which attributes are useful for each component.

  • Design Mode
  • Design Mode Cleanup...
  • Controller Mode

Levels (SteelSeries)

Controller (Execution)

  • CLI - Run from cmd line
  • Run / Simulate from Designer
  • Log View
    • Log View (auto-clear or use CircularBuffer to avoid memory leaks)
    • Raw Logs view
    • Save logs to file
  • Reportar errros (https://www.bugsnag.com/open-source | https://sentry.io/for/open-source/)
  • OpenDevice protocol support
    • Send
    • Receive
    • Release OpenDevice (arduino and java library)
  • Communication
    • Usb
    • Bluetooth
    • TCP / WIFI
  • Notifications of Connection status... (connecting and disconnected.)
  • Support for sending commands (user commands)
  • Example with Arduino
  • Example of receipt with Esp8266
  • Multiple charts to same DATA
    • Allow create multiple viwes, from same device.
    • Create shared datasource.
    • Attribute: Variable (allow use Var1,Var2,Var3)

GENERAL TODO

======================

  • REMOVE dependency: TreeMap<String, JComponent> addedComponents;

  • Exepction dialog.

  • Opção de Escolher o Layout da tela.

  • Opção FULLSCREEN / FRAMELESS (no raspberry nem precisa .. mas no desktop eventualmente seria interessante )

  • Suporte a multiplas telas (multiplos arquivos)?

  • Usar a variavel Layer com uma configuração específica, permitindo alterar o layer (ao adicionar e editar)

  • Tem que ficar claro que pode usar o teclado, teria que ter um efeito de SELECIONADO...

  • user Scroll to resize... (if is resizable)

  • JTableX, praticamente n serve para nada

  • Nagegação de multiplos componentes... pode ser interessante suportar MUDANÇAS DE "PÁGINA"

  • Criar utorial de como Extender e criar novos widegts JAVA e Apenas WidgetSkins

  • User FONT-ICON, para componentes e indicadores...

  • Interface remota raspberry - Aqui seria o raspberry acessando uma pasta remota do PC, e monitorando ou recebendo notificações de alteração Se ateração for de imagens, recarrega tudo, se for possição é em realtime...

  • Remo

    • GIF / MultiStateGiff, usar um gif onde cada frame é um estado do compoente.
      Ou atributo de ANimado e não Animado
  • Suporte a ZOOM: http://ayetgin.blogspot.com/2015/05/howto-zoom-inout-with-java-swing.html http://ayetgin.blogspot.com/2015/05/howto-zoom-inout-with-java-swing.html

  • Criar função para mudar o Layer do componente

  • Medusa compoentn library (JavaFX): https://github.com/HanSolo/Medusa

  • Permitir criar scripts....

  • Remove: ScreenShot button

ImageSelectorDialog

A parte de usabilidade e edição está ficando bem legal...

Segue alguns exemplos de utilização que estou testando.