diff --git a/core.windows/src/org/netbeans/core/windows/view/EditorView.java b/core.windows/src/org/netbeans/core/windows/view/EditorView.java --- a/core.windows/src/org/netbeans/core/windows/view/EditorView.java +++ b/core.windows/src/org/netbeans/core/windows/view/EditorView.java @@ -410,6 +410,11 @@ public boolean supportsKind(TopComponentDraggable transfer) { return true; } + + @Override + public int getKind() { + return Constants.MODE_KIND_EDITOR; + } } // End of EditorAreaComponent class. diff --git a/core.windows/src/org/netbeans/core/windows/view/dnd/DropTargetGlassPane.java b/core.windows/src/org/netbeans/core/windows/view/dnd/DropTargetGlassPane.java --- a/core.windows/src/org/netbeans/core/windows/view/dnd/DropTargetGlassPane.java +++ b/core.windows/src/org/netbeans/core/windows/view/dnd/DropTargetGlassPane.java @@ -274,13 +274,17 @@ } private TexturePaint texturePaint; + private int modeKind = -1; private TexturePaint getIndicationPaint() { - if( null == texturePaint ) { + if (droppable != null && droppable.getKind() != modeKind) { BufferedImage image = new BufferedImage(2,2,BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = image.createGraphics(); Color c = UIManager.getColor("Panel.dropTargetGlassPane"); if (c == null) { c = new Color(255, 90, 0); + if (droppable.getKind() == Constants.MODE_KIND_EDITOR) { + c = new Color(90, 255, 0); + } } g2.setColor(c); g2.fillRect(0,0,1,1); @@ -290,6 +294,7 @@ g2.fillRect(1,0,1,1); g2.fillRect(0,1,1,1); texturePaint = new TexturePaint(image, new Rectangle(0,0,2,2)); + modeKind = droppable.getKind(); } return texturePaint; } diff --git a/core.windows/src/org/netbeans/core/windows/view/dnd/TopComponentDroppable.java b/core.windows/src/org/netbeans/core/windows/view/dnd/TopComponentDroppable.java --- a/core.windows/src/org/netbeans/core/windows/view/dnd/TopComponentDroppable.java +++ b/core.windows/src/org/netbeans/core/windows/view/dnd/TopComponentDroppable.java @@ -90,4 +90,10 @@ /** Checks whether this droppable supports kind of winsys transfer. * Either Constants.MODE_KIND_EDITOR or Constants.MODE_KIND_VIEW or both. */ public boolean supportsKind(TopComponentDraggable transfer); + + /** + * @return Mode kind of the originating mode when just a single TopComponent + * is being dragged or the kind of the mode that is being dragged. + */ + public int getKind(); } diff --git a/core.windows/src/org/netbeans/core/windows/view/dnd/WindowDnDManager.java b/core.windows/src/org/netbeans/core/windows/view/dnd/WindowDnDManager.java --- a/core.windows/src/org/netbeans/core/windows/view/dnd/WindowDnDManager.java +++ b/core.windows/src/org/netbeans/core/windows/view/dnd/WindowDnDManager.java @@ -1193,6 +1193,10 @@ return transfer.getKind() == Constants.MODE_KIND_VIEW || transfer.getKind() == Constants.MODE_KIND_SLIDING; } + @Override + public int getKind() { + return Constants.MODE_KIND_VIEW; + } } // End of class CenterPanelDroppable. @@ -1276,6 +1280,10 @@ return transfer.getKind() == Constants.MODE_KIND_EDITOR; } + @Override + public int getKind() { + return Constants.MODE_KIND_EDITOR; + } } // End of class EditorAreaDroppable. @@ -1337,6 +1345,11 @@ return true; } + @Override + public int getKind() { + return Constants.MODE_KIND_VIEW; + } + } // End of class FreeAreaDroppable. /** @@ -1533,6 +1546,11 @@ } return rect; } + + @Override + public int getKind() { + return Constants.MODE_KIND_SLIDING; + } } }