org.eclipse.core.commands.operations.IOperationHistory Java Examples

The following examples show how to use org.eclipse.core.commands.operations.IOperationHistory. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source Project: xtext-eclipse   Author: eclipse   File: ProblemHoverTest.java    License: Eclipse Public License 2.0 6 votes vote down vote up
@Test public void testBug357516_bookmark() throws Exception {
	IResource resource = editor.getResource();
	HashMap<String, Object> attributes = new HashMap<String, Object>();
	attributes.put(IMarker.MESSAGE, CUSTOM_MARKER_TEST_MESSAGE);
	attributes.put(IMarker.LINE_NUMBER, 1);
	attributes.put(IMarker.LOCATION, resource.getFullPath().toPortableString());
	IUndoableOperation operation= new CreateMarkersOperation(IMarker.BOOKMARK, attributes, resource, CUSTOM_MARKER_TEST_MESSAGE);
	IOperationHistory operationHistory= PlatformUI.getWorkbench().getOperationSupport().getOperationHistory();
	try {
		operationHistory.execute(operation, null, null);
	} catch (ExecutionException x) {
		fail(x.getMessage());
	}
	String hoverInfo = hover.getHoverInfo(editor.getInternalSourceViewer(), 0);
	assertNotNull(hoverInfo);
	assertTrue(hoverInfo.contains(CUSTOM_MARKER_TEST_MESSAGE));
}
 
Example #2
Source Project: gef   Author: eclipse   File: HistoricizingDomain.java    License: Eclipse Public License 2.0 6 votes vote down vote up
/**
 * Sets the {@link IOperationHistory} that is used by this
 * {@link HistoricizingDomain} to the given value. Operation history
 * listeners are un-/registered accordingly.
 *
 * @param operationHistory
 *            The new {@link IOperationHistory} for this domain.
 */
@Inject
public void setOperationHistory(IOperationHistory operationHistory) {
	if (this.operationHistory != null
			&& this.operationHistory != operationHistory) {
		this.operationHistory
				.removeOperationHistoryListener(transactionListener);
	}
	if (this.operationHistory != operationHistory) {
		this.operationHistory = operationHistory;
		if (this.operationHistory != null) {
			this.operationHistory
					.addOperationHistoryListener(transactionListener);
			if (undoContext != null) {
				this.operationHistory.setLimit(undoContext,
						DEFAULT_UNDO_LIMIT);
			}
		}
	}
}
 
Example #3
Source Project: gef   Author: eclipse   File: FitToViewportLockAction.java    License: Eclipse Public License 2.0 6 votes vote down vote up
/**
 * Disables all viewport listeners that react to scroll offset, viewport
 * transformation, or viewport-/scrollable-/content-bounds changes.
 */
protected void disableViewportListeners() {
	infiniteCanvas.horizontalScrollOffsetProperty()
			.removeListener(scrollOffsetChangeListener);
	infiniteCanvas.verticalScrollOffsetProperty()
			.removeListener(scrollOffsetChangeListener);
	contentTransform.removeEventHandler(
			TransformChangedEvent.TRANSFORM_CHANGED, trafoChangeListener);
	contentBoundsProperty.removeListener(contentBoundsChangeListener);
	infiniteCanvas.widthProperty().removeListener(sizeChangeListener);
	infiniteCanvas.heightProperty().removeListener(sizeChangeListener);

	IDomain domain = getViewer().getDomain();
	if (domain instanceof HistoricizingDomain) {
		IOperationHistory history = ((HistoricizingDomain) domain)
				.getOperationHistory();
		history.removeOperationHistoryListener(operationHistoryListener);
	}
}
 
Example #4
Source Project: gef   Author: eclipse   File: FitToViewportLockAction.java    License: Eclipse Public License 2.0 6 votes vote down vote up
/**
 * Enables all viewport listeners that react to scroll offset, viewport
 * transformation, or viewport-/scrollable-/content-bounds changes.
 * <p>
 * Moreover, stores the content bounds size, so that the size can later be
 * tested for changes.
 */
