类org.eclipse.jface.text.IUndoManager源码实例Demo

下面列出了怎么用org.eclipse.jface.text.IUndoManager的API类实例代码及写法,或者点击链接到github查看源代码。

/**
 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=354123
 */
@Test
public void testUndoRedo() throws Exception {
	pushKey('a', 0);
	Assert.assertEquals(1, events.size());
	Assert.assertEquals("fooa", getFirstExportedObjectInLastEventDelta()
			.getQualifiedName().getLastSegment());
	IUndoManager undoManager = ((XtextSourceViewer) editor.getInternalSourceViewer()).getUndoManager();
	undoManager.undo();
	syncUtil.yieldToQueuedDisplayJobs(new NullProgressMonitor());
	syncUtil.waitForReconciler(editor);
	Assert.assertEquals(2, events.size());
	Assert.assertNull(Iterables.getLast(events).getDeltas().get(0).getNew());
	undoManager.redo();
	syncUtil.yieldToQueuedDisplayJobs(new NullProgressMonitor());
	syncUtil.waitForReconciler(editor);
	Assert.assertEquals(3, events.size());
	Assert.assertEquals("fooa", getFirstExportedObjectInLastEventDelta()
			.getQualifiedName().getLastSegment());
	Iterables.getLast(events);
}
 
源代码2 项目: birt   文件: JSEditor.java
/**
 * Saves input code to model
 */
private void saveModel( )
{
	if ( isCodeModified( ) && editObject instanceof DesignElementHandle )
	{
		saveEditorContentsDE( (DesignElementHandle) editObject,
				isSaveScript );
	}

	setIsModified( false );

	( (IFormPage) getParentEditor( ) ).getEditor( )
			.editorDirtyStateChanged( );

	firePropertyChange( PROP_DIRTY );

	SourceViewer viewer = getViewer( );
	IUndoManager undoManager = viewer == null ? null
			: viewer.getUndoManager( );

	if ( undoManager != null )
	{
		undoManager.endCompoundChange( );
	}
	cleanPoint = getUndoLevel( );
}
 
源代码3 项目: xtext-eclipse   文件: LinkedEditingUndoSupport.java
public void startRecording(XtextEditor editor) {
	this.editor = editor;
	ISourceViewer viewer = editor.getInternalSourceViewer();
	if (viewer instanceof ITextViewerExtension6) {
		IUndoManager undoManager = ((ITextViewerExtension6) viewer).getUndoManager();
		if (undoManager instanceof IUndoManagerExtension) {
			IUndoManagerExtension undoManagerExtension = (IUndoManagerExtension) undoManager;
			IUndoContext undoContext = undoManagerExtension.getUndoContext();
			IOperationHistory operationHistory = OperationHistoryFactory.getOperationHistory();
			startingUndoOperation = operationHistory.getUndoOperation(undoContext);
		}
	}
}
 
源代码4 项目: tlaplus   文件: TLAEditor.java
private IUndoContext getUndoContext() {
	if (getSourceViewer() instanceof ITextViewerExtension6) {
		IUndoManager undoManager = ((ITextViewerExtension6) getSourceViewer()).getUndoManager();
		if (undoManager instanceof IUndoManagerExtension)
			return ((IUndoManagerExtension) undoManager).getUndoContext();
	}
	return null;
}
 
源代码5 项目: birt   文件: DecoratedScriptEditor.java
public void setScript( String script )
{
	try
	{
		IDocumentProvider provider = getDocumentProvider( );

		if ( provider != null )
		{
			IDocument document = provider.getDocument( getEditorInput( ) );

			if ( document != null )
			{
				document.set( script == null ? "" : script ); //$NON-NLS-1$
				return;
			}
		}
		input = createScriptInput( script );
	}
	finally
	{
		ISourceViewer viewer = getSourceViewer( );

		if ( viewer instanceof SourceViewer )
		{
			IUndoManager undoManager = ( (SourceViewer) viewer ).getUndoManager( );

			if ( undoManager != null )
			{
				undoManager.reset( );
			}
		}
	}
}
 
源代码6 项目: birt   文件: ScriptEditor.java
public void setScript( String script )
{
	try
	{
		IDocumentProvider provider = getDocumentProvider( );

		if ( provider != null )
		{
			IDocument document = provider.getDocument( getEditorInput( ) );

			if ( document != null )
			{
				document.set( script == null ? "" : script ); //$NON-NLS-1$
				return;
			}
		}
		input = createScriptInput( script );
	}
	finally
	{
		ISourceViewer viewer = getSourceViewer( );

		if ( viewer instanceof SourceViewer )
		{
			IUndoManager undoManager = ( (SourceViewer) viewer ).getUndoManager( );

			if ( undoManager != null )
			{
				undoManager.reset( );
			}
		}
	}
}
 
源代码7 项目: xtext-eclipse   文件: DummyTextViewer.java
@Override
public void setUndoManager(IUndoManager undoManager) {
	throw new UnsupportedOperationException();
}
 
