1 package jimm.datavision.gui; 2 import jimm.datavision.ErrorHandler; 3 import jimm.datavision.gui.cmd.NewDraggedFieldCommand; 4 import java.awt.Color ; 5 import java.awt.Component ; 6 import java.awt.dnd.*; 7 import java.awt.datatransfer.*; 8 import javax.swing.JPanel ; 9 10 16 public class SectionFieldPanel extends JPanel implements DropTargetListener { 17 18 protected SectionWidget sectionWidget; 19 20 25 public SectionFieldPanel(SectionWidget sw) { 26 super(); 27 sectionWidget = sw; 28 new DropTarget(this, DnDConstants.ACTION_COPY_OR_MOVE, this); } 32 33 36 public void drop(DropTargetDropEvent e) { 37 try { 38 DataFlavor stringFlavor = DataFlavor.stringFlavor; 39 Transferable tr = e.getTransferable(); 40 if (e.isDataFlavorSupported(stringFlavor)) { 41 addField(e, (String )tr.getTransferData(stringFlavor)); 42 e.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE); 43 e.dropComplete(true); 44 } 45 else { 46 e.rejectDrop(); 47 } 48 } 49 catch(Exception ex) { 50 ErrorHandler.error(ex); 51 } 52 } 53 54 public void dragEnter(DropTargetDragEvent e) { } 55 public void dragExit(DropTargetEvent e) { } 56 public void dragOver(DropTargetDragEvent e) { } 57 public void dropActionChanged(DropTargetDragEvent e) { } 58 59 68 protected void addField(DropTargetDropEvent e, String dropString) { 69 sectionWidget.performCommand(new NewDraggedFieldCommand(sectionWidget, 70 dropString, e)); 71 } 72 73 79 public void setHidden(boolean isHidden) { 80 Color c = isHidden ? SectionWidget.SUPPRESSED_COLOR 81 : SectionWidget.NORMAL_COLOR; 82 setBackground(c); 83 Component [] kids = getComponents(); 84 for (int i = 0; i < kids.length; ++i) 85 kids[i].setBackground(c); 86 } 87 88 } 89 | Popular Tags |