Package com.pugh.sockso.gui

Source Code of com.pugh.sockso.gui.MusicList

/*
*  MusicList.java
*
*  Created on May 23, 2007, 9:38:45 PM
*
*  A draggable list that contains MusicItems
*
*/

package com.pugh.sockso.gui;

import com.pugh.sockso.music.MusicItem;

import java.awt.dnd.DnDConstants;
import java.awt.dnd.DragSource;
import java.awt.dnd.DragSourceEvent;
import java.awt.dnd.DragGestureEvent;
import java.awt.dnd.DragSourceDropEvent;
import java.awt.dnd.DragSourceDragEvent;
import java.awt.dnd.DragSourceListener;
import java.awt.dnd.DragGestureListener;

import javax.swing.JList;

import org.apache.log4j.Logger;

public class MusicList extends JList implements DragSourceListener, DragGestureListener{

    private static final Logger log = Logger.getLogger( MusicList.class );
   
    private DragSource dragSource;

    public MusicList() {
        this( DnDConstants.ACTION_COPY );
    }
   
    /**
     *  you can specify a drag type.
     *
     *  @param dndType the DnD type
     *
     */
   
    public MusicList( int dndType ) {

        dragSource = new DragSource();
        dragSource.createDefaultDragGestureRecognizer( this, dndType, this );

    }
   
    public void dragDropEnd( DragSourceDropEvent evt ) {}
    public void dragExit( DragSourceEvent evt ) {}
    public void dropActionChanged( DragSourceDragEvent evt ) {}
    public void dragOver( DragSourceDragEvent evt ) {}
    public void dragEnter( DragSourceDragEvent evt ) {}

    /**
     *  a drag gesture has been recognised, passes the selected music
     *  item to the transfar handler
     *
     *  @param evt the drag event
     *
     */
   
    public void dragGestureRecognized( DragGestureEvent evt ) {

        if ( getSelectedValue() == null ) return;
       
        try {
           
            dragSource.startDrag(
                evt, DragSource.DefaultMoveDrop,
                (MusicItem) getSelectedValue(), this
            );

        }
        catch ( ClassCastException e ) {
            log.error( "Error starting drag: " + e.getMessage() );
        }

    }

}
TOP

Related Classes of com.pugh.sockso.gui.MusicList

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.