protected void enableViewportListeners() {
	infiniteCanvas.horizontalScrollOffsetProperty()
			.addListener(scrollOffsetChangeListener);
	infiniteCanvas.verticalScrollOffsetProperty()
			.addListener(scrollOffsetChangeListener);
	contentTransform.addEventHandler(
			TransformChangedEvent.TRANSFORM_CHANGED, trafoChangeListener);
	contentBoundsProperty.addListener(contentBoundsChangeListener);
	infiniteCanvas.widthProperty().addListener(sizeChangeListener);
	infiniteCanvas.heightProperty().addListener(sizeChangeListener);

	IDomain domain = getViewer().getDomain();
	if (domain instanceof HistoricizingDomain) {
		IOperationHistory history = ((HistoricizingDomain) domain)
				.getOperationHistory();
		history.addOperationHistoryListener(operationHistoryListener);
	}
}
 
Example #5
Source Project: gef   Author: eclipse   File: UndoablePropertySheetEntry.java    License: Eclipse Public License 2.0 6 votes vote down vote up
/**
 * Constructs a new root entry.
 *
 * @param workbenchPart
 *            The {@link IWorkbenchPart} to adapt for an
 *            {@link IPropertySource}, in case no values are provided.
 * @param operationHistory
 *            The {@link IOperationHistory} to use.
 * @param undoContext
 *            The {@link IUndoContext} to use.
 */
public UndoablePropertySheetEntry(IWorkbenchPart workbenchPart,
		IOperationHistory operationHistory, IUndoContext undoContext) {
	this.workbenchPart = workbenchPart;
	this.operationHistory = operationHistory;
	this.undoContext = undoContext;
	this.operationHistoryListener = new IOperationHistoryListener() {

		@Override
		public void historyNotification(OperationHistoryEvent event) {
			refreshFromRoot();
		}
	};
	this.operationHistory
			.addOperationHistoryListener(operationHistoryListener);
}
 
Example #6
Source Project: gef   Author: eclipse   File: UndoablePropertySheetPage.java    License: Eclipse Public License 2.0 6 votes vote down vote up
/**
 * Constructs a new {@link UndoablePropertySheetPage} using the provided
 * {@link IOperationHistory}.
 *
 * @param operationHistory
 *            The {@link IOperationHistory} shared with the editor/view.
 * @param undoContext
 *            The {@link IUndoContext} shared with the editor/view.
 * @param workbenchPart
 *            The {@link IWorkbenchPart} this
 *            {@link UndoablePropertySheetPage} is related to. .
 *
 */
@Inject
public UndoablePropertySheetPage(@Assisted IWorkbenchPart workbenchPart,
		IOperationHistory operationHistory, IUndoContext undoContext) {
	this.workbenchPart = workbenchPart;
	this.operationHistory = operationHistory;
	this.undoContext = undoContext;
	this.operationHistoryListener = new IOperationHistoryListener() {

		@Override
		public void historyNotification(OperationHistoryEvent event) {
			if (event.getEventType() == OperationHistoryEvent.ABOUT_TO_REDO
					|| event.getEventType() == OperationHistoryEvent.ABOUT_TO_UNDO) {
				refresh();
			}
		}
	};
	operationHistory.addOperationHistoryListener(operationHistoryListener);
	setRootEntry(createRootEntry());
}
 
Example #7
Source Project: gef   Author: eclipse   File: MvcFxUiModule.java    License: Eclipse Public License 2.0 6 votes vote down vote up
/**
 * Binds a factory for the creation of
 * {@link HistoryBasedDirtyStateProvider} as {@link IDirtyStateProvider}.
 */
