Package org.pentaho.reporting.designer.core.editor.crosstab

Source Code of org.pentaho.reporting.designer.core.editor.crosstab.IndexedTransferable$TupleContainer

/*
* This program is free software; you can redistribute it and/or modify it under the
*  terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
*  Foundation.
*
*  You should have received a copy of the GNU Lesser General Public License along with this
*  program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
*  or from the Free Software Foundation, Inc.,
*  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
*  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
*  without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*  See the GNU Lesser General Public License for more details.
*
*  Copyright (c) 2006 - 2009 Pentaho Corporation..  All rights reserved.
*/

package org.pentaho.reporting.designer.core.editor.crosstab;

import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import java.util.UUID;

public class IndexedTransferable implements Transferable
{
  public static class FieldTuple implements Serializable
  {
    private int index;
    private String value;
    private String title;
    private Object raw;

    public FieldTuple(final int index, final String value)
    {
      this.index = index;
      this.value = value;
    }

    public FieldTuple(final int index, final String value, final String title, final Object raw)
    {
      this(index, value);
      this.title = title;
      this.raw = raw;
    }

    public String getTitle()
    {
      return title;
    }

    public Object getRaw()
    {
      return raw;
    }

    public int getIndex()
    {
      return index;
    }

    public String getValue()
    {
      return value;
    }
  }

  public static class TupleContainer implements Serializable
  {
    private FieldTuple[] tuples;
    private UUID sourceId;

    private TupleContainer(final UUID sourceId,
                           final FieldTuple[] tuples)
    {
      this.sourceId = sourceId;
      this.tuples = tuples;
    }

    public FieldTuple[] getTuples()
    {
      return tuples.clone();
    }

    public UUID getSourceId()
    {
      return sourceId;
    }
  }

  public static final DataFlavor ELEMENT_FLAVOR = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType +
      "; class=" + TupleContainer.class.getName(), // NON-NLS
      "Indexed Field List Transfer" // NON-NLS
  );

  public static final IndexedTransferable.TupleContainer EMPTY =
      new IndexedTransferable.TupleContainer(new UUID(0, 0), new FieldTuple[0]);

  private TupleContainer tupleContainer;

  public IndexedTransferable(final UUID sourceId, final List<FieldTuple> tuples)
  {
    this.tupleContainer = new TupleContainer(sourceId, tuples.toArray(new FieldTuple[tuples.size()]));
  }

  public DataFlavor[] getTransferDataFlavors()
  {
    return new DataFlavor[]{ELEMENT_FLAVOR};
  }

  public boolean isDataFlavorSupported(final DataFlavor flavor)
  {
    return ELEMENT_FLAVOR.equals(flavor);
  }

  public Object getTransferData(final DataFlavor flavor) throws UnsupportedFlavorException, IOException
  {
    if (isDataFlavorSupported(flavor))
    {
      return tupleContainer;
    }
    else
    {
      throw new UnsupportedFlavorException(flavor);
    }
  }
}
TOP

Related Classes of org.pentaho.reporting.designer.core.editor.crosstab.IndexedTransferable$TupleContainer

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.