blob: 01bd079312267ae11a4aeec5f138b39e1e678853 [file] [log] [blame]
package org.eclipse.platform.discovery.destprefs.internal.prefpage.ui;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.platform.discovery.destprefs.api.ISearchDestinationConfigurator;
import org.eclipse.platform.discovery.destprefs.internal.xpparser.ISearchDestinationsConfiguratorDescription;
import org.eclipse.platform.discovery.destprefs.internal.xpparser.SearchDestinationsConfiguratorXPParser;
import org.eclipse.platform.discovery.runtime.api.ISearchDestination;
public class DestinationConfiguratorsPresenter implements IDestinationConfiguratorsPresenter {
private final SearchDestinationsConfiguratorXPParser configuratorParser;
private IDestinationConfiguratorsView view;
public DestinationConfiguratorsPresenter(final SearchDestinationsConfiguratorXPParser configuratorParser) {
this.configuratorParser = configuratorParser;
}
public void setView(IDestinationConfiguratorsView view) {
this.view = view;
}
@Override
public void destinationSelected(ISearchDestination destination) {
view.setAddEnabled(true);
view.setEditEnabled(true);
view.setRemoveEnabled(true);
}
@Override
public void categorySelected(String categoryId) {
// TODO Auto-generated method stub
}
@Override
public void addDestination(String destinationProviderId) {
ISearchDestinationsConfiguratorDescription configDescription = getConfigDescription(destinationProviderId);
ISearchDestinationConfigurator<?> configurator = configDescription.createConfigurator();
IStatus result = configurator.createDestination(view.getShell());
view.setStatus(result);
}
private ISearchDestinationsConfiguratorDescription getConfigDescription(String destinationProviderId) {
for(ISearchDestinationsConfiguratorDescription desc: configuratorParser.readContributions()) {
if(desc.destinationProviderId().equals(destinationProviderId)) {
return desc;
}
}
throw new RuntimeException("cannot find destination configurator for dest provider id:"+destinationProviderId);
}
@Override
public void editDestination(ISearchDestination destination) {
// TODO Auto-generated method stub
}
@Override
public void removeDestination(ISearchDestination destination) {
// TODO Auto-generated method stub
}
@Override
public void testDestination(ISearchDestination destination) {
// TODO Auto-generated method stub
}
}