Sto utilizzando la classe UndoManager all'interno di un editor di testo ascii
Devo azionare il metodo undo e redo a seconda dell'evento che viene generato a monte
Per esempio: se viene generato l'evento di "carattere in grassetto" non devo dare la possibilita' di fare l'undo, invece se viene generato l'evento "evidenzia caratteri" devo dare la possibilita' di poter fare l'undo.
Per identificare i vari eventi c'e' solo il metodo getPresentationName() che utilizzo nel seguente modo:
Il metodo getPresentationName() restituisce il nome dell'evento accaduto ad esempio: "cambiamento di caratteri" oppure "evidenziamento caratteri", ecc..codice:public void undoableEditHappened(UndoableEditEvent e) { String actionName = e.getEdit().getPresentationName(); if (actionName.equals("nome_azione")) bla bla }
Tutto funziona bene pero' se il sistema operativo e' in una lingua diversa da quella italiana, il metodo getPresentationName() restituisce il nome dell'azione nella lingua in cui si trova il sistema operativo e questo genera un grosso problema infatti come mostrato di seguito dovrei implementare un if per ogni lingua:
In pratica mi serve un modo univoco (indipendente dalla lingua del S.O.) per identificare le azioni.codice:public void undoableEditHappened(UndoableEditEvent e) { String actionName = e.getEdit().getPresentationName(); if (actionName.equals("nome_azione") || ctionName.equals("nome_azione_in_inglese") || ctionName.equals("nome_azione_in_francese") || ecc..) bla bla }
L'idea che avevo per risolvere questo problema era di estendere la classe import javax.swing.undo.UndoManager; per associare ad ogni zione (o anche a solo le azioni che mi interessano, un numero con il quale poterle identificare)
Pero' non so come implementarla.
Qualcuno sa aiutarmi o conosce soluzioni migliori?
THX