/* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Eclipse Public License, Version 1.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.eclipse.org/org/documents/epl-v10.php * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.ide.eclipse.adt.internal.editors.common; import com.android.ide.eclipse.adt.internal.editors.AndroidSourceViewerConfig; import org.eclipse.jface.text.contentassist.IContentAssistProcessor; import org.eclipse.jface.text.source.ISourceViewer; /** * Source Viewer Configuration for the Common XML editor. * Everything is already generic and done in the base class. * The base class will use the delegate to find out the proper content assist to use. */ public final class CommonSourceViewerConfig extends AndroidSourceViewerConfig { private final IContentAssistProcessor mContentAssist; public CommonSourceViewerConfig() { super(); mContentAssist = null; } public CommonSourceViewerConfig(IContentAssistProcessor contentAssist) { super(); mContentAssist = contentAssist; } /** * @return The {@link IContentAssistProcessor} passed to the constructor or null. */ @Override public IContentAssistProcessor getAndroidContentAssistProcessor( ISourceViewer sourceViewer, String partitionType) { // You may think you could use AndroidXmlEditor.fromTextViewer(sourceViewer) // to find the editor associated with the sourceViewer and then access the // delegate and query the content assist specific to a given delegate. // Unfortunately this is invoked whilst the editor part is being created // so we can't match an existing editor to the source view -- since there // is no such "existing" editor. It's just being created. // // As a workaround, CommonXmlEditor#addPages() will unconfigure the // default sourceViewerConfig and reconfigure it with one that really // knows which content assist it should be using. return mContentAssist; } }