Pergunta

NetBeans usa padrão UndoManager API para implementação da funcionalidade de desfazer. Mas nenhum padrão javax.swing.undo.UndoManager nem org.openide.awt.UndoRedo.Manager Não possui nenhum método para marcar os estados como salvo e verificar o status modificado. No entanto, se você alterar o arquivo e pressionar desfazer, o arquivo será marcado como não modificado. Como eles fizeram isso? Preciso da mesma funcionalidade para meus editores (não textos) se o aplicativo RCP do NetBeans.

Foi útil?

Solução

Eu descobri isso. o CloneableEditSupport adiciona UndoableEdit Quando alguém salva o arquivo. Esta edição sinaliza quando alguém desce do estado salvo ou reduz para o estado salvo. Também envolve as próximas edições (até a primeira significativa) para interceptar reduzidas do estado salvo e UNDOS para o estado salvo.

Este truque só funciona se tudo UndoableEditS que você gera é significativo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top