it-swarm-eu.dev

Istanze multiple di un editor di proprietà

Sto progettando un'applicazione in cui diversi tipi di oggetti utente hanno proprietà. Quando si fa clic su un oggetto, le proprietà dell'oggetto verranno visualizzate in un riquadro simile al riquadro Proprietà in Visual Studio. Questo riquadro consente di visualizzare e modificare le proprietà di uno o più oggetti selezionati. (riquadro simile può essere trovato in molte altre applicazioni, come Expression Blend, Adobe Lightroom, ecc ...)

Voglio anche essere in grado di Pin l'oggetto attualmente ispezionato su un editor delle proprietà in modo che rimanga lì (intendo che gli oggetti rimangono nell'editor delle proprietà. non sto parlando della funzione Nascondi automaticamente). Quindi l'utente può selezionare un altro oggetto ed è in grado di confrontare i due oggetti contemporaneamente e vedere due editor di proprietà.

Conosci qualche software che lo fa? Sto cercando il modello di interfaccia utente e il paradigma giusti per implementare tale funzionalità.

Alcuni modelli che pensavo potessero funzionare:

Modello 1 - L'utente può creare un'istanza di tutti gli editor delle proprietà che desidera. Solo 1 istanza degli editor di proprietà aperti è quella predefinita. L'editor delle proprietà predefinito mostra l'oggetto attualmente selezionato. L'utente è in grado di fare clic sull'icona Predefinito nell'Editor proprietà per indicare quale è Predefinito. Facendo clic su Predefinito su un'istanza si rimuoverà lo stato È Predefinito dello istanza predefinita precedente.

Modello 2 - L'utente può creare un'istanza di tutti gli editor delle proprietà che desidera. È possibile bloccare ogni istanza dell'Editor proprietà. Quando un Editor proprietà è bloccato, l'oggetto associato ad esso rimane in esso e non può essere modificato dalla selezione corrente. Problemi: quando si seleziona un oggetto, quale degli editor di proprietà non appuntati mostrerà l'oggetto? Cosa succede se tutti gli editor di proprietà sono bloccati?

Modello - Le istanze dell'Editor proprietà vengono create automaticamente dal framework. Per impostazione predefinita, viene mostrato un Editor proprietà. Le istanze dell'editor di proprietà vengono create automaticamente quando un oggetto viene bloccato. Quando un Editor proprietà viene bloccato, viene creata un'altra nuova istanza vuota, pronta a ricevere la selezione. Gli editor delle proprietà sono impilati orizzontalmente e il sistema mantiene sempre un solo editor delle proprietà predefinito. L'annullamento del blocco di un editor di proprietà lo distrugge automaticamente.

Quale modello è il migliore? Hai altri suggerimenti?

4
decasteljau

Eviterei il modello 2 con la sua complicazione di discriminare e gestire più riquadri di proprietà bloccati e non fissati a causa del problema citato. Inoltre, non capisco cosa significhi un riquadro non predefinito non registrato, quindi potrebbe confondere anche i tuoi utenti. Mi sembra sia un riquadro ripopolare quando cambia la selezione degli oggetti o no. Cosa altro c'è?

I modelli 1 e 3 sono simili a quanto ho capito. Entrambi non hanno più di un riquadro proprietà predefinito, ma differiscono nel modo in cui l'utente lo designa. Solo per essere sicuro di avere questo diritto:

Modello 1

  • L'utente seleziona l'oggetto A da confrontare. L'app popola il riquadro predefinito con le proprietà di A.

  • L'utente seleziona un comando come "Nuovo riquadro delle proprietà". L'app apre un nuovo riquadro. Il nuovo riquadro diventa quello predefinito (penso che sia il migliore, ma non è necessariamente necessario).

  • L'utente seleziona l'oggetto B. L'app popola il riquadro predefinito con le proprietà di B.

  • Ripetere gli ultimi due passaggi per ulteriori oggetti, se necessario.

Modello

  • L'utente seleziona l'oggetto A da confrontare. L'app popola il riquadro predefinito con le proprietà di A.

  • L'utente seleziona il comando Appuntato. L'app apre un nuovo riquadro che diventa quello predefinito.

  • L'utente seleziona l'oggetto B. L'app popola il riquadro predefinito con le proprietà di B.

  • Ripetere gli ultimi due passaggi per ulteriori oggetti, se necessario.

Il vincitore?

La differenza principale è esattamente dove gli utenti fanno clic su un'istanza di un nuovo riquadro delle proprietà predefinito e su come viene etichettato.

