/* ******************************************************************************
* 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.mindmap;
import org.eclipse.core.runtime.IAdaptable;
import org.xmind.gef.IViewer;
import org.xmind.ui.internal.TopicContextService;
import org.xmind.ui.mindmap.ITopicPart;
/**
* @author frankshaka
*
*/
public class TopicContext implements IAdaptable {
private ITopicPart topicPart;
private TopicContextService service;
/**
*
*/
public TopicContext(ITopicPart topicPart) {
this.topicPart = topicPart;
this.service = findService();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
*/
/**
* @return
*/
private TopicContextService findService() {
IViewer viewer = topicPart.getSite().getViewer();
if (viewer != null) {
return (TopicContextService) viewer
.getService(TopicContextService.class);
}
return null;
}
@SuppressWarnings("unchecked")
public Object getAdapter(Class adapter) {
Object o = topicPart.getAdapter(adapter);
if (o != null)
return o;
if (service != null) {
o = service.getAdapter(adapter);
if (o != null)
return o;
}
return null;
}
}