源代码8 项目: xtext-eclipse   文件: MockableTextViewer.java
@Override
public void setUndoManager(IUndoManager undoManager) {
	throw new UnsupportedOperationException();
}
 
源代码9 项目: xtext-eclipse   文件: MockableTextViewer.java
@Override
public void setUndoManager(IUndoManager undoManager) {
	throw new UnsupportedOperationException();
}
 
源代码10 项目: gef   文件: DotHtmlLabelHoverFakeSourceViewer.java
@Override
public void setUndoManager(IUndoManager undoManager) {
	throw new UnsupportedOperationException();
}
 
源代码11 项目: xtext-xtend   文件: UndoTest.java
@Test
public void testUndo() {
  try {
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("class Foo {");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("val java.lang.String x");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("val java.util.ArrayList<String> y");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    final XtextEditor editor = this._workbenchTestHelper.openEditor("Foo", _builder.toString());
    this._organizeImportsHandler.doOrganizeImports(editor.getDocument());
    StringConcatenation _builder_1 = new StringConcatenation();
    _builder_1.append("import java.util.ArrayList");
    _builder_1.newLine();
    _builder_1.newLine();
    _builder_1.append("class Foo {");
    _builder_1.newLine();
    _builder_1.append("\t");
    _builder_1.append("val String x");
    _builder_1.newLine();
    _builder_1.append("\t");
    _builder_1.append("val ArrayList<String> y");
    _builder_1.newLine();
    _builder_1.append("}");
    _builder_1.newLine();
    Assert.assertEquals(_builder_1.toString(), editor.getDocument().get());
    final ISourceViewer viewer = editor.getInternalSourceViewer();
    Assert.assertTrue((viewer instanceof ITextViewerExtension6));
    final IUndoManager undoManager = ((ITextViewerExtension6) viewer).getUndoManager();
    undoManager.undo();
    StringConcatenation _builder_2 = new StringConcatenation();
    _builder_2.append("class Foo {");
    _builder_2.newLine();
    _builder_2.append("\t");
    _builder_2.append("val java.lang.String x");
    _builder_2.newLine();
    _builder_2.append("\t");
    _builder_2.append("val java.util.ArrayList<String> y");
    _builder_2.newLine();
    _builder_2.append("}");
    _builder_2.newLine();
    Assert.assertEquals(_builder_2.toString(), editor.getDocument().get());
  } catch (Throwable _e) {
    throw Exceptions.sneakyThrow(_e);
  }
}
 
源代码12 项目: typescript.java   文件: RenameLinkedMode.java
public void start() {
	if (getActiveLinkedMode() != null) {
		// for safety; should already be handled in RenameJavaElementAction
		fgActiveLinkedMode.startFullDialog();
		return;
	}

	ISourceViewer viewer = fEditor.getViewer();
	IDocument document = viewer.getDocument();

	ITypeScriptFile tsFile = fEditor.getTypeScriptFile();
	tsFile.setDisableChanged(true);
	fOriginalSelection = viewer.getSelectedRange();
	int offset = fOriginalSelection.x;

	try {
		fLinkedPositionGroup = new LinkedPositionGroup();
		if (viewer instanceof ITextViewerExtension6) {
			IUndoManager undoManager = ((ITextViewerExtension6) viewer).getUndoManager();
			if (undoManager instanceof IUndoManagerExtension) {
				IUndoManagerExtension undoManagerExtension = (IUndoManagerExtension) undoManager;
				IUndoContext undoContext = undoManagerExtension.getUndoContext();
				IOperationHistory operationHistory = OperationHistoryFactory.getOperationHistory();
				fStartingUndoOperation = operationHistory.getUndoOperation(undoContext);
			}
		}

		// Find occurrences
		List<OccurrencesResponseItem> occurrences = tsFile.occurrences(offset).get(1000, TimeUnit.MILLISECONDS);

		// Create Eclipse linked position from the occurrences list.
		int start, length;
		for (int i = 0; i < occurrences.size(); i++) {
			OccurrencesResponseItem item = occurrences.get(i);
			start = tsFile.getPosition(item.getStart());
			length = tsFile.getPosition(item.getEnd()) - start;
			LinkedPosition linkedPosition = new LinkedPosition(document, start, length, i);
			if (i == 0) {
				fOriginalName = document.get(start, length);
				fNamePosition = linkedPosition;
			}
			fLinkedPositionGroup.addPosition(linkedPosition);
		}

		fLinkedModeModel = new LinkedModeModel();
		fLinkedModeModel.addGroup(fLinkedPositionGroup);
		fLinkedModeModel.forceInstall();
		fLinkedModeModel.addLinkingListener(new EditorHighlightingSynchronizer(fEditor));
		fLinkedModeModel.addLinkingListener(new EditorSynchronizer());

		LinkedModeUI ui = new EditorLinkedModeUI(fLinkedModeModel, viewer);
		ui.setExitPosition(viewer, offset, 0, Integer.MAX_VALUE);
		ui.setExitPolicy(new ExitPolicy(document));
		ui.enter();

		viewer.setSelectedRange(fOriginalSelection.x, fOriginalSelection.y); // by
																				// default,
																				// full
																				// word
																				// is
																				// selected;
																				// restore
																				// original
																				// selection

		if (viewer instanceof IEditingSupportRegistry) {
			IEditingSupportRegistry registry = (IEditingSupportRegistry) viewer;
			registry.register(fFocusEditingSupport);
		}

		openSecondaryPopup();
		// startAnimation();
		fgActiveLinkedMode = this;

	} catch (Exception e) {
		JSDTTypeScriptUIPlugin.log(e);
	}
}
 
