/***************************************************************************** * Copyright (c) 2011 AtoS. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Tristan FAURE (AtoS) tristan.faure@atos.net - Initial API and implementation *****************************************************************************/ package org.eclipse.papyrus.uml.diagram.common.palette.customaction.providers; import java.util.Collection; import java.util.List; import org.eclipse.core.runtime.IStatus; import org.eclipse.papyrus.uml.diagram.common.service.palette.AbstractAspectActionProvider; import org.eclipse.papyrus.uml.diagram.common.service.palette.IAspectAction; import org.eclipse.papyrus.uml.diagram.common.service.palette.IAspectActionProvider; import org.eclipse.papyrus.uml.diagram.common.service.palette.IPaletteEntryProxy; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.uml2.uml.Profile; import org.w3c.dom.Node; /** * Provider for custom creation * @author tfaure * */ public class ToolAspectActionProvider extends AbstractAspectActionProvider { private List<Tool> filtered; private Node node; public IAspectAction createAction(Node configurationNode) { if (configurationNode != null) { this.node = configurationNode; } ToolAspectAction action = new ToolAspectAction(); action.init(node, this); return action; } /* (non-Javadoc) * @see org.eclipse.papyrus.uml.diagram.common.service.palette.IAspectActionProvider#isEnable(org.eclipse.papyrus.uml.diagram.common.service.palette.IPaletteEntryProxy) */ public boolean isEnable(final IPaletteEntryProxy entryProxy) { Collection<Tool> allExtensions = ToolAspectAction .getAllExtensions(); boolean result = allExtensions != null && !allExtensions.isEmpty(); if (result) { filtered = ToolAspectAction.getFiltered(entryProxy, allExtensions); result = !filtered.isEmpty(); } return result; } public void init(Node configurationNode, IAspectActionProvider factory) { } public IStatus checkPreCondition() { return null; } public IStatus checkPostCondition() { return null; } public Control createConfigurationComposite(Composite parent, IPaletteEntryProxy entryProxy, List<Profile> appliedProfiles) { return null; } public void save(Node parentNode) { } }