- Revision
- 585
- Author
- sirenian
- Date
- 2006-11-27 05:52:36 -0600 (Mon, 27 Nov 2006)
Log Message
[FL] F3 through to story components from story text
Modified Paths
Added Paths
- trunk/plugins/eclipse/.settings/
- trunk/plugins/eclipse/.settings/org.eclipse.jdt.core.prefs
- trunk/plugins/eclipse/.settings/org.eclipse.jdt.ui.prefs
- trunk/plugins/eclipse/src/main/java/jbehave/plugin/eclipse/actions/
- trunk/plugins/eclipse/src/main/java/jbehave/plugin/eclipse/actions/NavigateToJavaSource.java
- trunk/plugins/eclipse/src/main/java/jbehave/plugin/eclipse/editors/
- trunk/plugins/eclipse/src/main/java/jbehave/plugin/eclipse/editors/BehaviourEditor.java
Diff
Added: trunk/plugins/eclipse/.settings/org.eclipse.jdt.core.prefs (0 => 585)
--- trunk/plugins/eclipse/.settings/org.eclipse.jdt.core.prefs (rev 0) +++ trunk/plugins/eclipse/.settings/org.eclipse.jdt.core.prefs 2006-11-27 11:52:36 UTC (rev 585) @@ -0,0 +1,12 @@ +#Mon Nov 27 11:25:29 GMT 2006 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5
Added: trunk/plugins/eclipse/.settings/org.eclipse.jdt.ui.prefs (0 => 585)
--- trunk/plugins/eclipse/.settings/org.eclipse.jdt.ui.prefs (rev 0) +++ trunk/plugins/eclipse/.settings/org.eclipse.jdt.ui.prefs 2006-11-27 11:52:36 UTC (rev 585) @@ -0,0 +1,3 @@ +#Mon Nov 27 11:25:29 GMT 2006 +eclipse.preferences.version=1 +internal.default.compliance=default
Modified: trunk/plugins/eclipse/META-INF/MANIFEST.MF (584 => 585)
--- trunk/plugins/eclipse/META-INF/MANIFEST.MF 2006-11-27 11:06:28 UTC (rev 584) +++ trunk/plugins/eclipse/META-INF/MANIFEST.MF 2006-11-27 11:52:36 UTC (rev 585) @@ -17,6 +17,10 @@ org.eclipse.core.resources, org.eclipse.jdt.source, org.eclipse.jdt.ui, - org.eclipse.core.expressions + org.eclipse.core.expressions, + org.eclipse.jface.text, + org.eclipse.ui.editors, + org.eclipse.ui.workbench.texteditor Eclipse-AutoStart: true Bundle-Vendor: JBehave +Bundle-ClassPath: lib/commons-lang-1.0.1.jar
Modified: trunk/plugins/eclipse/plugin.xml (584 => 585)
--- trunk/plugins/eclipse/plugin.xml 2006-11-27 11:06:28 UTC (rev 584) +++ trunk/plugins/eclipse/plugin.xml 2006-11-27 11:52:36 UTC (rev 585) @@ -98,5 +98,35 @@ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" sequence="M3+M2+D B"/> </extension> + <extension + point="org.eclipse.ui.editors"> + <editor + class="jbehave.plugin.eclipse.editors.BehaviourEditor" + contributorClass="org.eclipse.ui.texteditor.BasicTextEditorActionContributor" + extensions="story" + icon="icons/behave.gif" + id="jbehave.plugin.eclipse.editors.BehaviourEditor" + name="Behaviour Editor"/> + </extension> + <extension + id="jbehave.plugin.eclipse.editorActions" + name="editorActions" + point="org.eclipse.ui.editorActions"> + <editorContribution + id="jbehave-eclipse.behaviourEditorContribution" + targetID="jbehave.plugin.eclipse.editors.BehaviourEditor"> + <action + class="jbehave.plugin.eclipse.actions.NavigateToJavaSource" + id="jbehave-eclipse.navigate-source" + definitionId="org.eclipse.jdt.ui.edit.text.java.open.editor" + label="Navigate to Source" + menubarPath="navigate/open.ext" + style="push" + tooltip="Navigate to Source"/> + + </editorContribution> + </extension> + + </plugin>
Added: trunk/plugins/eclipse/src/main/java/jbehave/plugin/eclipse/actions/NavigateToJavaSource.java (0 => 585)
--- trunk/plugins/eclipse/src/main/java/jbehave/plugin/eclipse/actions/NavigateToJavaSource.java (rev 0) +++ trunk/plugins/eclipse/src/main/java/jbehave/plugin/eclipse/actions/NavigateToJavaSource.java 2006-11-27 11:52:36 UTC (rev 585) @@ -0,0 +1,140 @@ +package jbehave.plugin.eclipse.actions; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; + +import jbehave.plugin.eclipse.editors.BehaviourEditor; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.jdt.core.IType; +import org.eclipse.jdt.core.JavaModelException; +import org.eclipse.jdt.core.search.IJavaSearchConstants; +import org.eclipse.jdt.core.search.IJavaSearchScope; +import org.eclipse.jdt.core.search.SearchEngine; +import org.eclipse.jdt.core.search.SearchMatch; +import org.eclipse.jdt.core.search.SearchParticipant; +import org.eclipse.jdt.core.search.SearchPattern; +import org.eclipse.jdt.core.search.SearchRequestor; +import org.eclipse.jdt.core.search.TypeNameRequestor; +import org.eclipse.jdt.internal.ui.javaeditor.EditorUtility; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.text.IDocument; +import org.eclipse.jface.text.TextSelection; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.ui.IEditorActionDelegate; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.INavigationLocation; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.texteditor.IDocumentProvider; +import org.eclipse.ui.texteditor.TextSelectionNavigationLocation; + +public class NavigateToJavaSource implements IEditorActionDelegate { + + List keyWords=Arrays.asList(new String[]{"title:","scenario:","when","then","given"}); + private BehaviourEditor editor; + + public void setActiveEditor(IAction action, IEditorPart targetEditor) { + this.editor=(BehaviourEditor)targetEditor; + + } + + public static String capitalize(String str) { + int strLen; + if (str == null || (strLen = str.length()) == 0) { + return str; + } + return new StringBuffer(strLen) + .append(Character.toTitleCase(str.charAt(0))) + .append(str.substring(1)) + .toString(); + } + + + public void run(IAction action) { + IDocumentProvider dp = editor.getDocumentProvider(); + IDocument document = editor.getDocumentProvider().getDocument(editor.getEditorInput()); + TextSelectionNavigationLocation navloc = (TextSelectionNavigationLocation) editor.createNavigationLocation(); + TextSelection selection=(TextSelection) editor.getSelectionProvider().getSelection(); + int line=selection.getStartLine(); + try { + String text=document.get(document.getLineOffset(line),document.getLineLength(line)); + processLine(text); + } catch (BadLocationException e) { + e.printStackTrace(); + } + } + + private void processLine(String line) { + line=line.replaceAll("\n", ""); + line=line.replaceAll("\r", ""); + List words=new ArrayList(Arrays.asList(line.split(" "))); + if (words.size()<2) + return; + + if (((String)words.get(0)).equalsIgnoreCase("and")){ + words.remove(0); + if (words.size()<2) + return; + } + + if (keyWords.contains(((String)words.get(0)).toLowerCase())){ + words.remove(0); + String className = renderClassName(words); + findAndOpenClass(className); + } + + } + + private String renderClassName(List words) { + String className=""; + for (Iterator iter = words.iterator(); iter.hasNext();) { + String word = (String) iter.next(); + className+=capitalize(word); + } + System.out.println("Class: '"+className+"'"); + return className; + } + + private void findAndOpenClass(String className) { + try { + final List types = new ArrayList(); + SearchPattern pattern = SearchPattern.createPattern(className, IJavaSearchConstants.TYPE, IJavaSearchConstants.DECLARATIONS, SearchPattern.R_EXACT_MATCH); + IJavaSearchScope scope = SearchEngine.createWorkspaceScope(); + SearchRequestor requestor = new SearchRequestor(){ + @Override + public void acceptSearchMatch(SearchMatch match) throws CoreException { + types.add(match.getElement()); + } + }; + + SearchEngine searchEngine = new SearchEngine(); + searchEngine.search( + pattern, + new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()}, + scope, + requestor, + null); + if (types.size()==1){ + EditorUtility.openInEditor((IType)types.get(0), true); + } + + } catch (JavaModelException e) { + throw new RuntimeException(e); + } catch (CoreException e) { + throw new RuntimeException(e); + } + + } + + + + + public void selectionChanged(IAction action, ISelection selection) { + // TODO Auto-generated method stub + + } + +}
Added: trunk/plugins/eclipse/src/main/java/jbehave/plugin/eclipse/editors/BehaviourEditor.java (0 => 585)
--- trunk/plugins/eclipse/src/main/java/jbehave/plugin/eclipse/editors/BehaviourEditor.java (rev 0) +++ trunk/plugins/eclipse/src/main/java/jbehave/plugin/eclipse/editors/BehaviourEditor.java 2006-11-27 11:52:36 UTC (rev 585) @@ -0,0 +1,17 @@ +package jbehave.plugin.eclipse.editors; + +import org.eclipse.ui.editors.text.TextEditor; + +public class BehaviourEditor extends TextEditor { + + + public BehaviourEditor() { + super(); + + } + public void dispose() { + + super.dispose(); + } + +}
To unsubscribe from this list please visit:
