Come dovrei configurare un'interfaccia utente per la modifica di un albero binario? [chiuso]

-1

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:

  1. Verifica stato: sinistra: 2 destra: 3 operatore: OR
  2. Stato è TX: Sinistra: 4 Destra 5 Operatore: uguale a
  3. Stato non UT: Sinistra: 6 Destra 7 : Operatore: Non
  4. Stato reclamo: Sinistra: nulla Diritto: valore nullo: {Claim.State}
  5. Texas Literal: Sinistra: nil Destra: nil Valore: "TX"
  6. Stato della politica: sinistra: nulla destra: valore nullo: {Claim.PolicyState}
  7. 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.

    
posta asawyer 09.03.2012 - 20:40
fonte

1 risposta

5

destro. Questo dovrebbe essere davvero su UX, ma ti dirò dove penso che stai andando male.

L'UTENTE NON VUOLE "MODIFICARE UN ALBERO BINARIO"

L'utente non ha alcun concetto particolare di valori o nodi di sinistra. Quelli si basano sul tuo approccio all'implementazione del problema.

L'utente ha un'attività da completare. Devi considerare cosa generalmente tenteranno di fare (il caso d'uso in UML o "user story" in agile) e costruire l'interfaccia utente attorno a loro realizzando tale compito nel numero minimo di azioni.

Ad esempio, quando acquisti online, non ti occupi di Secure Socket Layers, Network Encryption o della struttura dei database di Amazon o degli script php.

  • Inserisci i dettagli di spedizione e pagamento in una pagina e premi invio. Controlla l'ordine e premi "Conferma"
  • Una volta che l'hai fatto una volta, la volta successiva che vuoi farlo, il processo è ottimizzato per ridurre il numero di passaggi di pagamento che devi eseguire caricando i tuoi dettagli già, quindi basta fare clic per confermare.
  • Puoi anche saltare il passaggio di conferma con 1-Click, quindi è letteralmente "trova cosa, premi il pulsante, attendi consegna"

Questo è l'approccio che dovresti prendere. Verifica ciò che il tuo utente sta cercando di raggiungere. Che cosa caricano la tua applicazione e / o pagina web per provare a fare, nei termini più generali (ad esempio, inoltrare un reclamo, organizzare una serie di reclami, gestire un reclamo) e andare da lì.

Se rimani bloccato con questo approccio, le persone UX possono aiutarti, ma pensa sempre "interazione utente", non "interazione ui con back-end".

    
risposta data 09.03.2012 - 22:18
fonte

Leggi altre domande sui tag