blob: 511817c504914b6345414e5035328e906eaa62e6 [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
****************************************************************************/
package org.eclipse.gmf.runtime.common.ui.internal.contentassist;
import org.eclipse.jface.text.DefaultInformationControl;
import org.eclipse.jface.text.TextPresentation;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.widgets.Display;
/**
* Presents given text in bold
*
* @author myee
*/
public class TextPresenter
implements DefaultInformationControl.IInformationPresenter {
/**
* The tag used to start displaying text in boldface. Text between the start
* and end tags will be in boldface.
*/
static public final String BOLD_START_TAG = "<b>"; //$NON-NLS-1$
/**
* The tag used to end displaying text in boldface. Text between the start
* and end tags will be in boldface.
*/
static public final String BOLD_END_TAG = "</b>"; //$NON-NLS-1$
/**
* Update text with bold style.
*
* @param display
* the SWT display
* @param hoverInfo
* the String to be presented
* @param presentation
* the TextPresentation to be updated with the bold style
* @param maxWidth
* the maximum width
* @param maxHeight
* the maximum height
*
* @return the hoverInfo String with the bold tags removed
*/
public String updatePresentation(Display display, String hoverInfo,
TextPresentation presentation, int maxWidth, int maxHeight) {
// parse the bold tags
int start = hoverInfo.indexOf(BOLD_START_TAG);
int end = hoverInfo.lastIndexOf(BOLD_END_TAG);
assert (start != -1 && end != -1);
// bold the text in the given range
StyleRange styleRange = new StyleRange(start, end - start
- BOLD_START_TAG.length(), null, null, SWT.BOLD);
presentation.addStyleRange(styleRange);
// return the text with the bold tags removed
String parsedText = hoverInfo.substring(0, start)
+ hoverInfo.substring(start + BOLD_START_TAG.length(), end)
+ hoverInfo.substring(end + BOLD_END_TAG.length());
return parsedText;
}
}