}
public VirtualFile[] getRoots(OrderRootType rootType) {
- return myPathEditors.get(rootType).getRoots();
+ final PathEditor editor = myPathEditors.get(rootType);
+ if (editor == null) {
+ throw new IllegalStateException("no editor for root type " + rootType);
+ }
+ return editor.getRoots();
}
public void addRoot(VirtualFile root, OrderRootType rootType) {
import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.project.ProjectBundle;
import com.intellij.openapi.projectRoots.*;
+import com.intellij.openapi.roots.AnnotationOrderRootType;
import com.intellij.openapi.roots.JavadocOrderRootType;
import com.intellij.openapi.roots.OrderRootType;
import com.intellij.openapi.util.IconLoader;
return LocalFileSystem.getInstance().findFileByPath(path);
}
+ @Override
+ public boolean isRootTypeApplicable(OrderRootType type) {
+ return type == OrderRootType.CLASSES ||
+ type == OrderRootType.SOURCES ||
+ type == JavadocOrderRootType.getInstance() ||
+ type == AnnotationOrderRootType.getInstance();
+ }
}
import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.projectRoots.*;
+import com.intellij.openapi.roots.AnnotationOrderRootType;
import com.intellij.openapi.roots.JavadocOrderRootType;
import com.intellij.openapi.roots.OrderRootType;
import com.intellij.openapi.ui.Messages;
return SdkType.findInstance(IdeaJdk.class);
}
+ @Override
+ public boolean isRootTypeApplicable(OrderRootType type) {
+ return type == OrderRootType.CLASSES ||
+ type == OrderRootType.SOURCES ||
+ type == JavadocOrderRootType.getInstance() ||
+ type == AnnotationOrderRootType.getInstance();
+ }
+
enum JDKVersion {
V1_4("1.4"), V1_5("1.5"), V1_6("1.6");
if (myFreeze) return;
final Sdk javaJdk = (Sdk)e.getItem();
for (OrderRootType type : OrderRootType.getAllTypes()) {
+ if (!javaJdk.getSdkType().isRootTypeApplicable(type)) {
+ continue;
+ }
final VirtualFile[] internalRoots = javaJdk.getSdkModificator().getRoots(type);
final VirtualFile[] configuredRoots = mySdkModificator.getRoots(type);
for (VirtualFile file : internalRoots) {