use of org.eclipse.wst.sse.ui.internal.contentoutline.ConfigurableContentOutlinePage in project webtools.sourceediting by eclipse.
the class CustomFilterHandler method execute.
public Object execute(ExecutionEvent event) throws ExecutionException {
IEditorPart editor = HandlerUtil.getActiveEditor(event);
Object page = editor.getAdapter(IContentOutlinePage.class);
if (page instanceof ConfigurableContentOutlinePage) {
((ConfigurableContentOutlinePage) page).getOutlineFilterProcessor().openDialog();
}
return null;
}
use of org.eclipse.wst.sse.ui.internal.contentoutline.ConfigurableContentOutlinePage in project webtools.sourceediting by eclipse.
the class StructuredTextEditor method update.
/**
* Update should be called whenever the model is set or changed (as in
* swapped)
* <p>
* Not API. May be removed in the future.
* </p>
*/
public void update() {
if (fOutlinePage != null && fOutlinePage instanceof ConfigurableContentOutlinePage) {
ContentOutlineConfiguration cfg = createContentOutlineConfiguration();
((ConfigurableContentOutlinePage) fOutlinePage).setConfiguration(cfg);
IStructuredModel internalModel = getInternalModel();
((ConfigurableContentOutlinePage) fOutlinePage).setInputContentTypeIdentifier(internalModel == null ? null : internalModel.getContentTypeIdentifier());
((ConfigurableContentOutlinePage) fOutlinePage).setInput(internalModel);
}
if (fPropertySheetPage != null && fPropertySheetPage instanceof ConfigurablePropertySheetPage) {
PropertySheetConfiguration cfg = createPropertySheetConfiguration();
((ConfigurablePropertySheetPage) fPropertySheetPage).setConfiguration(cfg);
}
disposeModelDependentFields();
fShowInTargetIds = createShowInTargetIds();
if (getSourceViewerConfiguration() instanceof StructuredTextViewerConfiguration && fStatusLineLabelProvider != null) {
fStatusLineLabelProvider.dispose();
}
String configurationId = fViewerConfigurationTargetId;
updateSourceViewerConfiguration();
/* Only reinstall if the configuration id has changed */
if (configurationId != null && !configurationId.equals(fViewerConfigurationTargetId)) {
uninstallSemanticHighlighting();
installSemanticHighlighting();
}
if (getSourceViewerConfiguration() instanceof StructuredTextViewerConfiguration) {
fStatusLineLabelProvider = ((StructuredTextViewerConfiguration) getSourceViewerConfiguration()).getStatusLineLabelProvider(getSourceViewer());
updateStatusLine(null);
}
if (fEncodingSupport != null && fEncodingSupport instanceof EncodingSupport) {
((EncodingSupport) fEncodingSupport).reinitialize(getConfigurationPoints());
}
createModelDependentFields();
}
use of org.eclipse.wst.sse.ui.internal.contentoutline.ConfigurableContentOutlinePage in project webtools.sourceediting by eclipse.
the class StructuredTextEditor method dispose.
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.IWorkbenchPart#dispose()
*/
public void dispose() {
// $NON-NLS-1$ //$NON-NLS-2$
Logger.trace("Source Editor", "StructuredTextEditor::dispose entry");
if (org.eclipse.wst.sse.core.internal.util.Debug.perfTestAdapterClassLoading) {
// $NON-NLS-1$
System.out.println("Total calls to getAdapter: " + adapterRequests);
// $NON-NLS-1$
System.out.println("Total time in getAdapter: " + adapterTime);
// $NON-NLS-1$
System.out.println("Average time per call: " + (adapterTime / adapterRequests));
}
ISourceViewer viewer = getSourceViewer();
if (viewer instanceof ITextViewerExtension)
((ITextViewerExtension) viewer).removeVerifyKeyListener(fPairInserter);
// dispose of information presenter
if (fInformationPresenter != null) {
fInformationPresenter.dispose();
fInformationPresenter = null;
}
if (fOutlineHandler != null) {
fOutlineHandler.dispose();
fOutlineHandler = null;
}
// dispose of selection history
if (fSelectionHistory != null) {
fSelectionHistory.dispose();
fSelectionHistory = null;
}
if (fProjectionSupport != null) {
fProjectionSupport.dispose();
fProjectionSupport = null;
}
if (fFoldingGroup != null) {
fFoldingGroup.dispose();
fFoldingGroup = null;
}
// dispose of menus that were being tracked
if (fTextContextMenu != null) {
fTextContextMenu.dispose();
fTextContextMenu = null;
}
if (fRulerContextMenu != null) {
fRulerContextMenu.dispose();
fRulerContextMenu = null;
}
if (fTextContextMenuManager != null) {
fTextContextMenuManager.removeMenuListener(getContextMenuListener());
fTextContextMenuManager.removeAll();
fTextContextMenuManager.dispose();
}
if (fRulerContextMenuManager != null) {
fRulerContextMenuManager.removeMenuListener(getContextMenuListener());
fRulerContextMenuManager.removeAll();
fRulerContextMenuManager.dispose();
}
// less severe.
if (fStructuredModel != null) {
fStructuredModel.removeModelStateListener(getInternalModelStateListener());
// fStructuredModel.setStructuredDocument(null);
/* BUG398460 - Editor is still marked dirty when relaunching editor after closing without saving changes */
// fStructuredModel = null;
}
// to document, so nothing to remove
if (getDocumentProvider() != null) {
IDocument doc = getDocumentProvider().getDocument(getEditorInput());
if (doc != null) {
if (doc instanceof IExecutionDelegatable) {
((IExecutionDelegatable) doc).setExecutionDelegate(null);
}
}
}
// up after themselves
if (fOutlinePage != null) {
if (fOutlinePage instanceof ConfigurableContentOutlinePage && fOutlinePageListener != null) {
((ConfigurableContentOutlinePage) fOutlinePage).removeDoubleClickListener(fOutlinePageListener);
}
if (fOutlinePageListener != null) {
fOutlinePage.removeSelectionChangedListener(fOutlinePageListener);
fOutlinePageListener = null;
}
fOutlinePage = null;
}
fEditorDisposed = true;
disposeModelDependentFields();
if (fDropTarget != null)
fDropTarget.dispose();
if (fPartListener != null) {
getSite().getWorkbenchWindow().getPartService().removePartListener(fPartListener);
fPartListener = null;
}
uninstallSemanticHighlighting();
if (fPairInserter != null) {
fPairInserter.dispose();
fPairInserter = null;
}
setPreferenceStore(null);
/*
* Strictly speaking, but following null outs should not be needed,
* but in the event of a memory leak, they make the memory leak less
* severe
*/
fDropAdapter = null;
fDropTarget = null;
if (fStructuredSelectionProvider != null) {
fStructuredSelectionProvider.dispose();
fStructuredSelectionProvider = null;
}
if (fStatusLineLabelProvider != null) {
fStatusLineLabelProvider.dispose();
fStatusLineLabelProvider = null;
}
setStatusLineMessage(null);
super.dispose();
// $NON-NLS-1$ //$NON-NLS-2$
Logger.trace("Source Editor", "StructuredTextEditor::dispose exit");
}
use of org.eclipse.wst.sse.ui.internal.contentoutline.ConfigurableContentOutlinePage in project webtools.sourceediting by eclipse.
the class StructuredTextEditor method getAdapter.
/*
* (non-Javadoc)
*
* @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
*/
public Object getAdapter(Class required) {
if (org.eclipse.wst.sse.core.internal.util.Debug.perfTestAdapterClassLoading) {
startPerfTime = System.currentTimeMillis();
}
Object result = null;
// text editor
IStructuredModel internalModel = getInternalModel();
if (ITextEditor.class.equals(required) || ITextEditorExtension5.class.equals(required) || ITextEditorExtension4.class.equals(required) || ITextEditorExtension3.class.equals(required) || ITextEditorExtension2.class.equals(required) || ITextEditorExtension.class.equals(required)) {
result = this;
} else if (IWorkbenchSiteProgressService.class.equals(required)) {
return getEditorPart().getSite().getAdapter(IWorkbenchSiteProgressService.class);
} else // content outline page
if (IContentOutlinePage.class.equals(required)) {
if (fOutlinePage == null && !fEditorDisposed) {
ContentOutlineConfiguration cfg = createContentOutlineConfiguration();
if (cfg != null) {
ConfigurableContentOutlinePage outlinePage = new ConfigurableContentOutlinePage();
outlinePage.setConfiguration(cfg);
if (internalModel != null) {
outlinePage.setInputContentTypeIdentifier(internalModel.getContentTypeIdentifier());
outlinePage.setInput(internalModel);
}
if (fOutlinePageListener == null) {
fOutlinePageListener = new OutlinePageListener();
}
outlinePage.addSelectionChangedListener(fOutlinePageListener);
outlinePage.addDoubleClickListener(fOutlinePageListener);
fOutlinePage = outlinePage;
}
}
result = fOutlinePage;
} else // property sheet page, but only if the input's editable
if (IPropertySheetPage.class.equals(required) && isEditable()) {
if (fPropertySheetPage == null || fPropertySheetPage.getControl() == null || fPropertySheetPage.getControl().isDisposed()) {
PropertySheetConfiguration cfg = createPropertySheetConfiguration();
if (cfg != null) {
ConfigurablePropertySheetPage propertySheetPage = new ConfigurablePropertySheetPage();
propertySheetPage.setConfiguration(cfg);
fPropertySheetPage = propertySheetPage;
}
}
result = fPropertySheetPage;
} else if (IDocument.class.equals(required)) {
result = getDocumentProvider().getDocument(getEditorInput());
} else if (ISourceEditingTextTools.class.equals(required)) {
result = createSourceEditingTextTools();
} else if (IToggleBreakpointsTarget.class.equals(required)) {
result = ToggleBreakpointsTarget.getInstance();
} else if (ITextEditorExtension4.class.equals(required)) {
result = this;
} else if (IShowInTargetList.class.equals(required)) {
result = new ShowInTargetListAdapter();
} else if (IVerticalRuler.class.equals(required)) {
return getVerticalRuler();
} else if (SelectionHistory.class.equals(required)) {
if (fSelectionHistory == null)
fSelectionHistory = new SelectionHistory(this);
result = fSelectionHistory;
} else if (IResource.class.equals(required)) {
IEditorInput input = getEditorInput();
if (input != null) {
result = input.getAdapter(required);
}
} else {
if (result == null && internalModel != null) {
result = internalModel.getAdapter(required);
}
// others
if (result == null)
result = super.getAdapter(required);
}
if (result == null) {
// Logger.log(Logger.INFO_DEBUG, "StructuredTextEditor.getAdapter returning null for " + required); //$NON-NLS-1$
}
if (org.eclipse.wst.sse.core.internal.util.Debug.perfTestAdapterClassLoading) {
long stop = System.currentTimeMillis();
adapterRequests++;
adapterTime += (stop - startPerfTime);
}
if (org.eclipse.wst.sse.core.internal.util.Debug.perfTestAdapterClassLoading) {
// $NON-NLS-1$
System.out.println("Total calls to getAdapter: " + adapterRequests);
// $NON-NLS-1$
System.out.println("Total time in getAdapter: " + adapterTime);
// $NON-NLS-1$
System.out.println("Average time per call: " + (adapterTime / adapterRequests));
}
return result;
}
Aggregations