[Pydev-cvs] org.python.pydev/src/org/python/pydev/editor/actions PyGoToDefinition.java,NONE,1.1
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2004-05-21 18:12:41
|
Update of /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/actions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14052/src/org/python/pydev/editor/actions Added Files: PyGoToDefinition.java Log Message: Goes To some definition (similar to Ctrl+Click) --- NEW FILE: PyGoToDefinition.java --- /* * Created on May 21, 2004 * */ package org.python.pydev.editor.actions; import java.util.ArrayList; import org.eclipse.jface.action.IAction; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.ITextSelection; import org.eclipse.ui.PlatformUI; import org.python.pydev.editor.PyEdit; import org.python.pydev.editor.model.AbstractNode; import org.python.pydev.editor.model.ItemPointer; import org.python.pydev.editor.model.Location; import org.python.pydev.editor.model.ModelUtils; /** * @author Fabio Zadrozny * */ public class PyGoToDefinition extends PyAction{ /* (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) */ public void run(IAction action) { try{ PyEdit pyEdit = getPyEdit(); IDocument doc = pyEdit.getDocumentProvider().getDocument(pyEdit.getEditorInput()); ITextSelection selection = (ITextSelection) pyEdit.getSelectionProvider().getSelection(); Location loc = Location.offsetToLocation(doc, selection.getOffset()); AbstractNode node = ModelUtils.getElement(pyEdit.getPythonModel(),loc, AbstractNode.PROP_CLICKABLE); if(node == null) return; PyOpenAction openAction = (PyOpenAction)pyEdit.getAction(PyEdit.ACTION_OPEN); ArrayList where = ModelUtils.findDefinition(node); if (where.size() > 0) openAction.run((ItemPointer)where.get(0)); else PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getDisplay().beep(); }catch (Exception e) { e.printStackTrace(); } } } |