blob: 8900ab4f69b8b0fbbca5d636e8a890c4544d0478 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 Sybase, Inc. 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:
* Sybase, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.pagedesigner.commands.range;
import java.util.Vector;
import org.eclipse.gef.dnd.TemplateTransfer;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.widgets.Control;
import org.w3c.dom.Node;
/**
* @author mengbo
*/
public class ClipboardData implements IInputSourceProvider {
private Control _control;
/**
* @param control
*/
public ClipboardData(Control control) {
super();
_control = control;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.pagedesigner.commands.range.IInputSourceProvider#getNodes()
*/
public Node[] getNodes() {
Object data = getClipboardData();
if (data instanceof Vector && ((Vector) data).size() > 0) {
return (Node[]) ((Vector) data).toArray(new Node[] {});
} else if (data instanceof Node[]) {
return (Node[]) data;
}
return null;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.pagedesigner.commands.range.IInputSourceProvider#getStringData()
*/
public String getStringData() {
Object data = getClipboardData();
if (data instanceof String) {
return (String) data;
}
return null;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.pagedesigner.commands.range.IInputSourceProvider#getCharacterData()
*/
public Character getCharacterData() {
return null;
}
/**
* @return the clip board data
*/
public Object getClipboardData() {
Clipboard clipboard = new Clipboard(_control.getDisplay());
final Object cuted = clipboard.getContents(TemplateTransfer.getInstance());
if (cuted instanceof Node[] || cuted instanceof Vector) {
return cuted;
}
return clipboard.getContents(TextTransfer.getInstance());
}
}