Cosa succede se win1 viene chiuso / rimosso? Per rispondere a questa domanda, chiedi a un altro: l'azione è reversibile?
1. Caso in cui l'azione di chiusura / rimozione è reversibile:
L'evento di chiusura / rimozione viene registrato nello stack di annullamento e quando l'utente esegue il annullamento, annulla la chiusura / rimozione.
Ad esempio, quando un utente rimuove, tramite l'applicazione, un file win1 , l'app non deve rimuovere il file, ma contrassegnarlo solo come candidato per la rimozione; quindi, un potenziale annullamento deselezionerà il file.
2. Caso di azioni irreversibili:
Se stai parlando di azioni irreversibili, dato che la reversibilità non dipende dalla tua applicazione, quindi affrontala, ad esempio disabilitando i corrispondenti elementi di annullamento.
Ad esempio, stai scrivendo uno strumento che gestisce le server farm e, in un determinato momento, il server win1 è materialmente scollegato dalla rete. In questo caso, l'applicazione non può sostituire il server, poiché richiede l'intervento umano.
L'applicazione dovrebbe quindi adattare il suo comportamento in un modo più intuitivo: annullare o annullare anteriore a quello irreversibile, saltare l'azione irreversibile o qualcosa di radicalmente diverso e innovativo. Spetta al tuo interaction designer venire con il modo più intuitivo.
Questo non è molto diverso da un caso come quando l'applicazione tenta di accedere a un database, ma il database è offline: non puoi fare nulla al riguardo e il modo in cui ti comporti dipende dal contesto preciso.
Esempio:
Facciamo un esempio dal tuo commento: la rimozione di un foglio Excel. Le azioni successive sono:
- Cambia la cella A1 nel foglio 1,
- Cambia la cella A1 nel foglio 2,
- Rimuovi il foglio 1.
Due possibili comportamenti sarebbero:
-
La reversibilità della rimozione dei fogli. Stranamente, il team di Excel ha scelto di non renderlo reversibile. Mentre questo è probabilmente motivato da alcuni aspetti tecnici che ignoro, questo comportamento è totalmente sbagliato UX-saggio. Come utente, quando per errore distruggo un foglio, mi aspetto di riuscire a recuperarlo premendo Ctrl + Z.
Non essere in grado di farlo rende rischioso utilizzare Excel, poiché non posso mai sapere cosa potrebbe essere ripristinato e cosa potrebbe comportare una perdita di lavoro. Non è affatto carino.
-
L'impossibilità di rimuovere il foglio con la perdita del passaggio "Cambia la cella A1 nel foglio 1" nella pila di annullamenti dopo la rimozione. Tecnicamente, non è così difficile. Immagina la seguente struttura:
class undoEntry
{
string text; // Text which is displayed to the user in the undo history.
sheet? correspondingSheet; // The sheet where the action happened, or null.
undoAction action; // The action to undo.
}
Con la proprietà correspondingSheet
, puoi passare allo stack degli annullamenti una volta rimosso un foglio ed eliminare le voci che non dovresti più visualizzare.