X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPContentOutlinePage.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPContentOutlinePage.java index 72cbeae..1544023 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPContentOutlinePage.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPContentOutlinePage.java @@ -18,9 +18,14 @@ import java.util.Comparator; import java.util.List; import java.util.TreeSet; +import net.sourceforge.phpdt.internal.compiler.parser.Outlineable; +import net.sourceforge.phpdt.internal.compiler.parser.OutlineableWithChildren; +import net.sourceforge.phpdt.internal.compiler.parser.PHPOutlineInfo; +import net.sourceforge.phpdt.internal.compiler.parser.PHPSegment; +import net.sourceforge.phpdt.internal.compiler.parser.PHPSegmentWithChildren; import net.sourceforge.phpdt.internal.ui.viewsupport.ImageDescriptorRegistry; import net.sourceforge.phpeclipse.PHPeclipsePlugin; -import net.sourceforge.phpeclipse.phpeditor.phpparser.*; + import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.text.BadPositionCategoryException; import org.eclipse.jface.text.DefaultPositionUpdater; @@ -35,16 +40,17 @@ import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; import org.eclipse.ui.texteditor.IDocumentProvider; import org.eclipse.ui.texteditor.ITextEditor; -import org.eclipse.ui.views.contentoutline.ContentOutlinePage; + +import test.PHPParserManager; +import test.PHPParserSuperclass; /** * A content outline page which always represents the functions of the * connected PHPEditor. */ -public class PHPContentOutlinePage extends ContentOutlinePage { +public class PHPContentOutlinePage extends AbstractContentOutlinePage { private static final String ERROR = "error"; //$NON-NLS-1$ private static final String WARNING = "warning"; //$NON-NLS-1$ @@ -56,7 +62,7 @@ public class PHPContentOutlinePage extends ContentOutlinePage { if (o2 instanceof PHPSegmentWithChildren && !(o1 instanceof PHPSegmentWithChildren)) { return -1; } - return ((PHPSegment) o1).toString().compareToIgnoreCase(((PHPSegment) o2).toString()); + return ((Outlineable) o1).toString().compareToIgnoreCase(((Outlineable) o2).toString()); } } @@ -77,7 +83,7 @@ public class PHPContentOutlinePage extends ContentOutlinePage { // StringBuffer identifier = new StringBuffer(); // while (i < textLength) { // c = text.charAt(i++); - // if (Character.isJavaIdentifierPart(c) || (c == '$')) { + // if (Scanner.isPHPIdentifierPart(c) || (c == '$')) { // identifier.append(c); // } else if ((i == firstIndex + 1) && (c == '$')) { // identifier.append(c); @@ -96,19 +102,18 @@ public class PHPContentOutlinePage extends ContentOutlinePage { String name; int index; String text = document.get(); - PHPParser parser = new PHPParser(null); + PHPParserSuperclass parser = PHPParserManager.getParser(null); PHPOutlineInfo outlineInfo = parser.parseInfo(fInput, text); fVariables = outlineInfo.getVariables(); - PHPSegmentWithChildren declarations = outlineInfo.getDeclarations(); - PHPSegment temp; + OutlineableWithChildren declarations = outlineInfo.getDeclarations(); + Outlineable temp; for (int i = 0; i < declarations.size(); i++) { temp = declarations.get(i); fContent.add(temp); } Collections.sort(fContent, new SegmentComparator()); - } /* @@ -189,8 +194,8 @@ public class PHPContentOutlinePage extends ContentOutlinePage { * @see ITreeContentProvider#getParent(Object) */ public Object getParent(Object element) { - if (element instanceof PHPSegment) { - return ((PHPSegment) element).getParent(); + if (element instanceof Outlineable) { + return ((Outlineable) element).getParent(); } return null; } @@ -220,26 +225,25 @@ public class PHPContentOutlinePage extends ContentOutlinePage { * override. */ public Image getImage(Object element) { - if (element instanceof PHPSegment) { - ImageDescriptor descriptor = ((PHPSegment) element).getImage(); + if (element instanceof Outlineable) { + ImageDescriptor descriptor = ((Outlineable) element).getImage(); return fRegistry.get(descriptor); } return null; } } - protected Object fInput; protected IDocumentProvider fDocumentProvider; protected ITextEditor fTextEditor; protected PHPEditor fEditor; - protected ContentProvider contentProvider; + protected ContentProvider fContentProvider; /** * Creates a content outline page using the given provider and the given editor. */ public PHPContentOutlinePage(IDocumentProvider provider, ITextEditor editor) { super(); - contentProvider = null; + fContentProvider = null; fDocumentProvider = provider; fTextEditor = editor; if (editor instanceof PHPEditor) @@ -255,8 +259,8 @@ public class PHPContentOutlinePage extends ContentOutlinePage { TreeViewer viewer = getTreeViewer(); - contentProvider = new ContentProvider(); - viewer.setContentProvider(contentProvider); + fContentProvider = new ContentProvider(); + viewer.setContentProvider(fContentProvider); viewer.setLabelProvider(new OutlineLabelProvider()); viewer.addSelectionChangedListener(this); @@ -286,35 +290,10 @@ public class PHPContentOutlinePage extends ContentOutlinePage { } } } - - /** - * Sets the input of the outline page - */ - public void setInput(Object input) { - fInput = input; - update(); - } - - /** - * Updates the outline page. - */ - public void update() { - TreeViewer viewer = getTreeViewer(); - - if (viewer != null) { - Control control = viewer.getControl(); - if (control != null && !control.isDisposed()) { - control.setRedraw(false); - viewer.setInput(fInput); - viewer.expandAll(); - control.setRedraw(true); - } - } - } public Object[] getVariables() { - if (contentProvider != null) { - return contentProvider.getVariables(); + if (fContentProvider != null) { + return fContentProvider.getVariables(); } return null; }