--- openide/src/org/openide/text/CloneableEditor.java +++ openide/src/org/openide/text/CloneableEditor.java @@ -202,6 +208,25 @@ pane.setEditorKit (support.kit ()); pane.setDocument (doc); +// <> NB #53439 Temporary put back (to fix a bug), +// when is figured out another method to hack this (at least from editor module). +// Originally modified by Tor: install drag & drop handlers on the editor + // In order to minimaze the impact on NB code (two large classes added), this service (see bottom), + // was declared. + DnDSupportFactory factory = (DnDSupportFactory)org.openide.util.Lookup.getDefault().lookup(DnDSupportFactory.class); + if(factory != null) { + pane.setTransferHandler(factory.createCloneableEditorPaneTransferHandler()); + java.awt.dnd.DropTarget dropTarget = pane.getDropTarget(); + if (dropTarget != null) { + java.awt.dnd.DropTargetListener dropTargetListener = factory.createCloneableEditorPaneDropTargetListener(); + try { + dropTarget.addDropTargetListener(dropTargetListener); + } catch(java.util.TooManyListenersException tmle) { + ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, tmle); + } + } + } +// if (doc instanceof NbDocument.CustomEditor) { NbDocument.CustomEditor ce = (NbDocument.CustomEditor)doc; customComponent = ce.createEditor(pane); @@ -640,4 +665,16 @@ requestVisible(); } +// <> NB #53439 See also above. +// Hacks the code, in order to minimaze the changed code, to be able to better +// depict the needed change. + public interface DnDSupportFactory { + /** Creates TransferHandler instance which will be used + in CloneableEditor.pane component. On 1 per 1 basis. */ + public javax.swing.TransferHandler createCloneableEditorPaneTransferHandler(); + /** Creates DropTargetListener instance which will be used + in CloneableEditor.Pane component. On 1 per 1 basis. */ + public java.awt.dnd.DropTargetListener createCloneableEditorPaneDropTargetListener(); + } +// }