diff --git a/app/src/processing/app/contrib/ContributionListing.java b/app/src/processing/app/contrib/ContributionListing.java index 5e216a740..bc3350764 100644 --- a/app/src/processing/app/contrib/ContributionListing.java +++ b/app/src/processing/app/contrib/ContributionListing.java @@ -43,7 +43,7 @@ public class ContributionListing { ArrayList listeners; ArrayList advertisedContributions; Map> librariesByCategory; - Map librariesByImportHeader; + public Map librariesByImportHeader; ArrayList allContributions; boolean hasDownloadedLatestList; boolean hasListDownloadFailed; @@ -66,7 +66,7 @@ public class ContributionListing { } - static ContributionListing getInstance() { + public static ContributionListing getInstance() { if (singleInstance == null) { synchronized (ContributionListing.class) { if (singleInstance == null) { diff --git a/java/src/processing/mode/java/JavaEditor.java b/java/src/processing/mode/java/JavaEditor.java index 0fbb55d07..a77d7d945 100644 --- a/java/src/processing/mode/java/JavaEditor.java +++ b/java/src/processing/mode/java/JavaEditor.java @@ -8,6 +8,7 @@ import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; @@ -23,6 +24,8 @@ import org.eclipse.jdt.core.compiler.IProblem; import processing.app.*; import processing.app.Toolkit; import processing.app.contrib.AvailableContribution; +import processing.app.contrib.Contribution; +import processing.app.contrib.ContributionListing; import processing.app.contrib.ToolContribution; import processing.app.syntax.JEditTextArea; import processing.app.syntax.PdeTextAreaDefaults; @@ -1869,20 +1872,22 @@ public class JavaEditor extends Editor { for (String[] importStatement : pieces) { importHeaders.add(importStatement[2]); } - ArrayList installLibsHeaders = getUninstalledAvailableLib(importHeaders); - for (String s : installLibsHeaders) - System.out.println(s); + ArrayList installLibsHeaders = getNotInstalledAvailableLibs(importHeaders); + for (Contribution c : installLibsHeaders) + System.out.println(c.getName()); } } } } /** - * Returns the name of the + * Returns a list of AvailableContributions of those libraries that the user wants imported, + * but that are not installed. * @param importHeaders */ - private ArrayList getUninstalledAvailableLib(ArrayList importHeadersList) { - ArrayList libList = new ArrayList(); + private ArrayList getNotInstalledAvailableLibs(ArrayList importHeadersList) { + Map importMap = ContributionListing.getInstance().librariesByImportHeader; + ArrayList libList = new ArrayList(); for (String importHeaders : importHeadersList) { int dot = importHeaders.lastIndexOf('.'); String entry = (dot == -1) ? importHeaders : importHeaders.substring(0, @@ -1896,11 +1901,16 @@ public class JavaEditor extends Editor { Library library = null; try { library = this.getMode().getLibrary(entry); - if (library == null) - libList.add(importHeaders);//System.out.println(importHeaders + "not found"); + if (library == null) { + Contribution c = importMap.get(importHeaders); + if (c!=null) + libList.add(c);//System.out.println(importHeaders + "not found"); + } } catch (Exception e) { // Not gonna happen (hopefully) - libList.add(importHeaders);//System.out.println(importHeaders + "not found"); + Contribution c = importMap.get(importHeaders); + if (c!=null) + libList.add(c);//System.out.println(importHeaders + "not found"); } } return libList;