protected void updateContributionListing() { if (editor != null) { List<Contribution> contributions = new ArrayList<Contribution>(); List<Library> libraries = new ArrayList<Library>(editor.getMode().contribLibraries); // Only add core libraries that are installed in the sketchbook // https://github.com/processing/processing/issues/3688 // libraries.addAll(editor.getMode().coreLibraries); final String sketchbookPath = Base.getSketchbookLibrariesFolder().getAbsolutePath(); for (Library lib : editor.getMode().coreLibraries) { if (lib.getLibraryPath().startsWith(sketchbookPath)) { libraries.add(lib); } } contributions.addAll(libraries); Base base = editor.getBase(); List<ToolContribution> tools = base.getToolContribs(); contributions.addAll(tools); List<ModeContribution> modes = base.getModeContribs(); contributions.addAll(modes); List<ExamplesContribution> examples = base.getExampleContribs(); contributions.addAll(examples); // ArrayList<LibraryCompilation> compilations = LibraryCompilation.list(libraries); // // // Remove libraries from the list that are part of a compilations // for (LibraryCompilation compilation : compilations) { // Iterator<Library> it = libraries.iterator(); // while (it.hasNext()) { // Library current = it.next(); // if (compilation.getFolder().equals(current.getFolder().getParentFile())) { // it.remove(); // } // } // } contribListing.updateInstalledList(contributions); } }
public void nameFocusLost(java.awt.event.FocusEvent evt) { ctxt.saveState = true; String newName = name.getText(), msg; while (!Library.validateFileName(newName, false)) { msg = "The name '" + newName + "' violates the rules for names:"; msg += "\nIt must have 2 to 28 characters."; msg += "\nYou may not use BackSlash, ForwardSlash, Colon, DoubleQuote"; msg += "\nAsterisk, QuestionMark, LeftAngleBracket, RightAngleBracket,"; msg += "\nor the VerticalBar in a name. TRY AGAIN."; newName = JOptionPane.showInputDialog(msg); } // end of harrass-em-until-they-give-a-good-name name.setText(newName); if (!newName.equals(ctxt.languageName)) { // Made a change msg = "Change this context's language name\nto" + newName + "?"; String[] options = {newName, ctxt.languageName}; int choice = JOptionPane.showOptionDialog( this, msg, "Confirm Changed Language Name", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]); if (choice == 0) { // Change is confirmed ctxt.languageName = newName; msg = "Normally, the file name for a context is the same as the language name " + "\nfor that context. Change this context's file name\n" + "to " + newName + "?"; options[0] = "Change File Name"; options[1] = "Do Not Change"; choice = JOptionPane.showOptionDialog( this, msg, "Confirm Correct File Name", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]); if (choice == 0) { Library.userContextName = newName; if (SIL_Edit.edWin != null && ctxt == Library.contextUnderConstruction) { SIL_Edit.edWin.chart.changeFileName(newName); } } } // end of Change-is-confirmed } // end of change-was-made }