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;
+ }
}
}