protected void bindIDirtyStateProviderFactory() {
	binder().bind(IDirtyStateProviderFactory.class)
			.toInstance(new IDirtyStateProviderFactory() {

				@Override
				public IDirtyStateProvider create(
						IWorkbenchPart workbenchPart) {
					return new HistoryBasedDirtyStateProvider(
							(IOperationHistory) workbenchPart
									.getAdapter(IOperationHistory.class),
							(IUndoContext) workbenchPart
									.getAdapter(IUndoContext.class));
				}
			});
}
 
Example #8
Source Project: xtext-xtend   Author: eclipse   File: WaitForRefactoringCondition.java    License: Eclipse Public License 2.0 6 votes vote down vote up
@Override
public boolean test() throws Exception {
  boolean _xblockexpression = false;
  {
    final IOperationHistory operationHistory = OperationHistoryFactory.getOperationHistory();
    IUndoableOperation _xifexpression = null;
    if (this.isRedo) {
      _xifexpression = operationHistory.getRedoOperation(this.getUndoContext());
    } else {
      _xifexpression = operationHistory.getUndoOperation(this.getUndoContext());
    }
    String _label = null;
    if (_xifexpression!=null) {
      _label=_xifexpression.getLabel();
    }
    final String label = _label;
    _xblockexpression = label.startsWith("Rename ");
  }
  return _xblockexpression;
}
 
Example #9
Source Project: statecharts   Author: Yakindu   File: CreateSubdiagramCommand.java    License: Eclipse Public License 1.0 6 votes vote down vote up
protected void executeCommand(AbstractTransactionalCommand operation) {
	IOperationHistory history = OperationHistoryFactory.getOperationHistory();
	try {
		history.execute(operation, new NullProgressMonitor(), null);
	} catch (ExecutionException e) {
		e.printStackTrace();
	}
}
 
Example #10
Source Project: statecharts   Author: Yakindu   File: SetEntryKindCommand.java    License: Eclipse Public License 1.0 6 votes vote down vote up
public Object execute(ExecutionEvent event) throws ExecutionException {
	entry = unwrap(HandlerUtil.getCurrentSelection(event));
	
	if (entry == null)
		return null;
	SetValueCommand setCommand = new SetValueCommand(new SetRequest(entry,
			SGraphPackage.Literals.ENTRY__KIND, getEntryKind()));
	IOperationHistory history = OperationHistoryFactory
			.getOperationHistory();
	try {
		history.execute(setCommand, new NullProgressMonitor(), null);
	} catch (ExecutionException e) {
		e.printStackTrace();
	}
	
	return null;
}
 
Example #11
Source Project: tmxeditor8   Author: heartsome   File: AddTuHandler.java    License: GNU General Public License v2.0 6 votes vote down vote up
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
	TmxEditorViewer viewer = TmxEditorViewer.getInstance();
	if(viewer == null){
		return null;
	}
	TmxEditor editor = viewer.getTmxEditor();
	if(editor == null){
		return null;
	}
	String srcLang = editor.getSrcLang();
	String tgtLang = editor.getTgtLang();
	TmxTU tu = TmxEditorUtils.createTmxTu(srcLang, tgtLang);
	editor.addTu(tu);
	IOperationHistory histor = OperationHistoryFactory.getOperationHistory();
	histor.dispose(PlatformUI.getWorkbench().getOperationSupport().getUndoContext(), true, true, true);
	return null;
}
 
Example #12
Source Project: tmxeditor8   Author: heartsome   File: DeleteTuHandler.java    License: GNU General Public License v2.0 6 votes vote down vote up
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
	TmxEditorViewer viewer = TmxEditorViewer.getInstance();
	if (viewer == null) {
		return null;
	}
	TmxEditor editor = viewer.getTmxEditor();
	if (editor == null) {
		return null;
	}
	if (editor.getTmxDataAccess().getDisplayTuCount() == 0
			|| editor.getTmxEditorImpWithNattable().getSelectedRows().length == 0) {
		OpenMessageUtils.openMessage(IStatus.INFO, Messages.getString("tmxeditor.deleteTuHandler.noSelectedMsg"));
		return null;
	}
	boolean confirm = MessageDialog.openConfirm(HandlerUtil.getActiveShell(event),
			Messages.getString("tmxeditor.deleteTuHandler.warn.msg"),
			Messages.getString("tmxeditor.deleteTuHandler.warn.desc"));
	if (!confirm) {
		return null;
	}
	editor.deleteSelectedTu();
	IOperationHistory histor = OperationHistoryFactory.getOperationHistory();
	histor.dispose(PlatformUI.getWorkbench().getOperationSupport().getUndoContext(), true, true, true);
	return null;
}
 
