From: <sh...@us...> - 2008-10-29 21:42:55
|
Revision: 13968 http://jedit.svn.sourceforge.net/jedit/?rev=13968&view=rev Author: shlomy Date: 2008-10-29 21:42:51 +0000 (Wed, 29 Oct 2008) Log Message: ----------- More refactoring - moved the jEdit interface code into another package. Modified Paths: -------------- plugins/SourceNavigator/trunk/src/sn/JumpAction.java plugins/SourceNavigator/trunk/src/sn/SourceElement.java plugins/SourceNavigator/trunk/src/sn/SourceLink.java plugins/SourceNavigator/trunk/src/sn/SourceNavigatorPlugin.java Added Paths: ----------- plugins/SourceNavigator/trunk/src/utils/ plugins/SourceNavigator/trunk/src/utils/EditorInterface.java Modified: plugins/SourceNavigator/trunk/src/sn/JumpAction.java =================================================================== --- plugins/SourceNavigator/trunk/src/sn/JumpAction.java 2008-10-29 21:28:14 UTC (rev 13967) +++ plugins/SourceNavigator/trunk/src/sn/JumpAction.java 2008-10-29 21:42:51 UTC (rev 13968) @@ -20,7 +20,8 @@ } @Override public void invoke(View view) { - String tag = SourceNavigatorPlugin.getTagFromView(view); + String tag = SourceNavigatorPlugin.getEditorInterface().getTagForJump( + view, "\\w+"); Vector<DbRecord> tags = DbAccess.lookup(desc, tag, false); if (tags != null && tags.size() > 0) tags.get(0).getSourceLink().jumpTo(view); Modified: plugins/SourceNavigator/trunk/src/sn/SourceElement.java =================================================================== --- plugins/SourceNavigator/trunk/src/sn/SourceElement.java 2008-10-29 21:28:14 UTC (rev 13967) +++ plugins/SourceNavigator/trunk/src/sn/SourceElement.java 2008-10-29 21:42:51 UTC (rev 13968) @@ -48,6 +48,6 @@ path = dir + "/" + file; else path = file; - SourceNavigatorPlugin.jumpTo(view, path, line); + SourceNavigatorPlugin.getEditorInterface().jumpTo(view, path, line); } } Modified: plugins/SourceNavigator/trunk/src/sn/SourceLink.java =================================================================== --- plugins/SourceNavigator/trunk/src/sn/SourceLink.java 2008-10-29 21:28:14 UTC (rev 13967) +++ plugins/SourceNavigator/trunk/src/sn/SourceLink.java 2008-10-29 21:42:51 UTC (rev 13968) @@ -15,6 +15,6 @@ this.offset = offset; } public void jumpTo(View view) { - SourceNavigatorPlugin.jumpTo(view, path, line, offset); + SourceNavigatorPlugin.getEditorInterface().jumpTo(view, path, line, offset); } } \ No newline at end of file Modified: plugins/SourceNavigator/trunk/src/sn/SourceNavigatorPlugin.java =================================================================== --- plugins/SourceNavigator/trunk/src/sn/SourceNavigatorPlugin.java 2008-10-29 21:28:14 UTC (rev 13967) +++ plugins/SourceNavigator/trunk/src/sn/SourceNavigatorPlugin.java 2008-10-29 21:42:51 UTC (rev 13968) @@ -3,19 +3,15 @@ import java.util.Collections; import java.util.Comparator; import java.util.Vector; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import org.gjt.sp.jedit.ActionSet; -import org.gjt.sp.jedit.Buffer; import org.gjt.sp.jedit.EditPlugin; -import org.gjt.sp.jedit.View; import org.gjt.sp.jedit.jEdit; import org.gjt.sp.jedit.gui.DockableWindowFactory; -import org.gjt.sp.jedit.io.VFSManager; -import org.gjt.sp.jedit.textarea.JEditTextArea; +import utils.EditorInterface; + public class SourceNavigatorPlugin extends EditPlugin { static private final String SOURCE_NAVIGATOR_TABLES_MENU = "source-navigator-tables"; @@ -23,7 +19,8 @@ static public final String COMPLETION_ACTION_SET = "Plugin: Source Navigator - Completion"; static public final String JUMPING_ACTION_SET = "Plugin: Source Navigator - Jumping"; static private Vector<DbDescriptor> dbDescriptors; - + static private EditorInterface editorInterface; + public void start() { dbDescriptors = new Vector<DbDescriptor>(); @@ -48,6 +45,12 @@ { } + static public EditorInterface getEditorInterface() { + if (editorInterface == null) + editorInterface = new EditorInterface(); + return editorInterface; + } + private void createDockables() { jEdit.resetProperty(SOURCE_NAVIGATOR_TABLES_MENU); StringBuffer menu = new StringBuffer(); @@ -97,59 +100,5 @@ static public void setOption(String name, String value) { jEdit.setProperty(OPTION_PREFIX + name, value); } - static public void jumpTo(final View view, String file, final int line) { - jumpTo(view, file, line, 0); - } - static public void jumpTo(final View view, String file, final int line, - final int offset) - { - Buffer buffer = jEdit.openFile(view, file); - if (buffer == null) { - System.err.println("Unable to open: " + file); - return; - } - if (line <= 0) - return; - VFSManager.runInAWTThread(new Runnable() { - public void run() { - try { - view.getTextArea().setCaretPosition( - view.getTextArea().getLineStartOffset(line - 1) + offset); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - } - // Returns the tag to jump to: The selected tag or the one at the caret. - static public String getTagFromView(View view) { - String tag = view.getTextArea().getSelectedText(); - if (tag == null || tag.length() == 0) - tag = getTagAtCaret(view); - return tag; - } - - // Returns the tag at the caret. - static private String getTagAtCaret(View view) { - JEditTextArea ta = view.getTextArea(); - int line = ta.getCaretLine(); - int index = ta.getCaretPosition() - ta.getLineStartOffset(line); - String text = ta.getLineText(line); - Pattern pat = Pattern.compile("\\w+"); - Matcher m = pat.matcher(text); - int end = -1; - int start = -1; - String selected = ""; - while (end <= index) { - if (! m.find()) - return null; - end = m.end(); - start = m.start(); - selected = m.group(); - } - if (start > index || selected.length() == 0) - return null; - return selected; - } } Added: plugins/SourceNavigator/trunk/src/utils/EditorInterface.java =================================================================== --- plugins/SourceNavigator/trunk/src/utils/EditorInterface.java (rev 0) +++ plugins/SourceNavigator/trunk/src/utils/EditorInterface.java 2008-10-29 21:42:51 UTC (rev 13968) @@ -0,0 +1,75 @@ +package utils; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.gjt.sp.jedit.Buffer; +import org.gjt.sp.jedit.View; +import org.gjt.sp.jedit.jEdit; +import org.gjt.sp.jedit.io.VFSManager; +import org.gjt.sp.jedit.textarea.JEditTextArea; + +public class EditorInterface { + + /* Returns the tag to jump to: The selected tag or the specified + * regexp at the caret. (null if not found) + */ + public String getTagForJump(View view, String tagRegExp) { + String tag = view.getTextArea().getSelectedText(); + if (tag == null || tag.length() == 0) + tag = getTagAtCaret(view, tagRegExp); + return tag; + } + + // Returns the specified regexp at the caret. (null if not found) + private String getTagAtCaret(View view, String tagRegExp) { + JEditTextArea ta = view.getTextArea(); + int line = ta.getCaretLine(); + int index = ta.getCaretPosition() - ta.getLineStartOffset(line); + String text = ta.getLineText(line); + Pattern pat = Pattern.compile(tagRegExp); + Matcher m = pat.matcher(text); + int end = -1; + int start = -1; + String selected = ""; + while (end <= index) { + if (! m.find()) + return null; + end = m.end(); + start = m.start(); + selected = m.group(); + } + if (start > index || selected.length() == 0) + return null; + return selected; + } + + // Jump to the specified file:line in the specified view + public void jumpTo(final View view, String file, final int line) { + jumpTo(view, file, line, 0); + } + + // Jump to the specified file:line:offset in the specified view + public void jumpTo(final View view, String file, final int line, + final int offset) + { + Buffer buffer = jEdit.openFile(view, file); + if (buffer == null) { + System.err.println("Unable to open: " + file); + return; + } + if (line <= 0) + return; + VFSManager.runInAWTThread(new Runnable() { + public void run() { + try { + view.getTextArea().setCaretPosition( + view.getTextArea().getLineStartOffset(line - 1) + offset); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |