Copy and Paste : Clipboard « SWT JFace Eclipse « Java






Copy and Paste

Copy and Paste

/******************************************************************************
 * All Right Reserved. 
 * Copyright (c) 1998, 2004 Jackwind Li Guojie
 * 
 * Created on 2004-4-28 10:43:40 by JACK
 * $Id$
 * 
 *****************************************************************************/
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.dnd.RTFTransfer;
import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.dnd.TransferData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;

public class CopyPaste {
  Display display = new Display();
  Shell shell = new Shell(display);

  public CopyPaste() {
    shell.setLayout(new GridLayout());
    
    ToolBar toolBar = new ToolBar(shell, SWT.FLAT);
    ToolItem itemCopy = new ToolItem(toolBar, SWT.PUSH);
    ToolItem itemPaste = new ToolItem(toolBar, SWT.PUSH);
    itemCopy.setText("Copy");
    itemPaste.setText("Paste");
    
    itemCopy.addListener(SWT.Selection, new Listener() {
      public void handleEvent(Event event) {
        Clipboard clipboard = new Clipboard(display);
        String plainText = "Hello World";
        String rtfText = "{\\rtf1\\b Hello World}";
        TextTransfer textTransfer = TextTransfer.getInstance();
        RTFTransfer rftTransfer = RTFTransfer.getInstance();
        clipboard.setContents(new String[]{plainText, rtfText}, new Transfer[]{textTransfer, rftTransfer});
        clipboard.dispose();
      }
    });
    
    itemPaste.addListener(SWT.Selection, new Listener() {
      public void handleEvent(Event event) {
        Clipboard clipboard = new Clipboard(display);
        
        TransferData[] transferDatas = clipboard.getAvailableTypes();

        for(int i=0; i<transferDatas.length; i++) {
          // Checks whether RTF format is available.
          if(RTFTransfer.getInstance().isSupportedType(transferDatas[i])) {
            System.out.println("Data is available in RTF format");
            break;
          }
        }
        
        String plainText = (String)clipboard.getContents(TextTransfer.getInstance());
        String rtfText = (String)clipboard.getContents(RTFTransfer.getInstance());
        
        System.out.println("PLAIN: " + plainText + "\n" + "RTF: " + rtfText);
        
        clipboard.dispose();
      }
    });

    shell.pack();
    shell.open();
    //textUser.forceFocus();

    // Set up the event loop.
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        // If no more entries in event queue
        display.sleep();
      }
    }

    display.dispose();
  }

  private void init() {

  }

  public static void main(String[] args) {
    new CopyPaste();
  }
}


           
       








Related examples in the same category

1.SWT Clipboard ExampleSWT Clipboard Example
2.Clipboard Composite
3.Enable/disable menu depending on clipboard content availabilityEnable/disable menu depending on clipboard content availability
4.Copy and paste data with the clipboardCopy and paste data with the clipboard