Example #13
Source Project: tmxeditor8   Author: heartsome   File: TmxEditorViewer.java    License: GNU General Public License v2.0 6 votes vote down vote up
/**
 * 关闭TmxEditor,同时关闭AbstractDataAccess
 **/
public boolean closeTmx() {
	if (tmxEditor == null) {
		return true;
	}
	if (!tmxEditor.closeTmxEditor()) {
		return false;
	}
	tmxEditor = null;
	Control[] childs = container.getChildren();
	for (Control c : childs) {
		if (c != null && !c.isDisposed()) {
			c.dispose();
		}
	}
	fireCloseEvent();
	IOperationHistory operationHistory = OperationHistoryFactory.getOperationHistory();
	operationHistory.dispose(getSite().getWorkbenchWindow().getWorkbench().getOperationSupport().getUndoContext(),
			true, true, true);
	setFocus();
	String title = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getText();
	String[] s = title.split("-");
	PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setText(s[0]);
	return true;
}
 
Example #14
Source Project: bonita-studio   Author: bonitasoft   File: UndoCommandHandler.java    License: GNU General Public License v2.0 6 votes vote down vote up
@Override
public boolean isEnabled() {
	final IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor() ;
	if(editor != null){
		final IOperationHistory history = (IOperationHistory) editor.getAdapter(IOperationHistory.class);
		final IUndoContext context = (IUndoContext) editor.getAdapter(IUndoContext.class);
		if(history != null && context != null){
			final IUndoableOperation[] undoHistory = history.getUndoHistory(context);
               if (undoHistory != null && undoHistory.length != 0) {
                   final IUndoableOperation ctxt = undoHistory[undoHistory.length - 1];
				final String ctxtLabel = ctxt.getLabel();
                   if(ctxtLabel != null && ctxtLabel.contains("Lane")){//Avoid Exception on undo //$NON-NLS-1$
					return false ;
				} else {
					return ctxt.canUndo();
				}
			}
		} else {
			return false;
		}
	}
	return false;
}
 
Example #15
Source Project: xtext-eclipse   Author: eclipse   File: EmbeddedEditorFactory.java    License: Eclipse Public License 2.0 5 votes vote down vote up
protected OperationHistoryListener installUndoRedoSupport(SourceViewer viewer, IDocument document, final EmbeddedEditorActions actions) {
	IDocumentUndoManager undoManager = DocumentUndoManagerRegistry.getDocumentUndoManager(document);
	final IUndoContext context = undoManager.getUndoContext();
	IOperationHistory operationHistory = PlatformUI.getWorkbench().getOperationSupport().getOperationHistory();
	OperationHistoryListener operationHistoryListener = new OperationHistoryListener(context, new IUpdate() {
		@Override
		public void update() {
			actions.updateAction(ITextEditorActionConstants.REDO);
			actions.updateAction(ITextEditorActionConstants.UNDO);
		}
	});
	operationHistory.addOperationHistoryListener(operationHistoryListener);
	return operationHistoryListener;
}
 
Example #16
Source Project: xtext-eclipse   Author: eclipse   File: LinkedEditingUndoSupport.java    License: Eclipse Public License 2.0 5 votes vote down vote up
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);
		}
	}
}
 
