/* ****************************************************************************** * 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.gallery; import org.eclipse.draw2d.IFigure; import org.eclipse.jface.viewers.IBaseLabelProvider; import org.eclipse.jface.viewers.IColorProvider; import org.eclipse.jface.viewers.IFontProvider; import org.eclipse.jface.viewers.ILabelProvider; import org.xmind.gef.GEF; import org.xmind.gef.part.GraphicalEditPart; import org.xmind.gef.part.IRequestHandler; import org.xmind.gef.policy.NullEditPolicy; /** * @author Frank Shaka * */ public class NavigationItemPart extends GraphicalEditPart { /** * */ public NavigationItemPart(Object model) { setModel(model); getFigure(); } /* * (non-Javadoc) * * @see org.xmind.gef.part.GraphicalEditPart#createFigure() */ @Override protected IFigure createFigure() { return new NavigationItemFigure(); } /* * (non-Javadoc) * * @see org.xmind.gef.part.GraphicalEditPart#updateView() */ @Override protected void updateView() { super.updateView(); NavigationItemFigure fig = (NavigationItemFigure) getFigure(); IBaseLabelProvider labelProvider = (IBaseLabelProvider) getSite() .getViewer().getAdapter(IBaseLabelProvider.class); if (labelProvider instanceof ILabelProvider) { fig.setText(((ILabelProvider) labelProvider).getText(getModel())); fig.setImage(((ILabelProvider) labelProvider).getImage(getModel())); } if (labelProvider instanceof IColorProvider) { fig.setForegroundColor(((IColorProvider) labelProvider) .getForeground(getModel())); fig.setBackgroundColor(((IColorProvider) labelProvider) .getBackground(getModel())); } if (labelProvider instanceof IFontProvider) { fig.setFont(((IFontProvider) labelProvider).getFont(getModel())); } } /* * (non-Javadoc) * * @see org.xmind.gef.part.EditPart#declareEditPolicies(org.xmind.gef.part. * IRequestHandler) */ @Override protected void declareEditPolicies(IRequestHandler reqHandler) { super.declareEditPolicies(reqHandler); reqHandler.installEditPolicy(GEF.ROLE_NAVIGABLE, NavigationItemNavigablePolicy.DEFAULT); reqHandler.installEditPolicy(GEF.ROLE_SELECTABLE, NullEditPolicy.getInstance()); } // /* // * (non-Javadoc) // * // * @see // * org.xmind.gef.part.Part#handleStatusChanged(org.xmind.gef.status.StatusEvent // * ) // */ // @Override // protected void handleStatusChanged(StatusEvent event) { // if (event.key == GEF.PART_SELECTED) { // if (event.newValue) { // onSelection(); // } else { // onDeselection(); // } // } else { // super.handleStatusChanged(event); // } // } // // /** // * // */ // private void onDeselection() { // ((NavigationItemFigure) getFigure()).setState(0); // } // // /** // * // */ // private void onSelection() { // ((NavigationItemFigure) getFigure()).setState(1); // IPart parent = getParent(); // if (parent != null && parent instanceof NavigationContentPart) { // ((NavigationContentPart) parent).onItemSelection(this); // } // } /* * (non-Javadoc) * * @see org.xmind.gef.part.EditPart#register() */ @Override protected void register() { registerModel(getModel()); super.register(); } /* * (non-Javadoc) * * @see org.xmind.gef.part.EditPart#unregister() */ @Override protected void unregister() { super.unregister(); unregisterModel(getModel()); } }