Parcourir la source

Added undo / redo to CellEditors

Andreas Mülder il y a 14 ans
Parent
commit
e82f4cab80

+ 28 - 2
de.itemis.xtext.utils/plugins/de.itemis.xtext.utils.jface/src/de/itemis/xtext/utils/jface/viewers/XtextStyledTextCellEditor.java

@@ -86,8 +86,9 @@ public class XtextStyledTextCellEditor extends StyledTextCellEditor {
 		// configure content assist
 		final IContentAssistant contentAssistant = xtextAdapter
 				.getContentAssistant();
-		completionProposalAdapter = new CompletionProposalAdapter(styledText, contentAssistant,
-				KeyStroke.getInstance(SWT.CTRL, SWT.SPACE), null);
+		completionProposalAdapter = new CompletionProposalAdapter(styledText,
+				contentAssistant, KeyStroke.getInstance(SWT.CTRL, SWT.SPACE),
+				null);
 
 		if ((styledText.getStyle() & SWT.SINGLE) != 0) {
 
@@ -111,6 +112,31 @@ public class XtextStyledTextCellEditor extends StyledTextCellEditor {
 		return styledText;
 	}
 
+	@Override
+	public boolean isUndoEnabled() {
+		return xtextAdapter.sourceviewer.getUndoManager().undoable();
+	}
+
+	@Override
+	public void performUndo() {
+		xtextAdapter.sourceviewer.getUndoManager().undo();
+	}
+
+	@Override
+	public boolean isRedoEnabled() {
+		return xtextAdapter.sourceviewer.getUndoManager().redoable();
+	}
+
+	@Override
+	public void performRedo() {
+		xtextAdapter.sourceviewer.getUndoManager().redo();
+	}
+	
+	@Override
+	public boolean isFindEnabled() {
+		return true;
+	}
+
 	// in gtk, we need this flag to let one focus lost event pass. See
 	// focusLost() for details.
 	private boolean ignoreNextFocusLost = false;