Example #17
Source Project: gef   Author: eclipse   File: AbstractFXView.java    License: Eclipse Public License 2.0 5 votes vote down vote up
@SuppressWarnings("rawtypes")
@Override
public Object getAdapter(final Class key) {
	// Provide a default selection provider (subclasses may overwrite by
	// handling the key and returning a different implementation
	// replace with binding
	if (ISelectionProvider.class.equals(key)) {
		if (selectionProvider != null) {
			return selectionProvider;
		}
	}
	// contribute to Properties view (only created if required)
	if (IPropertySheetPage.class.equals(key)) {
		if (propertySheetPage == null) {
			propertySheetPage = createPropertySheetPage();
		}
		if (propertySheetPage != null) {
			return propertySheetPage;
		}
	}
	if (IUndoContext.class.equals(key)) {
		if (domain instanceof HistoricizingDomain) {
			return ((HistoricizingDomain) domain).getUndoContext();
		}
	}
	if (IOperationHistory.class.equals(key)) {
		if (domain instanceof HistoricizingDomain) {
			return ((HistoricizingDomain) domain).getOperationHistory();
		}
	}
	return super.getAdapter(key);
}
 
Example #18
Source Project: gef   Author: eclipse   File: HistoryBasedDirtyStateProvider.java    License: Eclipse Public License 2.0 5 votes vote down vote up
/**
 * Creates a new {@link HistoryBasedDirtyStateProvider}.
 *
 * @param operationHistory
 *            The {@link IOperationHistory} to use.
 * @param undoContext
 *            The {@link IUndoContext} to evaluate.
 */
public HistoryBasedDirtyStateProvider(IOperationHistory operationHistory,
		IUndoContext undoContext) {
	this.operationHistory = operationHistory;
	this.undoContext = undoContext;
	if (undoContext == null) {
		throw new IllegalArgumentException(
				"WorkbenchPart needs to be adaptable to IUndoContext");
	}

	operationHistoryListener = createOperationHistoryListener();
	operationHistory.addOperationHistoryListener(operationHistoryListener);
}
 
Example #19
Source Project: gef   Author: eclipse   File: HistoryBasedDirtyStateProvider.java    License: Eclipse Public License 2.0 5 votes vote down vote up
@Override
public void dispose() {
	// unregister operation history listener
	IOperationHistory operationHistory = getOperationHistory();
	if (operationHistory != null) {
		operationHistory
				.removeOperationHistoryListener(operationHistoryListener);
	}
	operationHistoryListener = null;
	saveLocation = null;
}
 
Example #20
Source Project: gef   Author: eclipse   File: UndoablePropertySheetEntry.java    License: Eclipse Public License 2.0 5 votes vote down vote up
/**
 * Returns the {@link IOperationHistory} that is used by this entry. It is
 * obtained from the parent in case the entry is not a root entry.
 *
 * @return the {@link IOperationHistory} to be used.
 */
protected IOperationHistory getOperationHistory() {
	// only the root has, and is listening too, the IOperationHistory
	if (getParent() != null) {
		return ((UndoablePropertySheetEntry) getParent())
				.getOperationHistory();
	}
	return operationHistory;
}
 
Example #21
Source Project: gef   Author: eclipse   File: AbstractFXEditorTests.java    License: Eclipse Public License 2.0 5 votes vote down vote up
/**
 * Binds a factory for the creation of
 * {@link HistoryBasedDirtyStateProvider} as
 * {@link IDirtyStateProvider}.
 */
protected void bindIDirtyStateProviderFactory() {
	binder().bind(IDirtyStateProviderFactory.class).toInstance(new IDirtyStateProviderFactory() {

		@Override
		public IDirtyStateProvider create(IWorkbenchPart workbenchPart) {
			return new HistoryBasedDirtyStateProvider(
					(IOperationHistory) workbenchPart.getAdapter(IOperationHistory.class),
					(IUndoContext) workbenchPart.getAdapter(IUndoContext.class));
		}
	});
}
 
