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()); | |
} | |
} |