Commit 134d4579 authored by Andrey Vokin's avatar Andrey Vokin Committed by intellij-monorepo-bot
Browse files

DS-1809 Detach directory is disabled

Attach directory instead of adding to content root

(cherry picked from commit 1ba3e5217be5c0fe8745030e25c266aba076beba)

GitOrigin-RevId: 3952adeb01989d954cc6f0fc78a2c171921be67a
parent 5af7002c
Showing with 14 additions and 15 deletions
+14 -15
...@@ -105,6 +105,18 @@ public abstract class AttachableProjectViewPane extends ProjectViewPane { ...@@ -105,6 +105,18 @@ public abstract class AttachableProjectViewPane extends ProjectViewPane {
return super.getData(dataId); return super.getData(dataId);
} }
protected void processDroppedDirectories(@NotNull List<VirtualFile> dirs) {
if (dirs.isEmpty()) return;
Module[] modules = ModuleManager.getInstance(myProject).getModules();
if (modules.length == 0) return;
final Module module = modules[0];
ModuleRootModificationUtil.updateModel(module, model -> {
for (VirtualFile file : dirs) {
model.addContentEntry(file);
}
});
}
private class DropAreaDecorator extends JPanel implements DnDTargetChecker, DnDDropHandler { private class DropAreaDecorator extends JPanel implements DnDTargetChecker, DnDDropHandler {
private JComponent myWrappee; private JComponent myWrappee;
private final JPanel myDropArea = new JPanel(new BorderLayout()); private final JPanel myDropArea = new JPanel(new BorderLayout());
...@@ -162,20 +174,7 @@ public abstract class AttachableProjectViewPane extends ProjectViewPane { ...@@ -162,20 +174,7 @@ public abstract class AttachableProjectViewPane extends ProjectViewPane {
@Override @Override
public void drop(@NotNull final DnDEvent event) { public void drop(@NotNull final DnDEvent event) {
hideDropArea(); hideDropArea();
doDrop(event); processDroppedDirectories(getDirectories(event));
}
private void doDrop(@NotNull DnDEvent event) {
final List<VirtualFile> dirs = getDirectories(event);
if (dirs.isEmpty()) return;
Module[] modules = ModuleManager.getInstance(myProject).getModules();
if (modules.length == 0) return;
final Module module = modules[0];
ModuleRootModificationUtil.updateModel(module, model -> {
for (VirtualFile file : dirs) {
model.addContentEntry(file);
}
});
} }
@Override @Override
......
...@@ -44,7 +44,7 @@ open class AttachProjectAction : AnAction(ActionsBundle.message("action.AttachPr ...@@ -44,7 +44,7 @@ open class AttachProjectAction : AnAction(ActionsBundle.message("action.AttachPr
} }
} }
private fun attachProject(virtualFile: VirtualFile, project: Project) { fun attachProject(virtualFile: VirtualFile, project: Project) {
var baseDir: VirtualFile? = virtualFile var baseDir: VirtualFile? = virtualFile
if (!virtualFile.isDirectory) { if (!virtualFile.isDirectory) {
baseDir = virtualFile.parent baseDir = virtualFile.parent
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment