import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* <p>
- * setPreferredNomenclaturalCode
+ * setPreferredNamedAreasForDistributionEditor
* </p>
*
- * @param preferredCode
- * a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode}
- * object.
+ * @param saveCheckedElements
+ * @param saveGrayedElements
+ */
+public static void setLastSelectedReference(
+ List<String> lastSelectedReferences) {
+
+ IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
+ preferenceStore.setValue(PreferencesUtil.LAST_SELECTED_REFERENCES, lastSelectedReferences.toString());
+ }
+
+/**
+ * <p>
+ * setPreferredNamedAreasForDistributionEditor
+ * </p>
+ *
+ * @param saveCheckedElements
+ * @param saveGrayedElements
+ */
+public static List<String> getLastSelectedReferences() {
+
+ IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
+ String lastSelected = preferenceStore.getString(PreferencesUtil.LAST_SELECTED_REFERENCES);
+ List<String> result = new ArrayList<>();
+ Collections.addAll(result, lastSelected.substring(1,lastSelected.length()-1).split(", "));
+ return result;
+ }
+
+
+/**
+ * <p>
+ * setPreferredNamedAreasForDistributionEditor
+ * </p>
+ *
+ * @param saveCheckedElements
+ * @param saveGrayedElements
*/
public static CdmPreference setPreferredNamedAreasForDistributionEditor(
String saveCheckedElements, String saveGrayedElements, boolean local) {
package eu.etaxonomy.taxeditor.ui.dialog.selection;
+import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.UUID;
+import org.apache.commons.lang.StringUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
import eu.etaxonomy.cdm.api.service.IReferenceService;
import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
import eu.etaxonomy.taxeditor.newWizard.NewReferenceWizard;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
protected static boolean isInReference = false;
private Reference currentReference;
+ List<String> lastSelectedReferences = null;
/**
* <p>select</p>
/** {@inheritDoc} */
@Override
protected Reference getPersistentObject(UUID cdmUuid) {
+ if (lastSelectedReferences == null){
+ lastSelectedReferences = new ArrayList<>();
+ }
+ if (lastSelectedReferences.size()<6){
+ lastSelectedReferences.add(cdmUuid.toString());
+ }else{
+ lastSelectedReferences.remove(0);
+ lastSelectedReferences.add(cdmUuid.toString());
+ }
+
+ PreferencesUtil.setLastSelectedReference(lastSelectedReferences);
return CdmStore.getService(IReferenceService.class).load(cdmUuid);
}
@Override
protected void callService(String pattern) {
- if (isInReference && currentReference != null){
+ if (StringUtils.isBlank(pattern) && lastSelectedReferences == null){
+ lastSelectedReferences = PreferencesUtil.getLastSelectedReferences();
+ Set<UUID> uuids = new HashSet<>();
+ for (String uuidString: lastSelectedReferences){
+ uuids.add(UUID.fromString(uuidString));
+ }
+ model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCacheForUUIDS(uuids);
+
+ } else if (isInReference && currentReference != null){
if (isUseIdentifier()){
List<IdentifiedEntityDTO<Reference>> list = CdmStore.getService(IReferenceService.class).listByIdentifierAbbrev(pattern, null, MatchMode.BEGINNING, limitOfInitialElements);
return new String[]{"New Reference"};
}
+ /** {@inheritDoc} */
+ @Override
+ protected void search() {
+ Control control =getSearchField();
+ String pattern = null;
+ if (control != null){
+ pattern = ((Text)control).getText();
+ callService(pattern);
+
+ fillContentProvider(null);
+ }
+ }
+
}