| /******************************************************************************* |
| * Copyright (c) 2005 IBM Corporation and others. |
| * 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: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.wst.common.snippets.ui; |
| |
| import org.eclipse.swt.dnd.DragSourceEvent; |
| import org.eclipse.swt.dnd.Transfer; |
| import org.eclipse.ui.IEditorPart; |
| import org.eclipse.wst.common.snippets.core.ISnippetItem; |
| |
| /** |
| * An insertion class is responsible for inserting a snippet item's contents |
| * into editors. Implementors are responsible for supporting the drag-and-drop |
| * mechanism and inserting the snippet's text into a given editor part. |
| */ |
| public interface ISnippetInsertion { |
| |
| /** |
| * The data is required from the drag source. |
| * |
| * <p> |
| * The following fields in the DragSourceEvent should be examined/updated |
| * by the Insertion object: |
| * <ul> |
| * <li>dataType - (in) the type of data requested. This is a TransferData |
| * object and can be used with the Transfer subclasses. |
| * <li>data - (out) the application inserts the actual data here (must |
| * match the dataType) |
| * </ul> |
| * </p> |
| * |
| * Subclasses should check which Transfer types are supported and set the |
| * data accordingly. |
| * |
| * @param event - |
| * the information associated with the drag set data event |
| * @param item - |
| * the ISnippetItem instance from which to derive the data |
| */ |
| void dragSetData(DragSourceEvent event, ISnippetItem item); |
| |
| /** |
| * The Transfer types to support from a drag source. May be null. Required |
| * to do anything more complicated than a simple text drop with DND, a |
| * matching IDropAction should be registered to handle the insertion at |
| * drop-time. |
| * |
| * @return the list of valid transfer types during Drag and Drop |
| */ |
| Transfer[] getTransfers(); |
| |
| /** |
| * Insert the current ISnippetItem's insertion String to the given |
| * IEditorPart. Used by double-click behavior. |
| * |
| * @param editorPart |
| * the editor part into which to insert |
| */ |
| void insert(IEditorPart editorPart); |
| |
| /** |
| * The target editorpart in the workbench window. May be used as a hint |
| * for determining which Transfer types to allow and what transfer data to |
| * set during Drag and Drop operations. |
| * |
| * @param targetPart |
| */ |
| void setEditorPart(IEditorPart targetPart); |
| |
| /** |
| * Use this ISnippetItem |
| * |
| * @param item |
| * the item to insert |
| */ |
| void setItem(ISnippetItem item); |
| } |