Example #22
Source Project: ermasterr   Author: roundrop   File: TestEditor.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * The <code>AbstractTextEditor</code> implementation of this
 * <code>IWorkbenchPart</code> method may be extended by subclasses.
 * Subclasses must call <code>super.dispose()</code>.
 * <p>
 * Note that many methods may return <code>null</code> after the editor is
 * disposed.
 * </p>
 */
@Override
public void dispose() {

    if (fTitleImage != null) {
        fTitleImage.dispose();
        fTitleImage = null;
    }

    disposeDocumentProvider();

    if (fSourceViewer != null) {
        fSourceViewer = null;
    }

    if (fConfiguration != null)
        fConfiguration = null;

    final IOperationHistory history = OperationHistoryFactory.getOperationHistory();
    if (history != null) {
        if (fNonLocalOperationApprover != null)
            history.removeOperationApprover(fNonLocalOperationApprover);
        if (fLinearUndoViolationApprover != null)
            history.removeOperationApprover(fLinearUndoViolationApprover);
    }
    fNonLocalOperationApprover = null;
    fLinearUndoViolationApprover = null;

    super.dispose();
}
 
Example #23
Source Project: statecharts   Author: Yakindu   File: AbstractSemanticModification.java    License: Eclipse Public License 1.0 5 votes vote down vote up
protected void executeCommand(IUndoableOperation command, Resource resource) {
	IOperationHistory history = OperationHistoryFactory.getOperationHistory();
	try {
		history.execute(command, new NullProgressMonitor(), null);
	} catch (ExecutionException e) {
		e.printStackTrace();
	}
}
 
Example #24
Source Project: translationstudio8   Author: heartsome   File: NattableUtil.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * 添加或者取消疑问
 * @param selectedRowIds
 * @param state
 *            ;
 */
public void changIsQuestionState(List<String> selectedRowIds, String state) {
	IOperationHistory operationHistory = OperationHistoryFactory.getOperationHistory();
	try {
		operationHistory.execute(new NeedsReviewOperation("need-review", xliffEditor.getTable(), selectedRowIds,
				xliffEditor.getXLFHandler(), state), null, null);
	} catch (ExecutionException e) {
		LOGGER.error("", e);
		MessageDialog.openError(xliffEditor.getSite().getShell(),
				Messages.getString("utils.NattableUtil.msgTitle2"), e.getMessage());
		e.printStackTrace();
	}
}
 
Example #25
Source Project: translationstudio8   Author: heartsome   File: NattableUtil.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * 设置是否添加到记忆库
 * @param selectedRowIds
 * @param state
 *            "yes" or "no";
 */
public void changeSendToTmState(List<String> selectedRowIds, String state) {
	IOperationHistory operationHistory = OperationHistoryFactory.getOperationHistory();
	try {
		operationHistory.execute(new SendTOTmOperation("send-to-tm", xliffEditor.getTable(), selectedRowIds,
				xliffEditor.getXLFHandler(), state), null, null);
	} catch (ExecutionException e) {
		LOGGER.error("", e);
		MessageDialog.openError(xliffEditor.getSite().getShell(),
				Messages.getString("utils.NattableUtil.msgTitle2"), e.getMessage());
		e.printStackTrace();
	}
}
 
Example #26
Source Project: translationstudio8   Author: heartsome   File: XLIFFEditorActionHandler.java    License: GNU General Public License v2.0 5 votes vote down vote up
@Override
public void runWithEvent(Event event) {
	if (viewer != null && !viewer.getTextWidget().isDisposed()) {
		XLIFFEditorImplWithNatTable xliffEditor = XLIFFEditorImplWithNatTable.getCurrent();
		// 先保存在撤销,除非以后取消两种模式,否则不要删除此判断
		if (viewer.canDoOperation(ITextOperationTarget.UNDO)) {
			HsMultiActiveCellEditor.commit(true);
		}
		IOperationHistory history = OperationHistoryFactory.getOperationHistory();
		IUndoContext undoContext = (IUndoContext) xliffEditor.getTable().getData(IUndoContext.class.getName());
		if (history.canUndo(undoContext)) {
			try {
				history.undo(undoContext, null, null);
				undoBean.setCrosseStep(undoBean.getCrosseStep() + 1);
			} catch (ExecutionException e) {
				e.printStackTrace();
			}
		}
		XLIFFEditorImplWithNatTable.getCurrent().redraw();
		updateActionsEnableState();
		return;
	}
	if (undoAction != null) {
		undoAction.runWithEvent(event);
		return;
	}
}
 
