/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.common.gef; import org.eclipse.gef.Tool; import org.eclipse.gef.palette.ConnectionCreationToolEntry; import org.eclipse.gef.requests.CreationFactory; import org.eclipse.gef.tools.ConnectionCreationTool; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.dnd.DragSourceEvent; /** * * @author eskimo(dgolovin@exadel.com) * */ public class GEFConnectionCreationToolEntry extends ConnectionCreationToolEntry { /* * */ private ConnectionCreationTool tool=null; /* * */ private boolean flag=false; /** * * @param label * @param shortDesc * @param factory * @param iconSmall * @param iconLarge */ public GEFConnectionCreationToolEntry( String label, String shortDesc, CreationFactory factory, ImageDescriptor iconSmall, ImageDescriptor iconLarge) { super(label, shortDesc, factory, iconSmall, iconLarge); } /** * Create new Tool */ public Tool createTool() { tool = new CustomConnectionCreationTool(factory); tool.setUnloadWhenFinished(flag); return tool; } /** * * @param flag */ public void setUnloadWhenFinished(boolean flag){ this.flag = flag; } /** * * @author eskimo(dgolovin@exadel.com) * */ class CustomConnectionCreationTool extends ConnectionCreationTool{ public CustomConnectionCreationTool(CreationFactory factory){ super(factory); } /** * */ protected void handleFinished(){ dragFinished(); if (flag) getDomain().loadDefaultTool(); else reactivate(); } } protected void dragFinished() { // TODO-3.3: change? } }