/*
* Carrot2 project.
*
* Copyright (C) 2002-2016, Dawid Weiss, Stanisław Osiński.
* All rights reserved.
*
* Refer to the full license file "carrot2.LICENSE"
* in the root folder of the repository checkout or at:
* http://www.carrot2.org/carrot2.LICENSE
*/
package org.carrot2.workbench.core.ui;
import java.util.Map;
import org.carrot2.core.IClusteringAlgorithm;
import org.carrot2.util.attribute.AttributeValueSet;
import org.eclipse.jface.action.Action;
import org.eclipse.swt.widgets.Event;
/**
* Sets {@link IClusteringAlgorithm}'s default values used for subsequent requests.
*/
final class SetNewDefaultsAction extends Action
{
private final SearchInput searchInput;
public SetNewDefaultsAction(SearchInput searchInput)
{
super("Set as defaults for new queries");
this.searchInput = searchInput;
}
@Override
public void runWithEvent(Event event)
{
// Collect all default @Input attributes.
final AttributeValueSet defaults =
SaveAttributesAction.getDefaultAttributeValueSet(searchInput.getAlgorithmId());
final Map<String, Object> overrides =
searchInput.getAttributeValueSet().getAttributeValues();
overrides.keySet().retainAll(defaults.getAttributeValues().keySet());
// Find the SearchInputView and set the editor's attribute values as defaults.
final SearchInputView searchView = SearchInputView.getView();
for (Map.Entry<String, Object> e : overrides.entrySet())
{
searchView.setAttribute(e.getKey(), e.getValue());
}
}
}