Sono propenso al Modello 1 perché è un'interfaccia utente complessivamente più semplice. Avrai bisogno di un comando per aprire un riquadro delle proprietà in entrambi i modelli perché dovrai consentire agli utenti di chiudere (tutti) i riquadri delle proprietà in modo che possano declutterare lo schermo. Nel modello 1 viene utilizzato anche lo stesso comando per aprire il primo riquadro delle proprietà per aggiungerne di nuovi. Il modello 3 ha un comando aggiuntivo per apprendere e distinguere.

Non sono sicuro se il controllo "è predefinito" sia necessario per il Modello 1. Non mi aspetto che gli utenti debbano scambiare troppo il valore predefinito. Più spesso, mantenere le proprietà (selezionando il riquadro delle nuove proprietà) e ignorando le proprietà (chiudendo il riquadro) saranno azioni separate concettualmente e temporalmente. "Is default" sembra una complicazione con pochi benefici.

Domande sulla ricerca

In ogni caso, apparentemente stai creando una nuova interfaccia utente, quindi dovrai fare alcune ricerche sugli utenti e test di usabilità per farlo bene. Ecco alcune domande a cui solo la ricerca dell'utente può rispondere:

  • In che modo si adatta al modello mentale dell'utente per l'attività di confronto? Pensano: "Ho un oggetto A. Ora devo capire come mostrare l'oggetto B contemporaneamente"? Questo si adatta bene al Modello 1. Oppure pensano "Ho un oggetto A. Ora devo capire come tenerlo qui quando vado a prendere l'oggetto B"? Ciò suggerisce qualcosa di più simile al Modello 3.

  • Quando si apre il nuovo riquadro predefinito, dovrebbe essere vuoto o popolato con l'oggetto attualmente selezionato? Il primo potrebbe richiedere all'utente, suggerendo "ok, sono pronto per te per selezionare un nuovo oggetto". Quest'ultimo è più coerente e può indicare meglio che il nuovo riquadro delle proprietà è quello predefinito, poiché per definizione il valore predefinito ha sempre le proprietà dell'elemento attualmente selezionato. Quest'ultimo è anche necessario se il valore predefinito non viene automaticamente spostato nel nuovo riquadro; in caso contrario, non è possibile popolare un nuovo riquadro delle proprietà (tranne che con il tasto destro del mouse).

  • Gli utenti recuperano dalla chiusura del riquadro predefinito? Se l'utente chiude il riquadro predefinito, non è possibile modificare automaticamente uno dei riquadri rimanenti come predefinito (se ce ne sono) perché rischierebbe di cancellare i dati che l'utente desidera conservare. Se gli utenti chiudono il valore predefinito, capiranno che devono selezionare il riquadro delle nuove proprietà per vedere le proprietà per l'oggetto selezionato?

  • Come si distingue visivamente il riquadro predefinito dagli altri? Ciò è necessario perché gli utenti potrebbero dimenticare qual è l'impostazione predefinita e non sapere dove cercare. Devono anche essere in grado di dire con uno sguardo allo schermo se non ci sono valori predefiniti o se stanno per chiudere i valori predefiniti poiché hanno ramificazioni.

  • Quali sono i migliori termini e metafore da usare? "Predefinito" e "appuntato" hanno senso per gli utenti? O dovrebbe essere "dinamico" e "bloccato"? "Liquido" e "congelato"? Ciò influirà su come si desidera distinguere visivamente il riquadro predefinito e su come descriverlo nella documentazione.

Alternative

