Re: Drag and drop for non-String objects
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Nigel Wade schreef:
| Hendrik Maryns wrote:
|
|> -----BEGIN PGP SIGNED MESSAGE-----
|> Hash: SHA1
|>
|> Hi all,
|>
|> I???d like to revive a thread I started a while ago but which got no
|> satisfying answers.
|>
|> I want to implement drag and drop for non-String objects.
|>
|> Setting: a JList with a DefaultListModel. It contains Formula???s (a
|> class of my own making, with a whole hierarchy underneath it:
|> Conjunction, Negation etc.). I then do
|>
|> result.setDragEnabled(true);
|> result.setTransferHandler(new FormulaTransferHandler());
|> result.setDropMode(DropMode.INSERT);
|>
|> on the JList. Here follows an almost minimal SSCCE, note that it needs
|> Java 6:
|>
|
| Here you specify that the DataFlavor which drop will accept is of class
| Formula...
|
|
|> ~ this.localFormulaFlavor = new ActivationDataFlavor(Formula.class,
|> ~ DataFlavor.javaJVMLocalObjectMimeType, "Arrays of formulas");
|> ~ }
|
|> ~ /**
|> ~ * The data flavor for formulas local to the JVM.
|> ~ */
|> ~ private final DataFlavor localFormulaFlavor;
|>
|> ~ /**
|> ~ * The formulas being transfered.
|> ~ */
|> ~ private Object[] transferedFormulas = null;
|>
|> ~ @Override
|> ~ protected Transferable createTransferable(final JComponent c) {
|> ~ final JList formulaList = (JList) c;
|> ~ this.transferedFormulas = formulaList.getSelectedValues();
|> ~ return new DataHandler(this.transferedFormulas,
this.localFormulaFlavor
|> ~ .getMimeType());
|> ~ // TODO: add support via serialization?
|> ~ }
|
| ..but what you actually transfer is an Object[]
I see. What solution would you suggest: convert the Object[] to
Formula[] and update above also, or simply use Object as the local
flavor above and let the JList find out? I guess there is no need for
Formula indeed, since I do not invoke any methods on it, so I could as
well use Object[].
I wonder whether some day the Swing classes will start using generics as
well. It would make things much easier.
Thanks, H.
- --
Hendrik Maryns
http://tcl.sfs.uni-tuebingen.de/~hendrik/
==================
http://aouw.org
Ask smart questions, get good answers:
http://www.catb.org/~esr/faqs/smart-questions.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org
iEYEARECAAYFAkiEnosACgkQBGFP0CTku6PzwACbBB7CVsQTcYqdEsE0I1uVt3a4
bXUAoJOqz17RFCgl7tDDBUjRkkDUklpu
=4d4M
-----END PGP SIGNATURE-----