/* ******************************************************************************
* 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;
import org.eclipse.core.runtime.Platform;
import org.xmind.gef.dnd.IDndSupport;
import org.xmind.gef.part.IPartFactory;
import org.xmind.gef.service.IPlaybackProvider;
import org.xmind.ui.IEditorHistory;
import org.xmind.ui.branch.IBranchPolicyManager;
import org.xmind.ui.decorations.IDecorationFactory;
import org.xmind.ui.decorations.IDecorationManager;
import org.xmind.ui.internal.branch.BranchPolicyManager;
import org.xmind.ui.internal.decorations.DecorationManager;
import org.xmind.ui.internal.editor.WorkbookRefManager;
import org.xmind.ui.internal.mindmap.EditorInputFactory;
import org.xmind.ui.internal.protocols.ProtocolManager;
import org.xmind.ui.mindmap.ICategoryManager;
import org.xmind.ui.mindmap.IEditPolicyManager;
import org.xmind.ui.mindmap.IEditorInputFactory;
import org.xmind.ui.mindmap.IMindMapImages;
import org.xmind.ui.mindmap.INumberFormatManager;
import org.xmind.ui.mindmap.INumberSeparatorManager;
import org.xmind.ui.mindmap.IProtocolManager;
import org.xmind.ui.mindmap.IResourceManager;
import org.xmind.ui.mindmap.IWorkbookRefManager;
import org.xmind.ui.prefs.PrefConstants;
/**
*
* @author Frank Shaka
*/
@SuppressWarnings("deprecation")
public class InternalMindMapUI {
private static InternalMindMapUI instance = null;
private IPartFactory mindMapPartFactory = null;
private IPartFactory mindMapTreePartFactory = null;
private IDndSupport mindMapDndSupport = null;
private IProtocolManager protocolManager = null;
private IBranchPolicyManager branchPolicyManager = null;
private IPlaybackProvider playbackProvider = null;
private IResourceManager resourceManager = null;
private DecorationManager decorationManager;
private ICategoryManager categoryManager;
private IEditPolicyManager editPolicyManager;
private IMindMapImages images;
private INumberFormatManager numberFormatManager;
private INumberSeparatorManager numberSeparatorManager;
private IEditorHistory editorHistory;
/**
* @deprecated
*/
@Deprecated
private IWorkbookRefManager workbookRefManager;
private EditorInputFactory editorInputFactory;
private InternalMindMapUI() {
}
public static InternalMindMapUI getDefault() {
if (instance == null)
instance = new InternalMindMapUI();
return instance;
}
public IPartFactory getMindMapPartFactory() {
if (mindMapPartFactory == null)
mindMapPartFactory = new MindMapPartFactory();
return mindMapPartFactory;
}
public IPartFactory getMindMapTreePartFactory() {
if (mindMapTreePartFactory == null) {
mindMapTreePartFactory = new MindMapTreePartFactory();
}
return mindMapTreePartFactory;
}
public IDndSupport getMindMapDndSupport() {
if (mindMapDndSupport == null) {
mindMapDndSupport = new MindMapDndSupport();
}
return mindMapDndSupport;
}
public IProtocolManager getProtocolManager() {
if (protocolManager == null) {
protocolManager = new ProtocolManager();
}
return protocolManager;
}
public IBranchPolicyManager getBranchPolicyManager() {
if (branchPolicyManager == null) {
branchPolicyManager = new BranchPolicyManager();
}
return branchPolicyManager;
}
public IPlaybackProvider getPlaybackProvider() {
if (playbackProvider == null) {
playbackProvider = new MindMapPlaybackProvider();
}
return playbackProvider;
}
public boolean isAnimationEnabled() {
if (Platform.isRunning()) {
return MindMapUIPlugin.getDefault().getPreferenceStore()
.getBoolean(PrefConstants.ANIMATION_ENABLED);
}
return false;
}
public boolean isGradientColorEnabled() {
if (Platform.isRunning()) {
return MindMapUIPlugin.getDefault().getPreferenceStore()
.getBoolean(PrefConstants.GRADIENT_COLOR);
}
return false;
}
public boolean isOverlapsAllowed() {
if (Platform.isRunning()) {
return MindMapUIPlugin.getDefault().getPreferenceStore()
.getBoolean(PrefConstants.OVERLAPS_ALLOWED);
}
return false;
}
public boolean isFreePositionMoveAllowed() {
if (Platform.isRunning()) {
return MindMapUIPlugin.getDefault().getPreferenceStore()
.getBoolean(PrefConstants.FREE_POSITION_ALLOWED);
}
return false;
}
public IResourceManager getResourceManager() {
if (resourceManager == null) {
resourceManager = new MindMapResourceManager();
}
return resourceManager;
}
public IDecorationManager getDecorationManager() {
if (decorationManager == null) {
decorationManager = new DecorationManager();
}
return decorationManager;
}
public IDecorationFactory getMindMapDecorationFactory() {
if (decorationManager == null) {
decorationManager = new DecorationManager();
}
return decorationManager;
}
public ICategoryManager getCategoryManager() {
if (categoryManager == null) {
categoryManager = new CategoryManager();
}
return categoryManager;
}
public IEditPolicyManager getEditPolicyManager() {
if (editPolicyManager == null) {
editPolicyManager = new EditPolicyManager();
}
return editPolicyManager;
}
/**
* @deprecated
*/
@Deprecated
public IWorkbookRefManager getWorkbookRefManager() {
if (workbookRefManager == null) {
workbookRefManager = new WorkbookRefManager();
}
return workbookRefManager;
}
public IMindMapImages getImages() {
if (images == null) {
images = new MindMapImages();
}
return images;
}
public INumberFormatManager getNumberFormatManager() {
if (numberFormatManager == null)
numberFormatManager = new NumberFormatExtensionManager();
return numberFormatManager;
}
public INumberSeparatorManager getNumberSeparatorManager() {
if (numberSeparatorManager == null)
numberSeparatorManager = new NumberSeparatorExtensionManager();
return numberSeparatorManager;
}
public synchronized IEditorHistory getEditorHistory() {
if (editorHistory == null)
editorHistory = new EditorHistory();
return editorHistory;
}
public IEditorInputFactory getEditorInputFactory() {
if (editorInputFactory == null) {
editorInputFactory = new EditorInputFactory();
}
return editorInputFactory;
}
}