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 | |
} | |
} |