/** * */ package org.nightlabs.jfire.issuetracking.trade.ui.issuelink; import java.util.Collection; import java.util.Set; import javax.jdo.FetchPlan; import org.eclipse.swt.graphics.Image; import org.nightlabs.base.ui.resource.SharedImages; import org.nightlabs.jdo.NLJDOHelper; import org.nightlabs.jfire.issue.IssueLink; import org.nightlabs.jfire.issuetracking.trade.ui.IssueTrackingTradePlugin; import org.nightlabs.jfire.issuetracking.trade.ui.resource.Messages; import org.nightlabs.jfire.issuetracking.ui.issuelink.AbstractIssueLinkHandler; import org.nightlabs.jfire.trade.ArticleContainerUtil; import org.nightlabs.jfire.trade.Offer; import org.nightlabs.jfire.trade.dao.OfferDAO; import org.nightlabs.jfire.trade.id.OfferID; import org.nightlabs.jfire.trade.ui.overview.offer.action.EditOfferAction; import org.nightlabs.l10n.GlobalDateFormatter; import org.nightlabs.l10n.IDateFormatter; import org.nightlabs.progress.ProgressMonitor; /** * @author chairatk * */ public class IssueLinkHandlerOffer extends AbstractIssueLinkHandler<OfferID, Offer> { @Override public String getLinkedObjectName(IssueLink issueLink, Offer offer) { return String.format( Messages.getString("org.nightlabs.jfire.issuetracking.trade.ui.issuelink.IssueLinkHandlerOffer.offer.name"), //$NON-NLS-1$ // linkedObject.getPrimaryKey()); ArticleContainerUtil.getArticleContainerID(offer), GlobalDateFormatter.sharedInstance().formatDate(offer.getFinalizeDT(), IDateFormatter.FLAGS_DATE_SHORT)); } @Override public Image getLinkedObjectImage(IssueLink issueLink, Offer linkedObject) { return SharedImages.getSharedImageDescriptor( IssueTrackingTradePlugin.getDefault(), IssueLinkHandlerOffer.class, "LinkedObject").createImage(); //$NON-NLS-1$ } @Override public void openLinkedObject(IssueLink issueLink, OfferID linkedObjectID) { EditOfferAction editAction = new EditOfferAction(); editAction.setArticleContainerID(linkedObjectID); editAction.run(); } @Override protected Collection<Offer> _getLinkedObjects(Set<IssueLink> issueLinks, Set<OfferID> linkedObjectIDs, ProgressMonitor monitor) { return OfferDAO.sharedInstance().getOffers( linkedObjectIDs, new String[] { FetchPlan.DEFAULT }, // TODO do we need more? NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, monitor); } }