From d3ac645d704523957bcd5cd0da8f903c0fb499f1 Mon Sep 17 00:00:00 2001 From: Peter Gromov Date: Thu, 24 Sep 2009 16:54:18 +0400 Subject: [PATCH] make groovy project compile, editable compiler excludes configuration --- .../options/ExcludeEntryDescription.java | 17 +++++++++++++---- .../options/ExcludedEntriesConfigurable.java | 13 +++++++++---- .../src/com/intellij/util/PathsList.java | 6 +++++- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/java/compiler/openapi/src/com/intellij/openapi/compiler/options/ExcludeEntryDescription.java b/java/compiler/openapi/src/com/intellij/openapi/compiler/options/ExcludeEntryDescription.java index a514dea585dd..ffde6c65086c 100644 --- a/java/compiler/openapi/src/com/intellij/openapi/compiler/options/ExcludeEntryDescription.java +++ b/java/compiler/openapi/src/com/intellij/openapi/compiler/options/ExcludeEntryDescription.java @@ -22,20 +22,21 @@ package com.intellij.openapi.compiler.options; import com.intellij.openapi.Disposable; import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.pointers.VirtualFilePointer; import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager; import org.jetbrains.annotations.Nullable; public class ExcludeEntryDescription implements Disposable { - - private final String myUrl; - private final boolean myIsFile; + private boolean myIsFile; private boolean myIncludeSubdirectories; private VirtualFilePointer myFilePointer; + private final Disposable myParentDisposable; public ExcludeEntryDescription(String url, boolean includeSubdirectories, boolean isFile, Disposable parent) { - myUrl = url; + myParentDisposable = parent; myFilePointer = VirtualFilePointerManager.getInstance().create(url, parent, null); myIncludeSubdirectories = includeSubdirectories; myIsFile = isFile; @@ -49,6 +50,14 @@ public class ExcludeEntryDescription implements Disposable { return new ExcludeEntryDescription(getUrl(), myIncludeSubdirectories, myIsFile,parent); } + public void setPresentableUrl(String newUrl) { + myFilePointer = VirtualFilePointerManager.getInstance().create(VfsUtil.pathToUrl(FileUtil.toSystemIndependentName(newUrl)), myParentDisposable, null); + final VirtualFile file = getVirtualFile(); + if (file != null) { + myIsFile = !file.isDirectory(); + } + } + public boolean isFile() { return myIsFile; } diff --git a/java/compiler/openapi/src/com/intellij/openapi/compiler/options/ExcludedEntriesConfigurable.java b/java/compiler/openapi/src/com/intellij/openapi/compiler/options/ExcludedEntriesConfigurable.java index bb6b775f2717..7db1d410f5a4 100644 --- a/java/compiler/openapi/src/com/intellij/openapi/compiler/options/ExcludedEntriesConfigurable.java +++ b/java/compiler/openapi/src/com/intellij/openapi/compiler/options/ExcludedEntriesConfigurable.java @@ -241,7 +241,7 @@ public class ExcludedEntriesConfigurable implements UnnamedConfigurable { public Object getValueAt(int row, int col) { ExcludeEntryDescription description = myExcludeEntryDescriptions.get(row); if(col == 0) { - return description; + return description.getPresentableUrl(); } if(col == 1) { if(!description.isFile()) { @@ -260,7 +260,7 @@ public class ExcludedEntriesConfigurable implements UnnamedConfigurable { public Class getColumnClass(int c) { if(c == 0) { - return Object.class; + return String.class; } if(c == 1) { return Boolean.class; @@ -273,12 +273,17 @@ public class ExcludedEntriesConfigurable implements UnnamedConfigurable { ExcludeEntryDescription description = myExcludeEntryDescriptions.get(row); return !description.isFile(); } - return false; + return true; } public void setValueAt(Object aValue, int row, int col) { ExcludeEntryDescription description = myExcludeEntryDescriptions.get(row); - description.setIncludeSubdirectories(aValue.equals(Boolean.TRUE)); + if (col == 1) { + description.setIncludeSubdirectories(aValue.equals(Boolean.TRUE)); + } else { + final String path = (String)aValue; + description.setPresentableUrl(path); + } } }; diff --git a/platform/lang-api/src/com/intellij/util/PathsList.java b/platform/lang-api/src/com/intellij/util/PathsList.java index dde451b0f2a1..51ffcca738ca 100644 --- a/platform/lang-api/src/com/intellij/util/PathsList.java +++ b/platform/lang-api/src/com/intellij/util/PathsList.java @@ -158,8 +158,12 @@ public class PathsList { public void addAllFiles(List classpathList) { for (File file : classpathList) { - add(PathUtil.getCanonicalPath(file.getAbsolutePath()).replace('/', File.separatorChar)); + add(file); } } + public void add(File file) { + add(PathUtil.getCanonicalPath(file.getAbsolutePath()).replace('/', File.separatorChar)); + } + }