1 /*
2 * Copyright (c) 2006 Stiftung Deutsches Elektronen-Synchroton,
3 * Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY.
4 *
5 * THIS SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "../AS IS" BASIS.
6 * WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
7 * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE AND
8 * NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
9 * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
10 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
11 * THE USE OR OTHER DEALINGS IN THE SOFTWARE. SHOULD THE SOFTWARE PROVE DEFECTIVE
12 * IN ANY RESPECT, THE USER ASSUMES THE COST OF ANY NECESSARY SERVICING, REPAIR OR
13 * CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
14 * NO USE OF ANY SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
15 * DESY HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
16 * OR MODIFICATIONS.
17 * THE FULL LICENSE SPECIFYING FOR THE SOFTWARE THE REDISTRIBUTION, MODIFICATION,
18 * USAGE AND OTHER RIGHTS AND OBLIGATIONS IS INCLUDED WITH THE DISTRIBUTION OF THIS
19 * PROJECT IN THE FILE LICENSE.HTML. IF THE LICENSE IS NOT INCLUDED YOU MAY FIND A COPY
20 * AT HTTP://WWW.DESY.DE/LEGAL/LICENSE.HTM
21 */
22
23 package de.desy.acop.displayers.tools;
24
25 import java.awt.datatransfer.DataFlavor;
26 import java.beans.PropertyVetoException;
27
28 import javax.swing.JComponent;
29
30 import com.cosylab.gui.displayers.DisplayerParameters;
31 import com.cosylab.util.CommonException;
32
33 /**
34 * <code>AcopMultipleDisplayerParametersTransferHandler</code> is a TransferHandler
35 * that can handle MultipleAcopDisplayers.
36 *
37 * @author <a href="mailto:jaka.bobnar@cosylab.com">Jaka Bobnar</a>
38 * @version $Id: Templates.xml,v 1.10 2004/01/13 16:17:13 jbobnar Exp $
39 * @see MultipleAcopDisplayer
40 */
41 public class AcopMultipleDisplayerParametersTransferHandler extends AbstractMDPTransferHandler{
42
43 private static final long serialVersionUID = 4277524441131938702L;
44
45 public AcopMultipleDisplayerParametersTransferHandler(MultipleAcopDisplayer<?> comp, boolean reciveEnabled, boolean exportEnabled, DataFlavor[] f, boolean resetFlavors) {
46 super((JComponent)comp, reciveEnabled, exportEnabled, f, resetFlavors);
47 }
48
49 protected AcopDisplayerParameters[] exportMultipleDisplayerParameters() {
50 return ((MultipleAcopDisplayer<?>)displayer).getDisplayerParameters();
51 }
52
53 @SuppressWarnings("unchecked")
54 @Override
55 public boolean setParametersToDisplayer(Object disp, DisplayerParameters parameters) throws PropertyVetoException {
56 try {
57 if (parameters instanceof AcopDisplayerParameters) {
58 ((MultipleAcopDisplayer)displayer).addDisplayerParameters((AcopDisplayerParameters) parameters);
59 return true;
60 }
61 } catch (CommonException e) {
62 e.printStackTrace();
63 }
64 return super.setParametersToDisplayer(disp, parameters);
65 }
66
67 }