Example #27
Source Project: translationstudio8   Author: heartsome   File: XLIFFEditorActionHandler.java    License: GNU General Public License v2.0 5 votes vote down vote up
public void runWithEvent(Event event) {
	if (viewer != null && !viewer.getTextWidget().isDisposed()) {
		// 如果跨越焦点撤销,则先撤销非焦点
		try {
			IOperationHistory history = OperationHistoryFactory.getOperationHistory();
			IUndoContext undoContext = (IUndoContext) XLIFFEditorImplWithNatTable.getCurrent().getTable()
					.getData(IUndoContext.class.getName());
			history.redo(undoContext, null, null);
			// int crossSegment = undoBean.getCrosseStep();
			// if (crossSegment > 0) {
			// history.redo(undoContext, null, null);
			// undoBean.setCrosseStep(crossSegment - 1);
			// undoBean.setSaveStatus(-1);
			// } else if (undoBean.getSaveStatus() == -1) {
			// XLIFFEditorImplWithNatTable.getCurrent().jumpToRow(undoBean.getUnSaveRow());
			// viewer.setText(undoBean.getUnSaveText());
			// undoBean.setCrosseStep(0);
			// undoBean.setSaveStatus(0);
			// } else {
			// viewer.doOperation(ITextOperationTarget.REDO);
			// }
		} catch (ExecutionException e) {
			e.printStackTrace();
		}
		System.out.println(undoBean.getCrosseStep());
		updateActionsEnableState();
		return;
	}
	if (redoAction != null) {
		redoAction.runWithEvent(event);
		return;
	}
}
 
Example #28
Source Project: tmxeditor8   Author: heartsome   File: UpdateDataCommandHandler.java    License: GNU General Public License v2.0 5 votes vote down vote up
@Override
protected boolean doCommand(UpdateDataCommand command) {
	IOperationHistory operationHistory = OperationHistoryFactory.getOperationHistory();
	try {
		UpdateDataOperation op = new UpdateDataOperation(table, bodyLayerStack, command);
		op.addContext(PlatformUI.getWorkbench().getOperationSupport().getUndoContext());
		operationHistory.execute(op, null, null);
	} catch (ExecutionException e) {
		e.printStackTrace();
	}
	return true;
}
 
Example #29
Source Project: tmxeditor8   Author: heartsome   File: CellEditorGlobalActionHanlder.java    License: GNU General Public License v2.0 5 votes vote down vote up
public void runWithEvent(Event event) {
	TeActiveCellEditor.commit();
	IOperationHistory history = OperationHistoryFactory.getOperationHistory();
	IUndoContext context = PlatformUI.getWorkbench().getOperationSupport().getUndoContext();
	if (history.canUndo(context)) {
		try {
			history.undo(context, null, null);
			updateActionsEnableState();
		} catch (ExecutionException e) {
			e.printStackTrace();
		}
	}
}
 
Example #30
Source Project: tmxeditor8   Author: heartsome   File: CellEditorGlobalActionHanlder.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * Update the state.
 */
public void updateEnabledState() {
	IOperationHistory opHisotry = OperationHistoryFactory.getOperationHistory();
	IUndoContext context = PlatformUI.getWorkbench().getOperationSupport().getUndoContext();
	if (opHisotry.canUndo(context)) {
		setEnabled(true);
		return;
	}
	if (viewer != null && !viewer.getTextWidget().isDisposed()) {
		setEnabled(viewer.canDoOperation(ITextOperationTarget.UNDO));
		return;
	}
	setEnabled(false);
}