Ammiro i tuoi sforzi per fornire agli utenti un riquadro delle proprietà che supporti in modo flessibile sia la popolazione semplice nella selezione degli oggetti sia un mezzo per fare confronti fianco a fianco. Tuttavia, considera la possibilità che potrebbe non valerne la pena. Potrebbe non valere la pena aumentare la complessità per gli utenti o la ricerca e lo sviluppo extra che devi fare. Considera se una di queste alternative più convenzionali potrebbe essere sufficiente:

  • Riquadro Proprietà singolo semplice. Qui è visibile al massimo un solo riquadro Proprietà che mostra sempre l'oggetto corrente. Se il popolamento del riquadro delle proprietà è rapido (<500 ms), l'utente che modifica la selezione degli oggetti può produrre un effetto di animazione che attira naturalmente l'attenzione su eventuali differenze nei valori delle proprietà. Se il compito degli utenti è identificare le differenze, ciò potrebbe rendere più semplice il confronto diretto. Un semplice potenziamento consiste nell'includere i pulsanti Indietro e Avanti nel riquadro delle proprietà per consentire agli utenti di passare dalla cronologia delle selezioni senza molta rotazione del mouse e possibilmente lo scorrimento del riquadro principale per trovare gli oggetti. Sarebbe piuttosto utile in generale per ripristinare l'oggetto selezionato.

  • Dialoghi di proprietà multiple semplici . Qui, i riquadri delle proprietà non si popolano sulla selezione degli oggetti. Gli utenti aprono una finestra di dialogo delle proprietà non modale selezionando il comando Proprietà per l'oggetto corrente (o facendo doppio clic su di esso) e la finestra di dialogo viene sempre "bloccata" su quell'oggetto. Questo è utile quando le proprietà sono raramente necessarie, quando gli utenti devono solo occasionalmente cambiare una proprietà e chiudere il dialogo. Supporta bene anche i confronti fianco a fianco.

  • Vista tabella. Non so come stai presentando i tuoi oggetti principali, ma potresti fornire l'opzione per visualizzarli tutti in modo ordinabile e/o tabella filtrabile che mostra tutte le proprietà di interesse come colonne. Questo è meglio quando ci si aspetta confronti tra molti oggetti, evitando all'utente di dover aprire e gestire più riquadri di proprietà uno alla volta. I valori delle proprietà sono allineati direttamente uno sopra l'altro per confronti più facili rispetto ai pannelli delle proprietà separati. Presuppone che i tuoi oggetti abbiano principalmente le stesse proprietà. La tabella può mostrare solo le proprietà condivise tra tutti gli oggetti o l'unione di tutte le proprietà con valori "N/A" per gli oggetti che non hanno le proprietà.

  • Selezione multipla/Colonna singola. In alcune app con semplici riquadri/dialoghi di proprietà singola, i riquadri e i dialoghi di proprietà seguono la convenzione che quando vengono selezionati più oggetti , vengono visualizzati solo i valori delle proprietà condivisi da tutti gli oggetti; il resto è vuoto. Questo può essere sufficiente se il compito è identificare ciò che è uguale o diverso per tutti gli oggetti (ma non dice all'utente in che modo sono diversi ). Inoltre, consente agli utenti di modificare facilmente una proprietà con lo stesso valore per più oggetti contemporaneamente. È più veloce dei tuoi modelli, facendo meno clic per vedere le proprietà condivise da tutti gli oggetti. Tuttavia, richiede competenze piuttosto elevate: molti utenti non sanno come effettuare la selezione multipla. D'altra parte, questo è un Riquadro Proprietà singolo semplice combinato, che potrebbe già essere sufficiente per i tuoi utenti non esperti. Sembra che avresti comunque avuto un comportamento multi-selezione/colonna singola. Forse hai già finito.

  • Selezione multipla/Colonna multipla. In alternativa, quando l'utente seleziona più oggetti, il riquadro delle proprietà si espande presentando una colonna separata di valori di proprietà per ciascun oggetto. Per confrontare gli oggetti, l'utente seleziona un oggetto, quindi Ctrl-seleziona gli oggetti rimanenti o trascina-seleziona tutti gli oggetti per popolare il riquadro delle proprietà contemporaneamente. Questo è più compatto di un riquadro separato per oggetto. Come per la selezione multipla/colonna singola, è più veloce dei tuoi modelli. Come la vista tabella, allinea anche i valori delle proprietà (fianco a fianco) per un facile confronto. Ma anche come una tabella, funziona bene solo se gli oggetti hanno generalmente le stesse proprietà. È un nuovo design che non è particolarmente rilevabile, quindi presuppone utenti regolari o addestrati e non dovresti provarlo senza test utente. D'altra parte, come Selezione multipla/Colonna singola, questo è combinato con il riquadro Proprietà singole semplici che può essere sufficiente per i tuoi utenti non esperti.

4
Michael Zuschlag

Nessuna app viene in mente che ha più istanze di editor di proprietà, ma un confronto fianco a fianco dei documenti è supportato da MS Word, Excel e molte altre app. Di solito è fatto in uno schermo diviso, in verticale o in orizzontale.

Sembra che quel tipo di soluzione non sia rilevante per te, quindi quello che vorrei fare è questo: -Fare clic su un oggetto visualizza le sue proprietà nel riquadro delle proprietà. -Doppio clic/voce di menu contestuale/azione della barra degli strumenti su un oggetto trasforma il riquadro delle proprietà in un controllo a schede, visualizza lì le proprietà del secondo elemento e lo mette a fuoco. (sostanzialmente "apri in una nuova scheda").

In questo modo puoi anche creare più di due editor di proprietà nello stesso immobile (ma penso che non andrei oltre tre o quattro). Questo non ti permetterà di confrontarli fianco a fianco, ma confrontare due schede è ancora molto più semplice che passare da un oggetto all'altro che controlla la stessa griglia.

E potresti sempre fornire la funzionalità di scollegare queste schede se ne hai davvero bisogno in un contenitore separato, ma mi sembra che significherebbe molto mal di testa sia per te che per l'utente.

MODIFICARE

Come ripensamento: dovresti tenere presente che in ogni caso, se aggiungi un secondo editor Proprietà, stai inserendo n mondo di riquadro;)

  • Una volta che viene visualizzato e quindi viene selezionato un terzo oggetto, come si decide quale riquadro deve visualizzare le sue proprietà: il primo o il secondo (o uno nuovo?)?
  • Consentite la visualizzazione delle proprietà dello stesso oggetto in due riquadri diversi?
  • Se sì, può essere modificato in entrambi? Si sincronizzeranno allora? O uno di questi è di sola lettura? Quale e questa logica è chiara per l'utente?
  • Se si selezionano due oggetti, entrambi i riquadri li visualizzano separatamente, ma se si desidera modificare una proprietà condivisa da entrambi, ora è necessario farlo in due punti anziché in uno (se si supporta la modifica di gruppo).
  • Cosa succede se si selezionano tre oggetti? Come decidi quali visualizzare?

