Search in sources :

Example 1 with MarketplaceFilter

use of org.eclipse.epp.internal.mpc.ui.wizards.MarketplaceFilter in project epp.mpc by eclipse.

the class MarketplaceWizardCommand method createConfiguration.

@Override
protected MarketplaceCatalogConfiguration createConfiguration(final MarketplaceCatalog catalog, ExecutionEvent event) {
    MarketplaceCatalogConfiguration configuration = super.createConfiguration(catalog, event);
    if (configuration == null) {
        // errors have already been logged, just return
        return null;
    }
    configuration.getFilters().clear();
    final ComboTagFilter marketFilter = new ComboTagFilter() {

        @Override
        public void catalogUpdated(boolean wasCancelled) {
            List<Tag> choices = new ArrayList<Tag>();
            List<IMarket> markets = catalog.getMarkets();
            for (IMarket market : markets) {
                Tag marketTag = new Tag(IMarket.class, market.getId(), market.getName());
                marketTag.setData(market);
                choices.add(marketTag);
            }
            setChoices(choices);
        }
    };
    marketFilter.setSelectAllOnNoSelection(true);
    marketFilter.setNoSelectionLabel(Messages.MarketplaceWizardCommand_allMarkets);
    marketFilter.setTagClassification(ICategory.class);
    marketFilter.setChoices(new ArrayList<Tag>());
    final ComboTagFilter marketCategoryTagFilter = new ComboTagFilter() {

        @Override
        public void catalogUpdated(boolean wasCancelled) {
            updateCategoryChoices(this, marketFilter);
        }
    };
    marketCategoryTagFilter.setSelectAllOnNoSelection(true);
    marketCategoryTagFilter.setNoSelectionLabel(Messages.MarketplaceWizardCommand_allCategories);
    marketCategoryTagFilter.setTagClassification(ICategory.class);
    marketCategoryTagFilter.setChoices(new ArrayList<Tag>());
    final IPropertyChangeListener marketListener = new IPropertyChangeListener() {

        public void propertyChange(PropertyChangeEvent event) {
            final String property = event.getProperty();
            if (AbstractTagFilter.PROP_SELECTED.equals(property)) {
                updateCategoryChoices(marketCategoryTagFilter, marketFilter);
            }
        }
    };
    marketFilter.addPropertyChangeListener(marketListener);
    configuration.getFilters().add(marketFilter);
    configuration.getFilters().add(marketCategoryTagFilter);
    configuration.setInitialState(wizardState);
    if (operations != null && !operations.isEmpty()) {
        configuration.setInitialOperations(operations);
    }
    for (CatalogFilter filter : configuration.getFilters()) {
        ((MarketplaceFilter) filter).setCatalog(catalog);
    }
    return configuration;
}
Also used : IPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener) PropertyChangeEvent(org.eclipse.jface.util.PropertyChangeEvent) MarketplaceFilter(org.eclipse.epp.internal.mpc.ui.wizards.MarketplaceFilter) ArrayList(java.util.ArrayList) CatalogFilter(org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogFilter) MarketplaceCatalogConfiguration(org.eclipse.epp.internal.mpc.ui.wizards.MarketplaceCatalogConfiguration) Tag(org.eclipse.equinox.internal.p2.discovery.model.Tag) ComboTagFilter(org.eclipse.epp.internal.mpc.ui.wizards.ComboTagFilter) IMarket(org.eclipse.epp.mpc.core.model.IMarket)

Aggregations

ArrayList (java.util.ArrayList)1 ComboTagFilter (org.eclipse.epp.internal.mpc.ui.wizards.ComboTagFilter)1 MarketplaceCatalogConfiguration (org.eclipse.epp.internal.mpc.ui.wizards.MarketplaceCatalogConfiguration)1 MarketplaceFilter (org.eclipse.epp.internal.mpc.ui.wizards.MarketplaceFilter)1 IMarket (org.eclipse.epp.mpc.core.model.IMarket)1 Tag (org.eclipse.equinox.internal.p2.discovery.model.Tag)1 CatalogFilter (org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogFilter)1 IPropertyChangeListener (org.eclipse.jface.util.IPropertyChangeListener)1 PropertyChangeEvent (org.eclipse.jface.util.PropertyChangeEvent)1