X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fcamidion%2Fchordhelper%2Fmidieditor%2FMidiSequenceEditor.java;h=6a21231e71d5cb6d5717b5f69d942ffc396b8ec7;hb=72a6b32db34542406ae6974fa3c09cb13ceca9f1;hp=8c6b57c2c526c6bc4948380a66017835ff489942;hpb=0f5a8df840f6a04d03558f354d957e88d56230ba;p=midichordhelper%2FMIDIChordHelper.git diff --git a/src/camidion/chordhelper/midieditor/MidiSequenceEditor.java b/src/camidion/chordhelper/midieditor/MidiSequenceEditor.java index 8c6b57c..6a21231 100644 --- a/src/camidion/chordhelper/midieditor/MidiSequenceEditor.java +++ b/src/camidion/chordhelper/midieditor/MidiSequenceEditor.java @@ -9,9 +9,9 @@ import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.dnd.DnDConstants; import java.awt.dnd.DropTarget; +import java.awt.dnd.DropTargetAdapter; import java.awt.dnd.DropTargetDragEvent; import java.awt.dnd.DropTargetDropEvent; -import java.awt.dnd.DropTargetEvent; import java.awt.dnd.DropTargetListener; import java.awt.event.ActionEvent; import java.awt.event.ComponentAdapter; @@ -79,10 +79,10 @@ import camidion.chordhelper.music.MIDISpec; * MIDIエディタ(MIDI Editor/Playlist for MIDI Chord Helper) * * @author - * Copyright (C) 2006-2014 Akiyoshi Kamide + * Copyright (C) 2006-2016 Akiyoshi Kamide * http://www.yk.rim.or.jp/~kamide/music/chordhelper/ */ -public class MidiSequenceEditor extends JDialog implements DropTargetListener { +public class MidiSequenceEditor extends JDialog { private static VirtualMidiDevice virtualMidiDevice = new AbstractVirtualMidiDevice() { { info = new MyInfo(); @@ -162,38 +162,37 @@ public class MidiSequenceEditor extends JDialog implements DropTargetListener { JOptionPane.WARNING_MESSAGE ) == JOptionPane.YES_OPTION ; } - @Override - public void dragEnter(DropTargetDragEvent event) { - if( event.isDataFlavorSupported(DataFlavor.javaFileListFlavor) ) { - event.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE); - } - } - @Override - public void dragExit(DropTargetEvent event) {} - @Override - public void dragOver(DropTargetDragEvent event) {} - @Override - public void dropActionChanged(DropTargetDragEvent event) {} - @Override - @SuppressWarnings("unchecked") - public void drop(DropTargetDropEvent event) { - event.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE); - try { - int action = event.getDropAction(); - if ( (action & DnDConstants.ACTION_COPY_OR_MOVE) != 0 ) { - Transferable t = event.getTransferable(); - Object data = t.getTransferData(DataFlavor.javaFileListFlavor); - loadAndPlay((List)data); - event.dropComplete(true); - return; + /** + * ドロップされた複数のMIDIファイルを読み込むリスナー + */ + public final DropTargetListener dropTargetListener = new DropTargetAdapter() { + @Override + public void dragEnter(DropTargetDragEvent event) { + if( event.isDataFlavorSupported(DataFlavor.javaFileListFlavor) ) { + event.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE); } - event.dropComplete(false); } - catch (Exception ex) { - ex.printStackTrace(); + @Override + @SuppressWarnings("unchecked") + public void drop(DropTargetDropEvent event) { + event.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE); + try { + int action = event.getDropAction(); + if ( (action & DnDConstants.ACTION_COPY_OR_MOVE) != 0 ) { + Transferable t = event.getTransferable(); + if( t.isDataFlavorSupported(DataFlavor.javaFileListFlavor) ) { + loadAndPlay((List)t.getTransferData(DataFlavor.javaFileListFlavor)); + event.dropComplete(true); + return; + } + } + } + catch (Exception ex) { + ex.printStackTrace(); + } event.dropComplete(false); } - } + }; /** * 複数のMIDIファイルを読み込み、再生されていなかったら再生します。 * すでに再生されていた場合、このエディタダイアログを表示します。 @@ -1225,7 +1224,7 @@ public class MidiSequenceEditor extends JDialog implements DropTargetListener { setTitle("MIDI Editor/Playlist - MIDI Chord Helper"); setBounds( 150, 200, 900, 500 ); setLayout(new FlowLayout()); - new DropTarget(this, DnDConstants.ACTION_COPY_OR_MOVE, this, true); + new DropTarget(this, DnDConstants.ACTION_COPY_OR_MOVE, dropTargetListener, true); JPanel playlistPanel = new JPanel() {{ JPanel playlistOperationPanel = new JPanel() {{ setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS));