blob: bc89784babed07a4f0f11c23af905651ec709c15 [file] [log] [blame]
package org.eclipse.platform.discovery.compatibility.internal.contributors.impl;
import java.util.Collection;
import org.eclipse.platform.discovery.compatibility.internal.contributors.IDynamicRegistryContributor;
import org.eclipse.platform.discovery.compatibility.internal.contributors.impl.searchparams.SearchPageToSearchParamsUIAdapter;
import org.eclipse.platform.discovery.compatibility.internal.readers.ISearchPageDescription;
import org.eclipse.platform.discovery.runtime.internal.xp.IContributionsReader;
import org.eclipse.platform.discovery.ui.internal.xp.impl.CustomSearchParametersUiParser;
import org.w3c.dom.Element;
public class DynamicSearchUiContributor extends DynamicRegistryContributor<ISearchPageDescription> implements IDynamicRegistryContributor{
private final IdCalculator idCalculator = new IdCalculator();
public DynamicSearchUiContributor(
IContributionsReader<ISearchPageDescription> contributionsReader) {
super(contributionsReader, CustomSearchParametersUiParser.XP_ID, CustomSearchParametersUiParser.XP_ELEMENT_NAME);
}
@Override
protected String getFailureMessage(Collection<ISearchPageDescription> failedContributors) {
return "failed to contribute search param uis for the following search pages:" + failedContributors.toString();
}
@Override
protected String getContributionDescription(ISearchPageDescription data) {
return "search param ui for search page"+data;
}
@Override
protected void configureTargetElement(Element element,ISearchPageDescription data) {
element.setAttribute(CustomSearchParametersUiParser.ID_ARRT, idCalculator.calculateSearchParametersUiId(data));
element.setAttribute(CustomSearchParametersUiParser.SEARCH_PROVIDER_ID_ATTR, idCalculator.calculateSearchProviderId(data));
element.setAttribute(CustomSearchParametersUiParser.CLASS_ATTR, SearchPageToSearchParamsUIAdapter.class.getName());
}
}