1 19 20 28 29 package org.netbeans.modules.xml.wsdl.ui.view.grapheditor; 30 31 import java.awt.Image ; 32 import java.awt.Point ; 33 import java.awt.Rectangle ; 34 import java.awt.datatransfer.Transferable ; 35 import java.beans.BeanInfo ; 36 import org.netbeans.api.visual.action.WidgetAction.WidgetDropTargetDragEvent; 37 import org.netbeans.api.visual.widget.LayerWidget; 38 import org.netbeans.api.visual.widget.Scene; 39 import org.netbeans.api.visual.widget.general.IconNodeWidget; 40 import org.netbeans.spi.palette.PaletteController; 41 import org.openide.nodes.Node; 42 import org.openide.util.Lookup; 43 44 50 public class DragOverSceneLayer extends LayerWidget { 51 52 53 private IconNodeWidget icon; 54 55 56 57 public DragOverSceneLayer(Scene scene) { 58 super(scene); 59 } 60 61 public void resetLayer() { 62 removeChildren(); 63 icon = null; 64 setPreferredBounds(new Rectangle ()); 65 setPreferredLocation(new Point ()); 66 } 67 68 69 public boolean dragOver(Point scenePoint, WidgetDropTargetDragEvent event) { 70 if (icon == null) { 71 try { 72 Transferable t = event.getTransferable(); 73 if (t != null) { 74 if (t.isDataFlavorSupported(PaletteController.ITEM_DATA_FLAVOR)) { 75 Lookup lookup = (Lookup) t.getTransferData( 76 PaletteController.ITEM_DATA_FLAVOR); 77 Node node = (Node) lookup.lookup(Node.class); 78 icon = new IconNodeWidget(getScene(), 79 IconNodeWidget.TextOrientation.BOTTOM_CENTER); 80 icon.setOpaque(false); 81 addChild(icon); 82 icon.setLabel(node.getName()); 83 Image image = node.getIcon(BeanInfo.ICON_COLOR_16x16); 84 if (image == null) { 85 image = node.getIcon(BeanInfo.ICON_COLOR_32x32); 86 } 87 if (image != null) { 88 icon.setImage(image); 89 } 90 getScene().revalidate(); 91 } 92 } 93 } catch (Exception e) { 94 } 95 } 96 if (icon != null) { 97 icon.setPreferredLocation(convertSceneToLocal(scenePoint)); 98 } 99 return false; 100 } 101 } 102 | Popular Tags |