001: /*******************************************************************************
002: * Copyright (c) 2000, 2006 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.ui.views.navigator;
011:
012: import org.eclipse.jface.viewers.ISelection;
013: import org.eclipse.swt.dnd.TransferData;
014:
015: /**
016: * A LocalSelectionTransfer may be used for drag and drop operations within the
017: * same instance of Eclipse. The selection is made available directly for use in
018: * the DropTargetListener. dropAccept method. The DropTargetEvent passed to
019: * dropAccept does not contain the drop data. The selection may be used for
020: * validation purposes so that the drop can be aborted if appropriate. This
021: * class is not intended to be subclassed.
022: *
023: * @since 2.1
024: */
025: public class LocalSelectionTransfer extends
026: org.eclipse.jface.util.LocalSelectionTransfer {
027:
028: private static final LocalSelectionTransfer INSTANCE = new LocalSelectionTransfer();
029:
030: /**
031: * The get/set methods delegate to JFace's LocalSelectionTransfer to allow
032: * data to be exchanged freely whether the client uses this
033: * LocalSelectionTransfer or JFace's LocalSelectionTransfer. Protected
034: * methods such as getTypeIds() are handled via inheritance, not delegation
035: * due to visibility constraints.
036: */
037: private org.eclipse.jface.util.LocalSelectionTransfer jfaceTransfer = org.eclipse.jface.util.LocalSelectionTransfer
038: .getTransfer();
039:
040: /**
041: * Only the singleton instance of this class may be used.
042: */
043: private LocalSelectionTransfer() {
044: }
045:
046: /**
047: * Returns the singleton.
048: *
049: * @return the singleton
050: */
051: public static LocalSelectionTransfer getInstance() {
052: return INSTANCE;
053: }
054:
055: /*
056: * (non-Javadoc)
057: *
058: * @see org.eclipse.jface.util.LocalSelectionTransfer#getSelection()
059: */
060: public ISelection getSelection() {
061: return jfaceTransfer.getSelection();
062: }
063:
064: /*
065: * (non-Javadoc)
066: *
067: * @see org.eclipse.jface.util.LocalSelectionTransfer#getSelectionSetTime()
068: */
069: public long getSelectionSetTime() {
070: return jfaceTransfer.getSelectionSetTime();
071: }
072:
073: /*
074: * (non-Javadoc)
075: *
076: * @see org.eclipse.jface.util.LocalSelectionTransfer#setSelection(org.eclipse.jface.viewers.ISelection)
077: */
078: public void setSelection(ISelection s) {
079: jfaceTransfer.setSelection(s);
080: }
081:
082: /*
083: * (non-Javadoc)
084: *
085: * @see org.eclipse.jface.util.LocalSelectionTransfer#setSelectionSetTime(long)
086: */
087: public void setSelectionSetTime(long time) {
088: jfaceTransfer.setSelectionSetTime(time);
089: }
090:
091: /* (non-Javadoc)
092: * @see org.eclipse.jface.util.LocalSelectionTransfer#javaToNative(java.lang.Object, org.eclipse.swt.dnd.TransferData)
093: */
094: public void javaToNative(Object object, TransferData transferData) {
095: jfaceTransfer.javaToNative(object, transferData);
096: }
097:
098: /* (non-Javadoc)
099: * @see org.eclipse.jface.util.LocalSelectionTransfer#nativeToJava(org.eclipse.swt.dnd.TransferData)
100: */
101: public Object nativeToJava(TransferData transferData) {
102: return jfaceTransfer.nativeToJava(transferData);
103: }
104: }
|