package com.sap.furcas.ide.editor.action; import org.eclipse.jface.text.source.SourceViewer; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; public class GotoDeclarationAction implements Listener { private static final int F3_KEY_CODE = 16777228; private final SourceViewer textViewer; public GotoDeclarationAction(SourceViewer textViewer) { super(); this.textViewer = textViewer; } @Override public void handleEvent(Event event) { if (event.keyCode == F3_KEY_CODE) { // AbstractToken token = ((CtsDocument) textViewer.getDocument()) // .getTextBlocksModelStore().getFloorToken( // textViewer.getSelectedRange().x); // Collection<EObject> referencedElement = token // .getReferencedElements(); // //TODO: Currently there are 4 different possibilities to navigate to, // //which have the following priorities: // //1) referenced element of token // //2) corresponding element of token // //3) referenced element of block // //4) corresponding element of block // //These priorities might be discussable // if (referencedElement.size() > 0) { // try { // ModelManagerUI.getEditorManager().openEditor( // referencedElement.iterator().next()); // } catch (PartInitException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } else if (token.getCorrespondingModelElements().size() > 0) { // if (referencedElement.size() > 0) { // try { // ModelManagerUI.getEditorManager().openEditor( // token.getCorrespondingModelElements() // .iterator().next()); // } catch (PartInitException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } // } else if (token.getParent().getReferencedElements().size() > 0) { // try { // ModelManagerUI.getEditorManager().openEditor( // token.getParent().getReferencedElements() // .iterator().next()); // } catch (PartInitException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } else if (token.getParent().getCorrespondingModelElements().size() > 0) { // try { // ModelManagerUI.getEditorManager().openEditor( // token.getParent().getCorrespondingModelElements() // .iterator().next()); // } catch (PartInitException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } } } }