@Override public void dragOutCancelled(TabInfo source) { source.setHidden(false); if (mySession != null) { mySession.cancel(); } myFile = null; mySession = null; }
@Override public void dragOutStarted(MouseEvent mouseEvent, TabInfo info) { final TabInfo previousSelection = info.getPreviousSelection(); final Image img = myTabs.getComponentImage(info); info.setHidden(true); if (previousSelection != null) { myTabs.select(previousSelection, true); } myFile = (VirtualFile) info.getObject(); Presentation presentation = new Presentation(info.getText()); presentation.setIcon(info.getIcon()); mySession = getDockManager() .createDragSession( mouseEvent, new DockableEditor(img, myFile, presentation, myWindow)); }
@Override public void dragOutFinished(MouseEvent event, TabInfo source) { boolean copy = event.isMetaDown() || (!SystemInfo.isMac && event.isControlDown()); if (!copy) { myFile.putUserData(FileEditorManagerImpl.CLOSING_TO_REOPEN, Boolean.TRUE); FileEditorManagerEx.getInstanceEx(myProject).closeFile(myFile, myWindow); } else { source.setHidden(false); } mySession.process(event); if (!copy) { myFile.putUserData(FileEditorManagerImpl.CLOSING_TO_REOPEN, null); } myFile = null; mySession = null; }