/** {@inheritDoc} */ public void okClicked() { setPrimaryValid(lBaseDN); setSecondaryValid(addRemove.getSelectedLabel()); final LinkedHashSet<Message> errors = new LinkedHashSet<Message>(); String baseDN = getSelectedBaseDN(); if (baseDN == null) { setPrimaryInvalid(lBaseDN); if (baseDNs.getItemCount() == 0) { errors.add(ERR_CTRL_PANEL_NO_BASE_DNS_DEFINED_LABEL.get()); } else { errors.add(ERR_CTRL_PANEL_MUST_SELECT_BASE_DN.get()); } } SortableListModel<AbstractIndexDescriptor> model = addRemove.getSelectedListModel(); if (model.getSize() == 0) { setSecondaryInvalid(addRemove.getSelectedLabel()); errors.add(ERR_CTRL_PANEL_MUST_SELECT_INDEX_TO_REBUILD.get()); } if (errors.isEmpty()) { ProgressDialog progressDialog = new ProgressDialog( Utilities.createFrame(), Utilities.getParentDialog(this), getTitle(), getInfo()); HashSet<String> baseDNs = new HashSet<String>(); baseDNs.add(getSelectedBaseDN()); RebuildIndexTask newTask = new RebuildIndexTask( getInfo(), progressDialog, baseDNs, addRemove.getSelectedListModel().getData()); for (Task task : getInfo().getTasks()) { task.canLaunch(newTask, errors); } boolean confirmed = true; if ((errors.isEmpty()) && isServerRunning()) { String backendName = newTask.getBackends().iterator().next(); confirmed = displayConfirmationDialog( INFO_CTRL_PANEL_CONFIRMATION_REQUIRED_SUMMARY.get(), INFO_CTRL_PANEL_CONFIRM_REBUILD_INDEX_DETAILS.get(backendName)); } if ((errors.isEmpty()) && confirmed) { launchOperation( newTask, INFO_CTRL_PANEL_REBUILDING_INDEXES_SUMMARY.get(baseDN), INFO_CTRL_PANEL_REBUILDING_INDEXES_SUCCESSFUL_SUMMARY.get(), INFO_CTRL_PANEL_REBUILDING_INDEXES_SUCCESSFUL_DETAILS.get(), ERR_CTRL_PANEL_REBUILDING_INDEXES_ERROR_SUMMARY.get(), null, ERR_CTRL_PANEL_REBUILDING_INDEXES_ERROR_DETAILS, progressDialog); progressDialog.setVisible(true); Utilities.getParentDialog(this).setVisible(false); } } if (errors.size() > 0) { displayErrorDialog(errors); } }