| /*=============================================================================# |
| # Copyright (c) 2009, 2020 Stephan Wahlbrink and others. |
| # |
| # This program and the accompanying materials are made available under the |
| # terms of the Eclipse Public License 2.0 which is available at |
| # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0 |
| # which is available at https://www.apache.org/licenses/LICENSE-2.0. |
| # |
| # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 |
| # |
| # Contributors: |
| # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation |
| #=============================================================================*/ |
| |
| package org.eclipse.statet.redocs.wikitext.r.ui; |
| |
| import org.eclipse.jface.viewers.StyledString; |
| import org.eclipse.swt.graphics.Image; |
| |
| import org.eclipse.statet.docmlet.wikitext.core.model.IWikitextSourceElement; |
| import org.eclipse.statet.docmlet.wikitext.ui.WikitextLabelProvider; |
| import org.eclipse.statet.ltk.model.core.elements.IEmbeddedForeignElement; |
| import org.eclipse.statet.ltk.model.core.elements.IModelElement; |
| import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement; |
| import org.eclipse.statet.r.core.model.RModel; |
| import org.eclipse.statet.r.ui.RLabelProvider; |
| import org.eclipse.statet.redocs.r.ui.RedocsRUIResources; |
| |
| |
| public class WikitextRweaveLabelProvider extends WikitextLabelProvider { |
| |
| |
| private final RLabelProvider fRProvider; |
| |
| |
| public WikitextRweaveLabelProvider(final int rStyle) { |
| this.fRProvider= new RLabelProvider(rStyle); |
| } |
| |
| |
| @Override |
| public Image getImage(final IModelElement element) { |
| if (element.getModelTypeId() == RModel.R_TYPE_ID) { |
| return this.fRProvider.getImage(element); |
| } |
| return super.getImage(element); |
| } |
| |
| @Override |
| protected Image getEmbeddedForeignImage(final IModelElement element) { |
| if (element.getModelTypeId() == RModel.R_TYPE_ID) { |
| return RedocsRUIResources.INSTANCE.getImage(RedocsRUIResources.OBJ_RCHUNK_IMAGE_ID); |
| } |
| return super.getEmbeddedForeignImage(element); |
| } |
| |
| @Override |
| public String getText(final IModelElement element) { |
| if (element.getModelTypeId() == RModel.R_TYPE_ID) { |
| return this.fRProvider.getText(element); |
| } |
| if (element.getElementType() == IWikitextSourceElement.C1_EMBEDDED) { |
| final ISourceStructElement rElement= ((IEmbeddedForeignElement) element).getForeignElement(); |
| if (rElement != null) { |
| return this.fRProvider.getText(rElement); |
| } |
| } |
| return super.getText(element); |
| } |
| |
| @Override |
| public StyledString getStyledText(final IModelElement element) { |
| if (element.getModelTypeId() == RModel.R_TYPE_ID) { |
| return this.fRProvider.getStyledText(element); |
| } |
| if (element.getElementType() == IWikitextSourceElement.C1_EMBEDDED) { |
| final ISourceStructElement rElement= ((IEmbeddedForeignElement) element).getForeignElement(); |
| if (rElement != null) { |
| return this.fRProvider.getStyledText(rElement); |
| } |
| } |
| return super.getStyledText(element); |
| } |
| |
| } |