blob: b368acb21434070845763b6cee94a4ba3169ceff [file] [log] [blame]
package org.eclipse.swt.dnd;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved
*/
import org.eclipse.swt.*;
import org.eclipse.swt.internal.*;
import org.eclipse.swt.widgets.*;
/**
* IMPORTANT: This class is <em>not</em> intended to be subclassed.
*/
public class Clipboard {
private Display display;
public Clipboard(Display display) {
checkSubclass ();
if (display == null) {
display = Display.getCurrent();
if (display == null) {
display = Display.getDefault();
}
}
if (display.getThread() != Thread.currentThread()) {
SWT.error(SWT.ERROR_THREAD_INVALID_ACCESS);
}
this.display = display;
}
protected void checkSubclass () {
String name = getClass().getName ();
String validName = Clipboard.class.getName();
if (!validName.equals(name)) {
DND.error (SWT.ERROR_INVALID_SUBCLASS);
}
}
public void dispose () {
display = null;
}
public Object getContents(Transfer transfer) {
if (display.isDisposed() || !(transfer instanceof TextTransfer)) return null;
return display.getData("TextTransfer");
}
public void setContents(Object[] data, Transfer[] transferAgents){
if (data == null) {
DND.error(SWT.ERROR_NOT_IMPLEMENTED);
}
if (transferAgents == null || data.length != transferAgents.length) {
DND.error(SWT.ERROR_INVALID_ARGUMENT);
}
if (display.isDisposed() )
DND.error(DND.ERROR_CANNOT_SET_CLIPBOARD);
for (int i = 0; i < transferAgents.length; i++) {
if (transferAgents[i] instanceof TextTransfer && data[i] instanceof String){
display.setData("TextTransfer", data[i]);
return;
}
}
}
/*
* Note: getAvailableTypeNames is a tool for writing a Transfer sub-class only. It should
* NOT be used within an application because it provides platform specfic
* information.
*/
public String[] getAvailableTypeNames() {
return null;
}
}