blob: 4b244c425aff04b3e79162be68350a54350277cc [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.BlockTag;
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 block tags to a tool bar.
*
* @author Kelvin Low
* @since 1.0
*/
public class BlockTagContribution extends ControlContribution {
/**
* The Contribution ID.
*/
public static final String CONTRIBUTION_ID = BlockTagContribution.class
.getName();
// The rich text control.
private IRichText richText;
// The block tag combo.
private static Combo blockTagCombo;
/**
* Creates a new instance.
*
* @param richText
* The rich text control.
*/
public BlockTagContribution(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) {
blockTagCombo = new Combo(parent, SWT.READ_ONLY | SWT.FLAT);
blockTagCombo.add(BlockTag.PARAGRAPH.getName());
blockTagCombo.add(BlockTag.HEADING_1.getName());
blockTagCombo.add(BlockTag.HEADING_2.getName());
blockTagCombo.add(BlockTag.HEADING_3.getName());
blockTagCombo.add(BlockTag.HEADING_4.getName());
blockTagCombo.add(BlockTag.HEADING_5.getName());
blockTagCombo.add(BlockTag.HEADING_6.getName());
blockTagCombo.add(BlockTag.ADDRESS.getName());
blockTagCombo.add(BlockTag.PREFORMATTED_TEXT.getName());
blockTagCombo.setVisibleItemCount(blockTagCombo.getItemCount());
blockTagCombo.select(0);
if (richText != null) {
blockTagCombo.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 = BlockTag.getBlockTag(index).getValue();
richText.executeCommand(RichTextCommand.FORMAT_BLOCK,
value);
}
};
});
}
return blockTagCombo;
}
}