package org.insightech.er.editor.view.contributor;
import java.util.LinkedHashSet;
import java.util.Set;
import org.eclipse.gef.commands.Command;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchPage;
import org.insightech.er.editor.controller.command.common.ChangeFontCommand;
import org.insightech.er.editor.model.ViewableModel;
public class FontNameContributionItem extends ComboContributionItem {
public static final String ID = FontNameContributionItem.class.getName();
public FontNameContributionItem(IWorkbenchPage workbenchPage) {
super(ID, workbenchPage);
}
@Override
protected Command createCommand(ViewableModel viewableModel) {
return new ChangeFontCommand(viewableModel, this.getText(),
viewableModel.getFontSize());
}
@Override
protected void setData(Combo combo) {
FontData[] fontDatas = Display.getCurrent().getFontList(null, true);
Set<String> nameSet = new LinkedHashSet<String>();
for (int i = 0; i < fontDatas.length; i++) {
if (!fontDatas[i].getName().startsWith("@")) {
nameSet.add(fontDatas[i].getName());
}
}
for (String name : nameSet) {
combo.add(name);
}
}
}