[Pydev-cvs] org.python.pydev/src/org/python/pydev/editor/actions PyGoToDefinition.java,1.1,1.2 PyOpe
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2004-09-20 19:09:02
|
Update of /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/actions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11446/src/org/python/pydev/editor/actions Modified Files: PyGoToDefinition.java PyOpenAction.java Log Message: Changed search for bicycle repair man search and added a refactor view to show which files are modified. Index: PyOpenAction.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/actions/PyOpenAction.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PyOpenAction.java 7 May 2004 21:48:58 -0000 1.5 --- PyOpenAction.java 20 Sep 2004 19:08:42 -0000 1.6 *************** *** 63,67 **** editor = PydevPlugin.doOpenEditor(path, true); } ! if (editor instanceof ITextEditor) { showInEditor((ITextEditor)editor, p.start, p.end); } --- 63,67 ---- editor = PydevPlugin.doOpenEditor(path, true); } ! if (editor instanceof ITextEditor && p.start.line >= 0 && p.end.line >= 0) { showInEditor((ITextEditor)editor, p.start, p.end); } Index: PyGoToDefinition.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/actions/PyGoToDefinition.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PyGoToDefinition.java 21 May 2004 18:12:32 -0000 1.1 --- PyGoToDefinition.java 20 Sep 2004 19:08:42 -0000 1.2 *************** *** 5,9 **** package org.python.pydev.editor.actions; ! import java.util.ArrayList; import org.eclipse.jface.action.IAction; --- 5,9 ---- package org.python.pydev.editor.actions; ! import java.util.List; import org.eclipse.jface.action.IAction; *************** *** 12,53 **** 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(); ! } ! } ! } --- 12,100 ---- import org.eclipse.ui.PlatformUI; import org.python.pydev.editor.PyEdit; + import org.python.pydev.editor.actions.refactoring.PyRefactorAction; 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; + import org.python.pydev.editor.refactoring.PyRefactoring; /** * @author Fabio Zadrozny ! * */ ! public class PyGoToDefinition extends PyRefactorAction { ! protected boolean areRefactorPreconditionsOK(PyEdit edit) { ! ! if(edit.isDirty()) ! edit.doSave(null); ! ! return true; ! } ! ! /* ! * (non-Javadoc) ! * ! * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) ! */ ! public void run(IAction action) { ! try { ! ! ps = new PySelection(getTextEditor(), false); ! PyEdit pyEdit = getPyEdit(); ! areRefactorPreconditionsOK(pyEdit); ! ! PyOpenAction openAction = (PyOpenAction) pyEdit ! .getAction(PyEdit.ACTION_OPEN); ! ! List where = findDefinition(pyEdit); ! ! if (where == null) { ! return; ! } ! ! if (where.size() > 0) ! openAction.run((ItemPointer) where.get(0)); ! else ! PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell() ! .getDisplay().beep(); ! } catch (Exception e) { ! e.printStackTrace(); ! } ! } ! ! /** ! * @param node ! * @return ! */ ! private List findDefinition(PyEdit pyEdit) { ! if(true){ ! PyRefactoring pyRefactoring = PyRefactoring.getPyRefactoring(); ! return pyRefactoring.findDefinition(pyEdit.getEditorFile(), getStartLine(), getStartCol(), null); ! ! }else{ //kept earlier version (may be useful). ! 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 null; ! return ModelUtils.findDefinition(node); ! } ! } ! protected String perform(IAction action, String name, Operation operation) ! throws Exception { ! return null; ! } ! ! protected String getInputMessage() { ! return null; ! } ! ! } \ No newline at end of file |