@Override public ModuleExtension getModifiableModel(boolean writable) { return new PerlModuleExtension(this, writable); }
@Override protected void modifyRoots(@NotNull AnActionEvent e, @NotNull Module module, @NotNull VirtualFile[] files) { PerlModuleExtension modifiableModel = (PerlModuleExtension)PerlModuleExtension.getInstance(module).getModifiableModel(true); for (VirtualFile virtualFile : files) { modifiableModel.setRoot(virtualFile, myType); } modifiableModel.commit(); } }
@Override public void reset() { if (myModifiableModel != null) { myModifiableModel.dispose(); myModifiableModel = null; } myModifiableModel = (PerlModuleExtension)PerlModuleExtension.getInstance(myModule).getModifiableModel(true); }
@Override protected boolean isEnabled(@NotNull List<VirtualFile> files, @NotNull Module module) { PerlModuleExtension perlModuleExtension = PerlModuleExtension.getInstance(module); for (VirtualFile file : files) { if (perlModuleExtension.getRootType(file) != null) { return true; } } return false; } }
@Override public void actionPerformed(@NotNull AnActionEvent e) { RootsSelection selection = getSelection(e); PerlModuleExtension perlModuleExtension = (PerlModuleExtension)PerlModuleExtension.getInstance(selection.myModule).getModifiableModel(true); for (VirtualFile virtualFile : getFilesFromSelection(selection)) { perlModuleExtension.removeRoot(virtualFile); } perlModuleExtension.commit(); }
@NotNull public final List<VirtualFile> getRoots(@NotNull Module module) { return PerlModuleExtension.getInstance(module).getRootsByType(getRootType()); }
@Override public void setSelected(@NotNull AnActionEvent e, boolean state) { PerlModuleExtension modifiableModel = myEditor.getModifiableModel(); for (VirtualFile virtualFile : myEditor.getSelectedFiles()) { if (state) { modifiableModel.setRoot(virtualFile, myHandler.getRootType()); } else { modifiableModel.removeRoot(virtualFile); } } myEditor.repaint(); }
ImmutableMapBuilder<VirtualFile, PerlSourceRootType> builder = ContainerUtil.immutableMapBuilder(); for (Module module : ModuleManager.getInstance(myProject).getModules()) { PerlModuleExtension.getInstance(module).getRoots().forEach((key, value) -> builder.put(key, value));
@Override public boolean isSelected(@NotNull AnActionEvent e) { VirtualFile[] files = myEditor.getSelectedFiles(); if (files.length == 0) { return false; } return myHandler.getRootType().equals(myEditor.getModifiableModel().getRootType(files[0])); }
@Override public boolean isModified() { return myModifiableModel.isChanged(); }
@Override public void apply() { assert myModifiableModel != null; myModifiableModel.commit(); }
protected boolean isEnabled(@NotNull List<VirtualFile> files, @NotNull Module module) { if (files.isEmpty() || !PerlProjectManager.isPerlEnabled(module)) { return false; } return !myType.equals(PerlModuleExtension.getInstance(module).getRootType(files.get(0))); }
return; PerlSourceRootType rootType = myModifiableModel.getRootType(file); if (rootType == null) { return;
@Override public void commit() { LOG.assertTrue(myOriginal != null, "Attempt to commit non-modifyable model"); if (isChanged()) { synchronized (myOriginal) { WriteAction.run( () -> ProjectRootManagerEx.getInstanceEx(myModule.getProject()).makeRootsChange(() -> { myOriginal.myRoots = new THashMap<>(myRoots); myOriginal.myModificationTracker++; }, false, true) ); } } }
PerlModuleExtension perlModuleExtension = PerlModuleExtension.getInstance(selection.myModule); if (perlModuleExtension == null || virtualFiles.isEmpty()) { return; PerlSourceRootType type = perlModuleExtension.getRootType(virtualFiles.get(0)); if (type == null) { return;