Skip to content

Latest commit

 

History

History
63 lines (60 loc) · 2.88 KB

TODO.md

File metadata and controls

63 lines (60 loc) · 2.88 KB

Jus

Active varibles that bind to vanilla Julia code -- no need to implement the observer pattern

  • make Browser struct and make start pop one up with the data
    • make data-history so browser can integrate with history on the front end
  • remove Field struct and use keyword args instead
  • testing :genview with example2.jl:
    • person view
      Jus.start(Person(name="Fred", address="123"))
    • strings -- text field
    • enums -- radio button
    • bools -- checkbox
    • numbers -- number spinner
    • vectors -- (using a listeditor presenter)
  • fix deleting people in sample app
  • implement delete id that deletes a var and all its children
  • rename disableSelection to disableUpdates
  • allow disabling variable observation
  • naked objects for types that have no vewidef
  • floating editor mode (1 or 2 additional views for PersonApp)
  • put the generation templates into a directory
    • make Config have a directory path for templates to developers can override it
    • add a Config.store_generated field to hold a directory for storing generated viewdefs
  • make a separate output task for each connection so that background code can update the front end
  • make adjustIndex work
  • make a present Julia function that opens a browser, plus a cmd line option to invoke it
  • merge result and update into one object (pass result to finish_command)
    • process in result, update order but only return from promise after both
  • switch to fast components (it has a tree view): https://www.fast.design/docs/components/getting-started/
  • use material web components for widgets
  • take out mwc- references from generic codebase
    • support extension so mwc- can work and put mwc extension in samples

Parts

  • refreshing
    • parents can transform variable values
      • implement
      • test
  • setting variables
  • observing variables
  • routing commands
    • parents can alter commands
    • current values can alter commands
  • metadata
    • path
      • composed of fields and functions: "a b() c d"
      • each item is called with the previous one
      • functions are allowed to contain dots (for module qualifiers)
      • for a setter, the final item is
        • assigned to the value if it is a symbol
        • called with (data, value) if it is a function
      • actions
        • access=action
        • like a setter but called with no args
        • last element must be a function
        • function will be called with (data), like a getter (not (data, value))