/* ******************************************************************************
* 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.actions;
import org.eclipse.jface.viewers.ISelection;
import org.xmind.gef.GEF;
import org.xmind.gef.ui.actions.ISelectionAction;
import org.xmind.gef.ui.actions.RequestAction;
import org.xmind.gef.ui.editor.IGraphicalEditorPage;
import org.xmind.ui.actions.MindMapActionFactory;
import org.xmind.ui.internal.MindMapMessages;
import org.xmind.ui.mindmap.IMindMapImages;
import org.xmind.ui.mindmap.MindMapUI;
import org.xmind.ui.util.MindMapUtils;
public class InsertTopicAction extends RequestAction implements
ISelectionAction {
public InsertTopicAction(IGraphicalEditorPage page) {
super(MindMapActionFactory.INSERT_TOPIC.getId(), page, GEF.REQ_CREATE);
setText(MindMapMessages.InsertTopic_text);
setToolTipText(MindMapMessages.InsertTopic_toolTip);
setImageDescriptor(MindMapUI.getImages().get(
IMindMapImages.INSERT_AFTER, true));
setDisabledImageDescriptor(MindMapUI.getImages().get(
IMindMapImages.INSERT_AFTER, false));
}
public void setSelection(ISelection selection) {
setEnabled(isCreatable(selection));
}
private boolean isCreatable(ISelection selection) {
return MindMapUtils.isSingleTopic(selection)
|| MindMapUtils.matchesSelection(selection,
MindMapUI.CATEGORY_RELATIONSHIP, true);
// return true;
// if (MindMapUtils.matchesSelection(selection,
// MindMapUI.CATEGORY_SUMMARY, true)) {
// ISummary s = (ISummary) ((IStructuredSelection) selection)
// .getFirstElement();
// return s.getTopicId() == null;
// }
// return false;
}
}