blob: e6ad3be9054995ff528d87857f67db4364fe03c8 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 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 implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.richtext.tests.actions;
import org.eclipse.epf.richtext.IRichText;
import org.eclipse.epf.richtext.RichTextCommand;
import org.eclipse.epf.richtext.html.FontName;
import org.eclipse.jface.action.ControlContribution;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
/**
* Contributes a combo containing HTML font names to a tool bar.
*
* @author Kelvin Low
* @since 1.0
*/
public class FontNameContribution extends ControlContribution {
/**
* The Contribution ID.
*/
public static final String CONTRIBUTION_ID = FontNameContribution.class.getName();
// The rich text control.
private IRichText richText;
// The font name combo.
private static Combo fontNameCombo;
/**
* Creates a new instance.
*
* @param richText The rich text control.
*/
public FontNameContribution(IRichText richText) {
super(CONTRIBUTION_ID);
this.richText = richText;
}
/**
* @see org.eclipse.jface.action.ControlContribution#createControl(org.eclipse.swt.widgets.Composite)
*/
protected Control createControl(Composite parent) {
fontNameCombo = new Combo(parent, SWT.READ_ONLY | SWT.FLAT);
fontNameCombo.add(FontName.DEFAULT.getName());
fontNameCombo.add(FontName.ARIAL.getName());
fontNameCombo.add(FontName.COURIER_NEW.getName());
fontNameCombo.add(FontName.TIMES_NEW_ROMAN.getName());
fontNameCombo.add(FontName.VERDANA.getName());
fontNameCombo.setVisibleItemCount(fontNameCombo.getItemCount());
fontNameCombo.select(0);
if (richText != null) {
fontNameCombo.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
Object eventSrc = event.getSource();
if (eventSrc instanceof Combo) {
Combo combo = (Combo)eventSrc;
int index = combo.getSelectionIndex();
String value = FontName.getFontName(index).getValue();
richText.executeCommand(RichTextCommand.SET_FONT_NAME, value);
}
};
});
}
return fontNameCombo;
}
}