Last Modified: 2023-12-19
classDiagram

editorIndex
editorIndex *-- menu : 1. User clicks Layer
commands o-- selectBook
commands o-- selectPage
commands o-- selectLayer
commands o-- selectTool


class selectors{
  - List: App, Book,Page
  - List: Layer, Audio, Group, Timer ..
  + projectPageSelector
  + componentSelector
  - componentHandler()
}

class selectorBase{
  + selectorIcon
  + entries
  + onClick()
}

selectors <|..selectorBase: 1.1 onClick calls componentHandler

menu *-- selectors

selectors ..> store :1.2 commandHandler sets Layer entries

class commands {
  + page
  + book
  + layer
  * class
  store.set()
}

class selectTool {
  controller:command()
}

class editorAnimation {
  + layerTable as selectbox
  + controlbox
  + buttons
  + controller
}

class layerTable {
  + name
  + class entries: animation, interaction, replacement
  create() displays name and class entries
  oncllick() name for propsTable, animation for editorAnimation
}

class layerTableCommands{
  + commandHandler
  + commandHanderClass
}

class selectLayer {
  propsTable:setValue(decoded)
  propsTable:show()
  propsButtons:show()
}

class propsTable {
  can be editable
}

propsTable *-- buttons

selectLayer ..>propsTable

layerTable *--layerTableCommands

class controller {

  selectbox.classEditorHandler()
  -> reset()
  -> setValue()
  -> redraw()

  command()
    -> util.decode(params)
    -> selectbox:setValue(decoded)
    -> controlbox:didHide(UI)
    -> controlbox:destroy(UI)
    -> controlbox:init(UI)
    -> controlbox:setValue(decoded)
    -> controlbox:create(UI)
    -> controlbox:didShow(UI)
    -> controlbox:show()
    -> onCompletebox:show()
    -> buttons:show()
}


editorAnimation *-- layerTable

editorAnimation <|.. controller

layerTable <|.. baseTable : create() is overrided in layerTable

editorAnimation *-- conrolbox

conrolbox <|.. baseProps

class baseTable {
  + entries
  commandHandler()
  store.listener()
  render()
}

class BTree{
  setCondition()
  setActionStatus()
}

layerTableCommands ..> BTree : 2. User clicks a animation entry <br> 2.1 BTree select animation TRUE

BTree ..> commands : 2.2. load animation (Activated) <br>2.3.1 selectTool for animation class

commands ..> selectTool: 2.5. select animation
selectTool ..> controller: 2.5 calls command() to display animationEditor

store ..> baseTable : 1.3. calls listenr in baseTable

class selectbox{
  + setTemplate()
  + commandHandler()
}

editorAnimation *-- selectbox : User clicks an animation entry

selectbox --> controller : commandHandler calls classEdtiorHandler