package org.nightlabs.jfire.voucher.ui.articlecontainer.detail;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.eclipse.swt.widgets.Composite;
import org.nightlabs.jfire.store.ProductType;
import org.nightlabs.jfire.trade.Article;
import org.nightlabs.jfire.trade.ArticleCarrier;
import org.nightlabs.jfire.trade.ui.articlecontainer.detail.AbstractArticleEdit;
public class ArticleEdit extends AbstractArticleEdit
{
private ArticleEditComposite articleEditComposite;
@Override
protected Composite _createComposite(Composite parent)
{
articleEditComposite = new ArticleEditComposite(parent, this);
return articleEditComposite;
}
@Override
public Set<? extends ArticleCarrier> addArticles(Set<? extends ArticleCarrier> articleCarriers)
{
Class<? extends ProductType> productTypeClass = getArticleProductTypeClassGroup().getProductTypeClass();
Set<ArticleCarrier> accepted = null;
for (Iterator<? extends ArticleCarrier> it = articleCarriers.iterator(); it.hasNext(); ) {
ArticleCarrier articleCarrier = it.next();
if (productTypeClass.equals(articleCarrier.getArticle().getProductType().getClass())) {
if (accepted == null)
accepted = new HashSet<ArticleCarrier>(articleCarriers.size());
accepted.add(articleCarrier);
it.remove();
}
}
if (accepted != null) {
_addArticleCarriers(accepted);
articleEditComposite.refreshUI();
}
return articleCarriers; // we could return null here, if it's empty, but there's no advantage...it doesn't matter
}
@Override
public Set<? extends Article> getSelectedArticles()
{
return articleEditComposite.getSelectedArticles();
}
// @Implement
// public void removeArticles(Set<? extends Article> articles)
// {
// _removeArticles(articles);
// articleEditComposite.refreshUI();
// }
@Override
public Set<? extends Article> setSelectedArticles(Set<? extends Article> articles)
{
return articleEditComposite.setSelectedArticles(articles);
}
}