1 19 20 package ca.mcgill.sable.soot.editors; 21 22 23 import org.eclipse.jface.text.source.ISourceViewer; 24 import org.eclipse.jface.text.source.IVerticalRuler; 25 import org.eclipse.swt.widgets.Composite; 26 import org.eclipse.ui.IEditorInput; 27 import org.eclipse.ui.IFileEditorInput; 28 import org.eclipse.ui.editors.text.TextEditor; 29 import org.eclipse.ui.views.contentoutline.IContentOutlinePage; 30 31 import ca.mcgill.sable.soot.SootPlugin; 32 33 34 public class JimpleEditor extends TextEditor { 35 36 private ColorManager colorManager; 37 protected JimpleContentOutlinePage page; 38 private ISourceViewer viewer; 39 40 43 public JimpleEditor() { 44 super(); 45 colorManager = SootPlugin.getDefault().getColorManager(); 46 setSourceViewerConfiguration(new JimpleConfiguration(colorManager, this)); 47 setDocumentProvider(new JimpleDocumentProvider()); 48 setViewer(this.getSourceViewer()); 49 50 51 } 52 53 56 public Object getAdapter(Class key) { 57 if (key.equals(IContentOutlinePage.class)) { 58 IEditorInput input = getEditorInput(); 60 if (input instanceof IFileEditorInput) { 61 setPage(new JimpleContentOutlinePage(((IFileEditorInput)input).getFile(), this)); 62 return getPage(); 63 } 64 } 65 return super.getAdapter(key); 66 } 67 68 public void dispose() { 69 super.dispose(); 70 } 71 72 75 public JimpleContentOutlinePage getPage() { 76 return page; 77 } 78 79 82 public void setPage(JimpleContentOutlinePage page) { 83 this.page = page; 84 } 85 86 protected ISourceViewer createSourceViewer(Composite parent, IVerticalRuler ruler, int styles) { 87 setViewer(super.createSourceViewer(parent, ruler, styles)); 88 SootPlugin.getDefault().addEditorViewer(getViewer()); 89 return getViewer(); 90 } 91 92 95 public ISourceViewer getViewer() { 96 return viewer; 97 } 98 99 102 public void setViewer(ISourceViewer viewer) { 103 this.viewer = viewer; 104 } 105 106 } 107 | Popular Tags |