import java.util.List;
import java.util.TreeSet;
-import net.sourceforge.phpdt.internal.compiler.parser.*;
+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 org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.DefaultPositionUpdater;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IPositionUpdater;
+import org.eclipse.jface.text.*;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITreeContentProvider;
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.PHPParserSuperclass;
+
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$
protected static class SegmentComparator implements Comparator {
public int compare(Object o1, Object o2) {
- if (o1 instanceof PHPSegmentWithChildren && !(o2 instanceof PHPSegmentWithChildren)) {
+ if (o1 instanceof OutlineableWithChildren && !(o2 instanceof OutlineableWithChildren)) {
return 1;
}
- if (o2 instanceof PHPSegmentWithChildren && !(o1 instanceof PHPSegmentWithChildren)) {
+ if (o2 instanceof OutlineableWithChildren && !(o1 instanceof OutlineableWithChildren)) {
return -1;
}
return ((Outlineable) o1).toString().compareToIgnoreCase(((Outlineable) o2).toString());
* @see ITreeContentProvider#hasChildren(Object)
*/
public boolean hasChildren(Object element) {
- if (element instanceof PHPSegmentWithChildren) {
- return !((PHPSegmentWithChildren) element).getList().isEmpty();
+ if (element instanceof OutlineableWithChildren) {
+ return !((OutlineableWithChildren) element).getList().isEmpty();
}
return element == fInput;
}
public Object[] getChildren(Object element) {
if (element == fInput)
return fContent.toArray();
- if (element instanceof PHPSegmentWithChildren)
- return ((PHPSegmentWithChildren) element).getList().toArray();
+ if (element instanceof OutlineableWithChildren)
+ return ((OutlineableWithChildren) element).getList().toArray();
return new Object[0];
}
};
}
}
- 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)
TreeViewer viewer = getTreeViewer();
- contentProvider = new ContentProvider();
- viewer.setContentProvider(contentProvider);
+ fContentProvider = new ContentProvider();
+ viewer.setContentProvider(fContentProvider);
viewer.setLabelProvider(new OutlineLabelProvider());
viewer.addSelectionChangedListener(this);
if (selection.isEmpty())
fTextEditor.resetHighlightRange();
else {
- PHPSegment segment = (PHPSegment) ((IStructuredSelection) selection).getFirstElement();
+ Outlineable segment = (Outlineable) ((IStructuredSelection) selection).getFirstElement();
int start = segment.getPosition().getOffset();
int length = segment.getPosition().getLength();
try {
}
}
}
-
- /**
- * 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;
}