package org.nightlabs.jfire.trade.admin.ui.editor.overview; import javax.jdo.FetchPlan; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.nightlabs.jfire.store.ProductType; import org.nightlabs.jfire.store.ProductTypeLocal; import org.nightlabs.jfire.trade.LegalEntity; import org.nightlabs.jfire.trade.admin.ui.resource.Messages; /** * @author Daniel Mazurek - Daniel.Mazurek [dot] nightlabs [dot] de * */ public class ProductTypeDetailPageOverviewStatusProvider extends AbstractProductTypeOverviewPageStatusProvider { private static final String[] FETCH_GROUPS = new String[] {FetchPlan.DEFAULT, ProductType.FETCH_GROUP_NAME, ProductType.FETCH_GROUP_PRODUCT_TYPE_LOCAL, ProductTypeLocal.FETCH_GROUP_NESTED_PRODUCT_TYPE_LOCALS, ProductType.FETCH_GROUP_OWNER, ProductType.FETCH_GROUP_VENDOR, LegalEntity.FETCH_GROUP_PERSON}; @Override protected String[] getFetchGroups() { return FETCH_GROUPS; } /* (non-Javadoc) * @see org.nightlabs.base.ui.entity.editor.overview.IOverviewPageStatusProvider#resolveStatus(org.nightlabs.progress.ProgressMonitor) */ @Override public IStatus createStatus(ProductType productType) { StringBuilder sb = new StringBuilder(); if (productType != null) { String separator = "\n"; //$NON-NLS-1$ sb.append(Messages.getString("org.nightlabs.jfire.trade.admin.ui.editor.overview.ProductTypeDetailPageOverviewStatusProvider.label.name.text")); //$NON-NLS-1$ sb.append(productType.getName().getText()); sb.append(separator); sb.append(Messages.getString("org.nightlabs.jfire.trade.admin.ui.editor.overview.ProductTypeDetailPageOverviewStatusProvider.label.saleStatus.text")); //$NON-NLS-1$ sb.append(getSaleStatusString(productType)); sb.append(separator); sb.append(Messages.getString("org.nightlabs.jfire.trade.admin.ui.editor.overview.ProductTypeDetailPageOverviewStatusProvider.label.amountNestedProductTyps.text")); //$NON-NLS-1$ sb.append(productType.getProductTypeLocal().getNestedProductTypeLocals().size()); sb.append(separator); sb.append(Messages.getString("org.nightlabs.jfire.trade.admin.ui.editor.overview.ProductTypeDetailPageOverviewStatusProvider.label.owner.text")); //$NON-NLS-1$ sb.append(productType.getOwner().getPerson().getDisplayName()); sb.append(separator); sb.append(Messages.getString("org.nightlabs.jfire.trade.admin.ui.editor.overview.ProductTypeDetailPageOverviewStatusProvider.label.vendor.text")); //$NON-NLS-1$ sb.append(productType.getVendor().getPerson().getDisplayName()); } return new Status(IStatus.OK, getStatusPluginId(), sb.toString()); } protected String getSaleStatusString(ProductType productType) { if (productType.isClosed()) { return Messages.getString("org.nightlabs.jfire.trade.admin.ui.editor.overview.ProductTypeDetailPageOverviewStatusProvider.label.closed"); //$NON-NLS-1$ } else if (productType.isSaleable()) { return Messages.getString("org.nightlabs.jfire.trade.admin.ui.editor.overview.ProductTypeDetailPageOverviewStatusProvider.label.saleable"); //$NON-NLS-1$ } else if (productType.isPublished()) { return Messages.getString("org.nightlabs.jfire.trade.admin.ui.editor.overview.ProductTypeDetailPageOverviewStatusProvider.label.published"); //$NON-NLS-1$ } else if (productType.isConfirmed()) { return Messages.getString("org.nightlabs.jfire.trade.admin.ui.editor.overview.ProductTypeDetailPageOverviewStatusProvider.label.confirmed"); //$NON-NLS-1$ } return ""; //$NON-NLS-1$ } }