package org.nightlabs.jfire.trade.admin.ui.editor.overview; import org.eclipse.core.runtime.IStatus; import org.eclipse.ui.IEditorInput; import org.nightlabs.base.ui.entity.editor.overview.AbstractOverviewPageStatusProvider; import org.nightlabs.jdo.NLJDOHelper; import org.nightlabs.jfire.store.ProductType; import org.nightlabs.jfire.store.dao.ProductTypeDAO; import org.nightlabs.jfire.store.id.ProductTypeID; import org.nightlabs.jfire.trade.admin.ui.editor.ProductTypeEditorInput; import org.nightlabs.progress.ProgressMonitor; /** * @author Daniel Mazurek - Daniel.Mazurek [dot] nightlabs [dot] de * */ public abstract class AbstractProductTypeOverviewPageStatusProvider extends AbstractOverviewPageStatusProvider { private IStatus status; /* (non-Javadoc) * @see org.nightlabs.base.ui.entity.editor.overview.IOverviewPageStatusProvider#getStatus() */ @Override public IStatus getStatus() { return status; } /* (non-Javadoc) * @see org.nightlabs.base.ui.entity.editor.overview.IOverviewPageStatusProvider#isResolveStatusDeferred() */ @Override public boolean isResolveStatusDeferred() { return false; } /* (non-Javadoc) * @see org.nightlabs.base.ui.entity.editor.overview.IOverviewPageStatusProvider#resolveStatus(org.nightlabs.progress.ProgressMonitor) */ @Override public void resolveStatus(ProgressMonitor monitor) { if (getProductTypeID() != null) { ProductType productType = ProductTypeDAO.sharedInstance().getProductType(getProductTypeID(), getFetchGroups(), NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, monitor); status = createStatus(productType); } } protected ProductTypeID getProductTypeID() { IEditorInput editorInput = getEntityEditor().getEditorInput(); if (editorInput instanceof ProductTypeEditorInput) { ProductTypeEditorInput input = (ProductTypeEditorInput) editorInput; return input.getJDOObjectID(); } return null; } protected abstract String[] getFetchGroups(); protected abstract IStatus createStatus(ProductType productType); }