private void checkMirrors(final Change event) { if ((fRequireLoad & (REQUIRE_CRAN | REQUIRE_BIOC)) != 0) { return; } SelectedRepos selected = fSelectedRepos; fAllCRAN = ConstArrayList.concat(fCustomCRAN, fRCRAN); RRepo selectedCRAN = selected.getCRANMirror(); if (selected.getCRANMirror() != null) { selectedCRAN = Util.findRepo(fAllCRAN, selectedCRAN); } else if (fFirstTime && fSelectedCRANInR != null) { selectedCRAN = Util.getRepoByURL(fAllCRAN, fSelectedCRANInR); } if (selectedCRAN == null) { fRequireConfirm |= REQUIRE_CRAN; selectedCRAN = PreferencesUtil.getInstancePrefs().getPreferenceValue(LAST_CRAN_PREF); if (selectedCRAN != null) { selectedCRAN = Util.findRepo(fAllCRAN, selectedCRAN); } if (!fCustomCRAN.isEmpty() && (selectedCRAN == null || !selectedCRAN.getId().startsWith(RRepo.CUSTOM_PREFIX))) { selectedCRAN = fCustomCRAN.get(0); } if (fFirstTime && selectedCRAN == null) { selectedCRAN = fRCRANByCountry; } } RRepo selectedBioC = selected.getBioCMirror(); fAllBioC = ConstArrayList.concat(fCustomBioC, fRBioC); if (selectedBioC != null) { selectedBioC = Util.findRepo(fAllBioC, selectedBioC); } else if (fFirstTime && fSelectedBioCInR != null) { selectedBioC = RPkgUtil.getRepoByURL(fAllBioC, fSelectedBioCInR); } if (selectedBioC == null) { fRequireConfirm |= REQUIRE_BIOC; selectedBioC = PreferencesUtil.getInstancePrefs().getPreferenceValue(LAST_BIOC_PREF); if (!fCustomBioC.isEmpty() && (selectedBioC == null || !selectedBioC.getId().startsWith(RRepo.CUSTOM_PREFIX))) { selectedBioC = fCustomBioC.get(0); } if (fFirstTime && selectedBioC == null) { selectedBioC = Util.getRepoByURL(fAllBioC, "http://www.bioconductor.org"); // $NON-NLS-1$ } } selected = new SelectedRepos(selected.getRepos(), selectedCRAN, fBioCVersion, selectedBioC); if ((fRequireLoad & (REQUIRE_REPOS)) == 0) { for (final RRepo repo : fAllRepos) { if (repo instanceof RVarRepo) { ((RVarRepo) repo).updateURL(selected); } } } fSelectedRepos = selected; event.fPkgs = 1; }
private void setPkgs() { final Change event = fRTaskEvent; if (event.fNewPkgs instanceof FullRPkgSet) { fPkgsExt = (FullRPkgSet) event.fNewPkgs; fPkgsLight = null; } else if (event.fNewPkgs instanceof RPkgSet) { fPkgsExt = null; fPkgsLight = (RPkgSet) event.fNewPkgs; } if (event.fInstalledPkgs != null) { event.fPkgs |= INSTALLED; } }
private void runLoadPkgs( final ISelectedRepos repoSettings, final RService r, final IProgressMonitor monitor) throws CoreException { final boolean loadRepoPkgs = (fRequireLoad & (REQUIRE_REPO_PKGS)) != 0 && getReposStatus(repoSettings).isOK(); final boolean loadInstPkgs = ((fRequireLoad & (REQUIRE_INST_PKGS)) != 0); FullRPkgSet pkgs = null; if (loadRepoPkgs) { fRTaskEvent.fOldPkgs = getRPkgSet(); fRTaskEvent.fNewPkgs = pkgs = fPkgScanner.loadAvailable(repoSettings, r, monitor); } if (loadInstPkgs) { if (pkgs == null) { if (fPkgsExt != null) { pkgs = fPkgsExt.cloneAvailable(); } else { pkgs = new FullRPkgSet(0); } } checkInstalled(pkgs, r, monitor); updateRViews(repoSettings, pkgs, r, monitor); } if (pkgs != null) { getWriteLock().lock(); try { setPkgs(); if (loadRepoPkgs) { fRequireLoad &= ~REQUIRE_REPO_PKGS; fPkgsStamp = fRTaskEvent.fStamp; fRTaskEvent.fPkgs |= AVAILABLE; } if (loadInstPkgs) { fRequireLoad &= ~REQUIRE_INST_PKGS; } } finally { getWriteLock().unlock(); } } }