Devo consentire all'utente di creare un albero binario. Ho un modello Backbone che viene compilato correttamente dal database, il problema su cui sono bloccato è come impostare gli elementi dell'interfaccia utente in un modo abbastanza semplice da usare?
L'idea generale è che voglio creare un'espressione booleana che contenga logica e token. I token verranno sostituiti successivamente in fase di runtime con i dati del modello appropriati quando viene valutata l'espressione.
Finisci con un'espressione finale come questa:
((({Claim.State})=(TX))||(({Claim.PolicyState})!=(UT)))
Vale a dire, valutare su true se lo stato = TX o lo stato della politica non è UT
Ogni espressione può essere un nodo di terminazione e avrà un valore o non avrà alcun valore e la sinistra e la destra punteranno alle successive rispettive espressioni e a un operatore
La struttura del database è simile a questa:
- Verifica stato: sinistra: 2 destra: 3 operatore: OR
- Stato è TX: Sinistra: 4 Destra 5 Operatore: uguale a
- Stato non UT: Sinistra: 6 Destra 7 : Operatore: Non
- Stato reclamo: Sinistra: nulla Diritto: valore nullo: {Claim.State}
- Texas Literal: Sinistra: nil Destra: nil Valore: "TX"
- Stato della politica: sinistra: nulla destra: valore nullo: {Claim.PolicyState}
- Utah Literal: Sinistra: nil Destra: nil Valore: "UT"
Sto immaginando qualcosa come per l'espressione Sopra, creando un pannello con 3 elenchi selezionati e un'etichetta sopra di esso:
----------------------------------------------------------------
Name: |State Check| [.] Value [0] Expression
Left (Edit/New) Operator Right (Edit/New)
Expression: [ State is TX ] [ Or ] [ State is not UT ]
(Save)
----------------------------------------------------------------
A questo punto sono bloccato. Cosa dovrebbe succedere quando dici che l'utente vuole modificare il valore della mano sinistra? Aprirò una nuova finestra popup per eseguire nuovamente lo stesso modulo, iniziando con 2 invece di 1 per la chiave dell'espressione iniziale?
Devo sostituire il modulo esistente con i nuovi valori e in qualche modo tenere traccia di dove l'utente fa riferimento all'espressione iniziale?
Forse far scorrere un nuovo pannello di editor sotto la corrente?
Che cosa ne pensate voi ragazzi? Sono davvero bloccato su cosa fare.