/*
* *****************************************************************************
* * Copyright (c) 2006-2012 XMind Ltd. and others. This file is a part of XMind
* 3. XMind releases 3 and above are dual-licensed under the Eclipse Public
* License (EPL), which is available at
* http://www.eclipse.org/legal/epl-v10.html and the GNU Lesser General Public
* License (LGPL), which is available at http://www.gnu.org/licenses/lgpl.html
* See http://www.xmind.net/license.html for details. Contributors: XMind Ltd. -
* initial API and implementation
*******************************************************************************/
package org.xmind.ui.internal.decorators;
import org.eclipse.draw2d.ColorConstants;
import org.eclipse.draw2d.IFigure;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.util.Util;
import org.xmind.gef.part.Decorator;
import org.xmind.gef.part.IGraphicalPart;
import org.xmind.ui.internal.figures.LegendItemFigure;
import org.xmind.ui.mindmap.ILegendItemPart;
import org.xmind.ui.resources.FontUtils;
public class LegendItemDecorator extends Decorator {
private static final LegendItemDecorator instance = new LegendItemDecorator();
public void activate(IGraphicalPart part, IFigure figure) {
super.activate(part, figure);
figure.setFont(FontUtils.getNewHeight(JFaceResources.getDefaultFont(),
Util.isMac() ? 10 : 8));
figure.setForegroundColor(ColorConstants.black);
if (figure instanceof LegendItemFigure) {
((LegendItemFigure) figure).getIcon().setPreferredSize(15, 15);
}
}
public void decorate(IGraphicalPart part, IFigure figure) {
super.decorate(part, figure);
if (figure instanceof LegendItemFigure) {
LegendItemFigure itemFigure = (LegendItemFigure) figure;
if (part instanceof ILegendItemPart) {
ILegendItemPart item = (ILegendItemPart) part;
itemFigure.setIconImage(item.getIconImage());
itemFigure.setSVGData(item.getSVGData());
itemFigure.setText(item.getDescription());
}
}
}
public void deactivate(IGraphicalPart part, IFigure figure) {
if (figure instanceof LegendItemFigure) {
((LegendItemFigure) figure).setIconImage(null);
((LegendItemFigure) figure).setSVGData(null);
}
super.deactivate(part, figure);
}
public static LegendItemDecorator getInstance() {
return instance;
}
}