emf commands

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo zusammen...
Ich habe einen Dialog der einige commands als compound command ausführt (appendandexecute) und diese bei cancel mit undo rückgängig macht. Wenn ich allerdings OK drücke ist dieser command nicht redoable....Wie kriege ich den auf den CommandStack?
Code:
                ........
		subcommands = new CompoundCommand();
		subcommands.setLabel("positioning");

		System.out.println("  SetMatrixAction  ");

		this.sp = (ScenePart) (EObject) collection.iterator().next();

		getCOG(sp);

		PositioningDialog PD = new PositioningDialog(this, PlatformUI
				.getWorkbench().getActiveWorkbenchWindow().getShell());

		PD.setValues(sp, isOriginVisible(sp));

		if (PD.open() == PositioningDialog.CANCEL) {

			subcommands.undo();
			Engine.getInstance().getCurrentViewport().refresh();
		}else{ ....


Code:
	public void somethingChangedInDialog(PositioningDialog PD) {

		subcommands.appendAndExecute(createTranslationCommand(PD));
		subcommands.appendAndExecute(createOrientationCommand(PD));
		subcommands.appendAndExecute(createScaleCommand(PD));
		subcommands.appendAndExecute(createOriginCommand(PD));

		Engine.getInstance().getCurrentViewport().refresh();
	}
 
Das hilft dir vielleicht:
Code:
IWorkbench workbench = YourAbstractUIPlugin.getDefault().getWorkbench();
IOperationHistory history = workbench.getOperationSupport().getOperationHistory();
 
nein nicht wirklich....dieser Aufruf:

history.add( (IUndoableOperation) subcommands);

bewirkt nichts. Ich arbeite ja auch mit den emf commands , also org.eclipse.emf.common.command.CompoundCommand......
 
Die EMF Commands sind erstmal Eclipse unabhängig und daher auch nicht kompatibel zu den geforderten Interfaces.
AFAIK brauchst du also Wrapper Klassen wie zB EMFCommandOperation um etwas auf der Eclipse Undo History auszuführen.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben