diff options
author | Henrik Rentz-Reichert | 2011-03-13 13:09:17 +0000 |
---|---|---|
committer | Henrik Rentz-Reichert | 2011-03-13 13:09:17 +0000 |
commit | 5b39ae6a1d1224d9935b9b8ad0414ea5d0b7c3dd (patch) | |
tree | 6048ebf32b0c8988400be98e3d240db2f5fcdd7b /plugins/org.eclipse.etrice.ui.commands/src | |
parent | e8d88bf7b801d7b16c766ff4ab817fe34277e2ab (diff) | |
download | org.eclipse.etrice-5b39ae6a1d1224d9935b9b8ad0414ea5d0b7c3dd.tar.gz org.eclipse.etrice-5b39ae6a1d1224d9935b9b8ad0414ea5d0b7c3dd.tar.xz org.eclipse.etrice-5b39ae6a1d1224d9935b9b8ad0414ea5d0b7c3dd.zip |
ui.commands: Open Model selects the current structure class
Diffstat (limited to 'plugins/org.eclipse.etrice.ui.commands/src')
-rw-r--r-- | plugins/org.eclipse.etrice.ui.commands/src/org/eclipse/etrice/ui/commands/handlers/OpenModelHandler.java | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/plugins/org.eclipse.etrice.ui.commands/src/org/eclipse/etrice/ui/commands/handlers/OpenModelHandler.java b/plugins/org.eclipse.etrice.ui.commands/src/org/eclipse/etrice/ui/commands/handlers/OpenModelHandler.java index fc4a01d2d..3f410e742 100644 --- a/plugins/org.eclipse.etrice.ui.commands/src/org/eclipse/etrice/ui/commands/handlers/OpenModelHandler.java +++ b/plugins/org.eclipse.etrice.ui.commands/src/org/eclipse/etrice/ui/commands/handlers/OpenModelHandler.java @@ -5,12 +5,19 @@ import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.emf.edit.ui.util.EditUIUtil; import org.eclipse.etrice.core.room.StructureClass; +import org.eclipse.etrice.core.ui.internal.RoomActivator; import org.eclipse.etrice.ui.behavior.editor.BehaviorEditor; import org.eclipse.etrice.ui.structure.editor.StructureEditor; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; import org.eclipse.ui.handlers.HandlerUtil; +import org.eclipse.xtext.resource.ILocationInFileProvider; +import org.eclipse.xtext.ui.editor.XtextEditor; +import org.eclipse.xtext.util.TextLocation; + +import com.google.inject.Inject; +import com.google.inject.Injector; /** * Our sample handler extends AbstractHandler, an IHandler base class. @@ -18,10 +25,16 @@ import org.eclipse.ui.handlers.HandlerUtil; * @see org.eclipse.core.commands.AbstractHandler */ public class OpenModelHandler extends AbstractHandler { + + @Inject + ILocationInFileProvider locationProvider; + /** * The constructor. */ public OpenModelHandler() { + Injector injector = RoomActivator.getInstance().getInjector("org.eclipse.etrice.core.Room"); + injector.injectMembers(this); } /** @@ -40,7 +53,14 @@ public class OpenModelHandler extends AbstractHandler { } if (sc!=null) { try { - EditUIUtil.openEditor(sc); + if (EditUIUtil.openEditor(sc)) { + editor = window.getActivePage().getActiveEditor(); + if (editor instanceof XtextEditor) { + XtextEditor xed = (XtextEditor) editor; + TextLocation location = locationProvider.getLocation(sc); + xed.selectAndReveal(location.getOffset(), location.getLength()); + } + } } catch (PartInitException e) { e.printStackTrace(); } |