源代码13 项目: gwt-eclipse-plugin   文件: DelegatingTextViewer.java
public void setUndoManager(IUndoManager undoManager) {
  originalTextViewer.setUndoManager(undoManager);
}
 
public void start() {
		if (getActiveLinkedMode() != null) {
			// for safety; should already be handled in RenameJavaElementAction
			fgActiveLinkedMode.startFullDialog();
			return;
		}

		ISourceViewer viewer= fEditor.getViewer();
		IDocument document= viewer.getDocument();
		fOriginalSelection= viewer.getSelectedRange();
		int offset= fOriginalSelection.x;

		try {
			CompilationUnit root= SharedASTProvider.getAST(getCompilationUnit(), SharedASTProvider.WAIT_YES, null);

			fLinkedPositionGroup= new LinkedPositionGroup();
			ASTNode selectedNode= NodeFinder.perform(root, fOriginalSelection.x, fOriginalSelection.y);
			if (! (selectedNode instanceof SimpleName)) {
				return; // TODO: show dialog
			}
			SimpleName nameNode= (SimpleName) selectedNode;

			if (viewer instanceof ITextViewerExtension6) {
				IUndoManager undoManager= ((ITextViewerExtension6)viewer).getUndoManager();
				if (undoManager instanceof IUndoManagerExtension) {
					IUndoManagerExtension undoManagerExtension= (IUndoManagerExtension)undoManager;
					IUndoContext undoContext= undoManagerExtension.getUndoContext();
					IOperationHistory operationHistory= OperationHistoryFactory.getOperationHistory();
					fStartingUndoOperation= operationHistory.getUndoOperation(undoContext);
				}
			}
			
			fOriginalName= nameNode.getIdentifier();
			final int pos= nameNode.getStartPosition();
			ASTNode[] sameNodes= LinkedNodeFinder.findByNode(root, nameNode);

			//TODO: copied from LinkedNamesAssistProposal#apply(..):
			// sort for iteration order, starting with the node @ offset
			Arrays.sort(sameNodes, new Comparator<ASTNode>() {
				public int compare(ASTNode o1, ASTNode o2) {
					return rank(o1) - rank(o2);
				}
				/**
				 * Returns the absolute rank of an <code>ASTNode</code>. Nodes
				 * preceding <code>pos</code> are ranked last.
				 *
				 * @param node the node to compute the rank for
				 * @return the rank of the node with respect to the invocation offset
				 */
				private int rank(ASTNode node) {
					int relativeRank= node.getStartPosition() + node.getLength() - pos;
					if (relativeRank < 0)
						return Integer.MAX_VALUE + relativeRank;
					else
						return relativeRank;
				}
			});
			for (int i= 0; i < sameNodes.length; i++) {
				ASTNode elem= sameNodes[i];
				LinkedPosition linkedPosition= new LinkedPosition(document, elem.getStartPosition(), elem.getLength(), i);
				if (i == 0)
					fNamePosition= linkedPosition;
				fLinkedPositionGroup.addPosition(linkedPosition);
			}

			fLinkedModeModel= new LinkedModeModel();
			fLinkedModeModel.addGroup(fLinkedPositionGroup);
			fLinkedModeModel.forceInstall();
			fLinkedModeModel.addLinkingListener(new EditorHighlightingSynchronizer(fEditor));
			fLinkedModeModel.addLinkingListener(new EditorSynchronizer());

			LinkedModeUI ui= new EditorLinkedModeUI(fLinkedModeModel, viewer);
			ui.setExitPosition(viewer, offset, 0, Integer.MAX_VALUE);
			ui.setExitPolicy(new ExitPolicy(document));
			ui.enter();

			viewer.setSelectedRange(fOriginalSelection.x, fOriginalSelection.y); // by default, full word is selected; restore original selection

			if (viewer instanceof IEditingSupportRegistry) {
				IEditingSupportRegistry registry= (IEditingSupportRegistry) viewer;
				registry.register(fFocusEditingSupport);
			}

			openSecondaryPopup();
//			startAnimation();
			fgActiveLinkedMode= this;

		} catch (BadLocationException e) {
			JavaPlugin.log(e);
		}
	}
 
源代码15 项目: Pydev   文件: ScriptConsoleViewerWrapper.java
@Override
public void setUndoManager(IUndoManager undoManager) {
    viewer.setUndoManager(undoManager);
}
 
源代码16 项目: Pydev   文件: ScriptConsoleViewerWrapper.java
public IUndoManager getUndoManager() {
    return viewer.getUndoManager();
}
 
 类所在包
 类方法
 同包方法