Package org.w3c.jigadmin.editors

Source Code of org.w3c.jigadmin.editors.TransferableResourceCell

// TransferableResourceCell.java
// $Id: TransferableResourceCell.java,v 1.3 2000/08/16 21:37:31 ylafon Exp $
// (c) COPYRIGHT MIT, INRIA and Keio, 1999.
// Please first read the full copyright statement in file COPYRIGHT.html

package org.w3c.jigadmin.editors;

import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;

import java.io.ByteArrayInputStream;
import java.io.IOException;

/**
* The transferable ResourceCell
* @see org.w3c.jigadmin.editors.ResourceCell
* @version $Revision: 1.3 $
* @author  Beno�t Mah� (bmahe@w3.org)
*/
public class TransferableResourceCell implements Transferable {

    final static int CELL       = 0;
    final static int STRING     = 1;
    final static int PLAIN_TEXT = 2;

    final public static DataFlavor RESOURCE_CELL_FLAVOR =
  new DataFlavor(ResourceCell.class, "Resource Cell");

    static DataFlavor flavors[] = { RESOURCE_CELL_FLAVOR,
            DataFlavor.stringFlavor,
            DataFlavor.plainTextFlavor };

    private ResourceCell data = null;

    /**
     * Constructor
     * @param data The ResourceCell
     */
    public TransferableResourceCell(ResourceCell data) {
  this.data = data;
    }

    /**
     * Returns an array of DataFlavor objects indicating the flavors the
     * data can be provided in. The array should be ordered according to
     * preference for providing the data (from most richly descriptive to
     * least descriptive).
     * @return an array of data flavors in which this data can be transferred
     */
    public DataFlavor[] getTransferDataFlavors() {
  return flavors;
    }

    /**
     * Returns whether or not the specified data flavor is supported for
     * this object.
     * @param flavor the requested flavor for the data
     * @return boolean indicating wether or not the data flavor is supported
     */
    public boolean isDataFlavorSupported(DataFlavor flavor) {
  boolean returnValue = false;
  for (int i=0, n=flavors.length; i<n; i++) {
      if (flavor.equals(flavors[i])) {
    returnValue = true;
    break;
      }
  }
  return returnValue;
    }

    /**
     * Returns an object which represents the data to be transferred.
     * The class of the object returned is defined by the representation
     * class of the flavor.
     * @param flavor the requested flavor for the data
     * @return an object which represents the data to be transferred
     * @exception IOException  if the data is no longer available in the
     * requested flavor.
     * @exception UnsupportedFlavorException if the requested data flavor
     * is not supported.
     */
    public Object getTransferData(DataFlavor flavor)
  throws UnsupportedFlavorException, IOException
    {
  Object returnObject;
  if (flavor.equals(flavors[CELL])) {
       returnObject = data;
  } else if (flavor.equals(flavors[STRING])) {
       returnObject = data.toString();
  } else if (flavor.equals(flavors[PLAIN_TEXT])) {
      String string = data.toString();
      returnObject = new ByteArrayInputStream(string.getBytes());
  } else {
      throw new UnsupportedFlavorException(flavor);
  }
  return returnObject;
    }

}
TOP

Related Classes of org.w3c.jigadmin.editors.TransferableResourceCell

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.