La maggior parte di questi ha risposte relativamente facili, ma devono essere pensate e devono essere coerenti con il resto dell'app. Chiede problemi.

EDIT Per quanto riguarda i modelli aggiunti:

1 - Penso che l'idea di "default rifletta la selezione" sia buona, ma la possibilità di cambiare quella di default è eccessiva, confonderebbe semplicemente gli utenti. Se ho capito bene, con questo modello il modo per visualizzare due diversi elementi è: selezionarne uno, creare un nuovo editor delle proprietà, spostare il flag Default sul nuovo editor, selezionare un altro. Questo è molto ingombrante e difficile da capire. È più facile definire "apri questo oggetto nell'editor X", piuttosto che "ogni volta definisci quale editor visualizzerà l'elemento successivo selezionato".

2 - Non credo che abbia senso bloccare un contenitore lo limiti a un oggetto. È possibile aggiungere un oggetto a un contenitore, ma bloccare il contenitore stesso è un'azione molto standard che controlla il layout, non il suo contenuto. Sarebbe fuorviante e confuso.

3 - Penso che questo sia il modello più semplice dei tre che hai suggerito. È il più semplice da capire, prevedibile e logico. Tuttavia, farebbe impazzire l'utente entro un minuto dall'utilizzo. La selezione è probabilmente l'azione più frequente che un utente compie in un'app come questa ed esegue molte selezioni ogni minuto. Avere ogni clic aperto su un nuovo grande componente sullo schermo è un po 'suicida.

Se il suggerimento delle schede non funziona per te, avrei un editor predefinito e consentirei all'utente di aprire altri editor tramite un comando specifico, non il solito clic di selezione. Gli altri editor saranno "mobili" e non risponderanno alla selezione, quindi non è possibile modificare l'oggetto all'interno (o, è possibile farlo con un altro comando specifico).

1

Quello che farei sarebbe creare un'interfaccia (NON una "classe" di tipo "interfaccia") che riceva tutti gli oggetti le cui proprietà verranno mostrate nel riquadro delle proprietà. Tale interfaccia avrebbe parametri per ordinare le proprietà in diversi modi desiderati es.
1.- Mostra tutte le proprietà di ogni oggetto insieme
2.- Ordina le proprietà per nome (che mescolerebbe tutte le proprietà degli oggetti)

In questo scenario vado per un nuovo modello diverso da quelli che hai proposto, in questo hai UN SOLO riquadro delle proprietà e tutte le proprietà degli oggetti selezionati sono mostrate qui semplicemente ordinate in modo diverso.

Non riesco a pensare a nessuna applicazione che funzioni in questo modo, ma penso che avere tutte le proprietà in un unico riquadro semplificherebbe il processo per l'utente :)

0
PedroC88