private void projectPageCustomButtonPressed(DialogField field, int index) { CPListElement[] entries = null; switch (index) { case IDX_ADDPROJECT: /* add project */ entries = openProjectDialog(null); break; case IDX_EDIT: /* edit */ editEntry(); return; case IDX_REMOVE: /* remove */ removeEntry(); return; } if (entries != null) { int nElementsChosen = entries.length; // remove duplicates List cplist = fProjectsList.getElements(); List elementsToAdd = new ArrayList(nElementsChosen); for (int i = 0; i < nElementsChosen; i++) { CPListElement curr = entries[i]; if (!cplist.contains(curr) && !elementsToAdd.contains(curr)) { elementsToAdd.add(curr); } } fProjectsList.addElements(elementsToAdd); if (index == IDX_ADDPROJECT) { fProjectsList.refresh(); } fProjectsList.postSetSelection(new StructuredSelection(entries)); } }
private CPListElement[] openProjectDialog(CPListElement elem) { try { ArrayList selectable = new ArrayList(); selectable.addAll(Arrays.asList(fCurrJProject.getJavaScriptModel().getJavaScriptProjects())); selectable.remove(fCurrJProject); List elements = fProjectsList.getElements(); for (int i = 0; i < elements.size(); i++) { CPListElement curr = (CPListElement) elements.get(0); IJavaScriptProject proj = (IJavaScriptProject) JavaScriptCore.create(curr.getResource()); selectable.remove(proj); } Object[] selectArr = selectable.toArray(); new JavaScriptElementComparator().sort(null, selectArr); ListSelectionDialog dialog = new ListSelectionDialog( getShell(), Arrays.asList(selectArr), new ArrayContentProvider(), new JavaUILabelProvider(), NewWizardMessages.ProjectsWorkbookPage_chooseProjects_message); dialog.setTitle(NewWizardMessages.ProjectsWorkbookPage_chooseProjects_title); dialog.setHelpAvailable(false); if (dialog.open() == Window.OK) { Object[] result = dialog.getResult(); CPListElement[] cpElements = new CPListElement[result.length]; for (int i = 0; i < result.length; i++) { IJavaScriptProject curr = (IJavaScriptProject) result[i]; cpElements[i] = new CPListElement( fCurrJProject, IIncludePathEntry.CPE_PROJECT, curr.getPath(), curr.getResource()); } return cpElements; } } catch (JavaScriptModelException e) { return null; } return null; }
private void updateClasspathList() { List projelements = fProjectsList.getElements(); boolean remove = false; List cpelements = fClassPathList.getElements(); // backwards, as entries will be deleted for (int i = cpelements.size() - 1; i >= 0; i--) { CPListElement cpe = (CPListElement) cpelements.get(i); if (isEntryKind(cpe.getEntryKind())) { if (!projelements.remove(cpe)) { cpelements.remove(i); remove = true; } } } for (int i = 0; i < projelements.size(); i++) { cpelements.add(projelements.get(i)); } if (remove || (projelements.size() > 0)) { fClassPathList.setElements(cpelements); } }