|
From: <mir...@us...> - 2006-07-31 20:22:19
|
Revision: 1551 Author: mirkostocker Date: 2006-07-31 13:22:07 -0700 (Mon, 31 Jul 2006) ViewCVS: http://svn.sourceforge.net/rubyeclipse/?rev=1551&view=rev Log Message: ----------- added some preferences for the astviewer plugin and refactored some of the existing code Modified Paths: -------------- trunk/org.rubypeople.rdt.astviewer/plugin.xml trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/views/AstView.java trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/views/ViewContentProvider.java Added Paths: ----------- trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/preferences/ trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/preferences/AstViewerPreferencePage.java trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/preferences/PreferenceConstants.java trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/preferences/PreferenceInitializer.java Modified: trunk/org.rubypeople.rdt.astviewer/plugin.xml =================================================================== --- trunk/org.rubypeople.rdt.astviewer/plugin.xml 2006-07-27 22:46:52 UTC (rev 1550) +++ trunk/org.rubypeople.rdt.astviewer/plugin.xml 2006-07-31 20:22:07 UTC (rev 1551) @@ -28,5 +28,15 @@ </view> </perspectiveExtension> </extension> + <extension point="org.eclipse.ui.preferencePages"> + <page class="org.rubypeople.rdt.astviewer.preferences.AstViewerPreferencePage" + id="org.rubypeople.rdt.astviewer.preferences.AstViewerPreferencePage" + name="AST View"/> + </extension> + <extension point="org.eclipse.core.runtime.preferences"> + <initializer class="org.rubypeople.rdt.astviewer.preferences.PreferenceInitializer"/> + </extension> + <extension point="org.eclipse.ui.preferencePages"> + </extension> </plugin> Added: trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/preferences/AstViewerPreferencePage.java =================================================================== --- trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/preferences/AstViewerPreferencePage.java (rev 0) +++ trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/preferences/AstViewerPreferencePage.java 2006-07-31 20:22:07 UTC (rev 1551) @@ -0,0 +1,34 @@ +package org.rubypeople.rdt.astviewer.preferences; + +import org.eclipse.jface.preference.*; +import org.eclipse.ui.IWorkbenchPreferencePage; +import org.eclipse.ui.IWorkbench; +import org.rubypeople.rdt.astviewer.Activator; + +public class AstViewerPreferencePage + extends FieldEditorPreferencePage + implements IWorkbenchPreferencePage { + + public AstViewerPreferencePage() { + super(GRID); + setPreferenceStore(Activator.getDefault().getPreferenceStore()); + setDescription("Select the nodes you want to see in the tree:"); + } + + public void createFieldEditors() { + + addField( new BooleanFieldEditor( + PreferenceConstants.P_SHOW_NEWLINE, + "show &NewlineNodes", + getFieldEditorParent())); + + addField( new BooleanFieldEditor( + PreferenceConstants.P_SHOW_SCOPE, + "show &ScopeNodes", + getFieldEditorParent())); + } + + public void init(IWorkbench workbench) { + } + +} \ No newline at end of file Added: trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/preferences/PreferenceConstants.java =================================================================== --- trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/preferences/PreferenceConstants.java (rev 0) +++ trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/preferences/PreferenceConstants.java 2006-07-31 20:22:07 UTC (rev 1551) @@ -0,0 +1,11 @@ +package org.rubypeople.rdt.astviewer.preferences; + +/** + * Constant definitions for plug-in preferences + */ +public class PreferenceConstants { + + public static final String P_SHOW_NEWLINE = "showNewline"; + public static final String P_SHOW_SCOPE = "showScope"; + +} Added: trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/preferences/PreferenceInitializer.java =================================================================== --- trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/preferences/PreferenceInitializer.java (rev 0) +++ trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/preferences/PreferenceInitializer.java 2006-07-31 20:22:07 UTC (rev 1551) @@ -0,0 +1,18 @@ +package org.rubypeople.rdt.astviewer.preferences; + +import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; +import org.eclipse.jface.preference.IPreferenceStore; + +import org.rubypeople.rdt.astviewer.Activator; + +/** + * Class used to initialize default preference values. + */ +public class PreferenceInitializer extends AbstractPreferenceInitializer { + + public void initializeDefaultPreferences() { + IPreferenceStore store = Activator.getDefault().getPreferenceStore(); + store.setDefault(PreferenceConstants.P_SHOW_NEWLINE, true); + store.setDefault(PreferenceConstants.P_SHOW_SCOPE, true); + } +} Modified: trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/views/AstView.java =================================================================== --- trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/views/AstView.java 2006-07-27 22:46:52 UTC (rev 1550) +++ trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/views/AstView.java 2006-07-31 20:22:07 UTC (rev 1551) @@ -28,18 +28,12 @@ package org.rubypeople.rdt.astviewer.views; -import java.io.InputStream; -import java.net.URL; - -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IMenuListener; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; -import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.text.Document; import org.eclipse.jface.text.source.SourceViewer; import org.eclipse.jface.viewers.DoubleClickEvent; @@ -49,7 +43,6 @@ import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; -import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; @@ -61,6 +54,7 @@ import org.eclipse.ui.part.DrillDownAdapter; import org.eclipse.ui.part.ViewPart; import org.jruby.ast.Node; +import org.rubypeople.rdt.astviewer.Activator; import org.rubypeople.rdt.internal.ui.rubyeditor.RubyEditor; public class AstView extends ViewPart { @@ -72,9 +66,6 @@ private ViewContentProvider viewContentProvider; private SashForm sashForm; private SourceViewer detailsViewer; - - public static final String PLUGIN_ID = "org.rubypeople.rdt.astviewer"; - public static final String ICON_PATH = "icons/"; public void createPartControl(Composite parent) { sashForm = new SashForm(parent, SWT.NONE); @@ -186,13 +177,9 @@ refreshAction.setText("Refresh the AST View"); refreshAction.setToolTipText("Performs a complete refresh over the whole AST."); - refreshAction.setImageDescriptor(ImageDescriptor.createFromURL(getImageUrl("refresh.gif"))); + refreshAction.setImageDescriptor(Activator.getImageDescriptor("icons/refresh.gif")); } - private static URL getImageUrl(String relative) { - return Platform.find(Platform.getBundle(PLUGIN_ID), new Path(ICON_PATH + relative)); - } - private void setSelection(RubyEditor editor, Node n) { if (n == null) return; Modified: trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/views/ViewContentProvider.java =================================================================== --- trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/views/ViewContentProvider.java 2006-07-27 22:46:52 UTC (rev 1550) +++ trunk/org.rubypeople.rdt.astviewer/src/org/rubypeople/rdt/astviewer/views/ViewContentProvider.java 2006-07-31 20:22:07 UTC (rev 1551) @@ -40,12 +40,15 @@ import org.eclipse.ui.IViewSite; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PlatformUI; +import org.jruby.ast.NewlineNode; import org.jruby.ast.Node; +import org.jruby.ast.ScopeNode; import org.jruby.common.NullWarnings; import org.jruby.lexer.yacc.LexerSource; import org.jruby.parser.DefaultRubyParser; import org.jruby.parser.RubyParserConfiguration; import org.jruby.parser.RubyParserPool; +import org.rubypeople.rdt.astviewer.Activator; import org.rubypeople.rdt.internal.ui.rubyeditor.RubyEditor; class ViewContentProvider implements IStructuredContentProvider, ITreeContentProvider { @@ -56,6 +59,10 @@ private RubyEditor editor; private DefaultRubyParser parser; + + private boolean showNewline; + + private boolean showScope; public ViewContentProvider(IViewSite viewSite) { this.viewSite = viewSite; @@ -124,13 +131,12 @@ if(n == null) return; + + if(!showNewline && n instanceof NewlineNode) + n = ((NewlineNode) n).getNextNode(); + else if(!showScope && n instanceof ScopeNode) + n = ((ScopeNode) n).getBodyNode(); - //we could just skip newline and scope nodes here. should make it configureable -// if(n instanceof NewlineNode) -// n = ((NewlineNode) n).getNextNode(); -// else if(n instanceof ScopeNode) -// n = ((ScopeNode) n).getBodyNode(); - if(n.childNodes().size() <= 0) { parent.addChild(new TreeObject(n)); } else { @@ -140,7 +146,7 @@ while(it.hasNext()) { buildTree(new_parent, (Node) it.next()); } - } + } } private IWorkbenchPage getActiveWorkbenchPage() { @@ -160,6 +166,8 @@ setEditor((RubyEditor) getActiveWorkbenchPage().getActiveEditor()); invisibleRoot = new TreeParent(null); + showNewline = Activator.getDefault().getPreferenceStore().getBoolean("showNewline"); + showScope = Activator.getDefault().getPreferenceStore().getBoolean("showScope"); buildTree(invisibleRoot, getRootNode()); return true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |