IDEA-172090 Can't add custom components from the project classpath to Client Properties

This commit is contained in:
Alexander Lobas
2017-04-27 22:44:55 +03:00
parent c29d9ee6cc
commit 9732d2bad7
2 changed files with 6 additions and 4 deletions
@@ -23,6 +23,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.AtomicNotNullLazyValue;
import com.intellij.openapi.util.JDOMUtil;
import com.intellij.openapi.util.NotNullLazyValue;
import com.intellij.uiDesigner.LoaderFactory;
import org.jdom.Element;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -182,11 +183,11 @@ public class ClientPropertiesManager implements PersistentStateComponent<Element
}
}
public List<Class> getConfiguredClasses() {
public List<Class> getConfiguredClasses(@NotNull Project project) {
List<Class> result = new ArrayList<>();
for(String className: myPropertyMap.keySet()) {
try {
result.add(Class.forName(className));
result.add(Class.forName(className, true, LoaderFactory.getInstance(project).getProjectClassLoader()));
}
catch (ClassNotFoundException e) {
// TODO: do something better than ignore?
@@ -24,6 +24,7 @@ import com.intellij.openapi.util.SystemInfo;
import com.intellij.ui.*;
import com.intellij.ui.table.JBTable;
import com.intellij.ui.treeStructure.Tree;
import com.intellij.uiDesigner.LoaderFactory;
import com.intellij.uiDesigner.UIDesignerBundle;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -122,7 +123,7 @@ public class ConfigureClientPropertiesDialog extends DialogWrapper {
if (className.length() == 0) return;
final Class aClass;
try {
aClass = Class.forName(className);
aClass = Class.forName(className, true, LoaderFactory.getInstance(myProject).getProjectClassLoader());
}
catch (ClassNotFoundException ex) {
Messages.showErrorDialog(mySplitter,
@@ -192,7 +193,7 @@ public class ConfigureClientPropertiesDialog extends DialogWrapper {
}
private void fillClassTree() {
List<Class> configuredClasses = myManager.getConfiguredClasses();
List<Class> configuredClasses = myManager.getConfiguredClasses(myProject);
Collections.sort(configuredClasses, new Comparator<Class>() {
@Override
public int compare(final Class o1, final Class o2) {