/VPL-Core

Visual Programming Language

Primary LanguageJavaApache License 2.0Apache-2.0

DESCRIPTION

A visual programming environment build with JavaFX.

See example at: https://www.youtube.com/watch?v=Oev1IJZvAPw

QUICK START

  • Left drag: selection rectangle
  • Right drag: pan
  • Right click: radial menu
  • Double click: open block search box
  • Mouse wheel: zoom

SHORTCUTS

  • CMD/CTRL-C: copy selected blocks
  • CMD/CTRL-V: paste copied blocks
  • CMD/CTRL-G: group selected blocks
  • CMD/CTRL-O: load graph
  • CMD/CTRL-S: save graph
  • CMD/CTRL-N: new graph
  • Space: zoom to fit
  • Del/Backspace: delete selected blocks

FUNCTIONALITIES

  • Input functions to generate primitve data types e.g. String, Boolean, Integer, Long, Double
  • Math functions such as multiply, divide, add and substract
  • List functions to get, add, remove and replace items
  • Json functions to get properties

CUSTOMIZE

  • Create custom blocks by copying TemplateBlock.java and change its behaviour
  • Create your own library with block types and add it to "build/lib/"

STYLE

  • Change styles in App.java to either flat white, flat dark or default
  • Customize your own style by using one of the above styles as template

TODO

  • General UI/UX
    • Start screen
    • Undo/redo
    • Auto save/load
    • ✅ Menu bar
    • ✅ Save canvas size, position and zoom factor
    • ✅ Zoom controls

  • Block behaviour
    • Hints
    • Exceptions
    • ✅ Remove connections
    • ✅ Save block size

  • Block library extension
    • ✅ Load external libraries (subclasses and static methods)
    • ✅ Load blocks through reflection
    • ✅ Migrate existing blocks to external libraries

  • Select Block
    • Search through tags

  • Bugs
    • ✅ Fix align submenu of radial menu

  • Other
    • Customization functionality through config file
    • Comments
    • Scripting block
    • Looping groups/areas
    • Improve grouping
    • BUG text and blocks are copied/pasted simultaneously
    • ✅ Remove Obj library