package org.nightlabs.jfire.trade.quicksale.ui;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IPartListener2;
import org.eclipse.ui.IWorkbenchPartReference;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.forms.editor.IFormPage;
import org.nightlabs.base.ui.login.LoginState;
import org.nightlabs.base.ui.part.PartAdapter;
import org.nightlabs.base.ui.util.RCPUtil;
import org.nightlabs.jfire.base.login.ui.Login;
import org.nightlabs.jfire.trade.ui.articlecontainer.detail.AbstractArticleContainerEditor;
import org.nightlabs.jfire.trade.ui.articlecontainer.detail.ArticleContainerEdit;
import org.nightlabs.jfire.trade.ui.articlecontainer.detail.ArticleContainerEditorInput;
import org.nightlabs.jfire.trade.ui.articlecontainer.detail.ArticleContainerEditorPage;
/**
* @author Daniel.Mazurek [at] NightLabs [dot] de
*
*/
public class ArticleContainerQuickSaleEditor
extends AbstractArticleContainerEditor
{
public static final String ID_EDITOR = ArticleContainerQuickSaleEditor.class.getName();
private ArticleContainerEdit articleContainerEdit;
@Override
public ArticleContainerEdit getArticleContainerEdit() {
if (articleContainerEdit == null) {
IFormPage page = findPage(ArticleContainerEditorPage.PAGE_ID);
if (page instanceof ArticleContainerQuickSaleEditorPage)
articleContainerEdit = ((ArticleContainerQuickSaleEditorPage) page).getArticleContainerEdit();
}
return articleContainerEdit;
}
@Override
public void init(IEditorSite site, IEditorInput input)
throws PartInitException
{
super.init(site, input);
if (!(input instanceof ArticleContainerEditorInput))
throw new PartInitException("Invalid Input: Must be an instance of ArticleContainerEditorInput! But is: " + (input == null ? null : input.getClass().getName())); //$NON-NLS-1$
setPartName(input.getName());
ImageDescriptor img = input.getImageDescriptor();
if (img != null)
setTitleImage(img.createImage());
RCPUtil.getActiveWorkbenchPage().addPartListener(quickSaleEditorListener);
}
private IPartListener2 quickSaleEditorListener = new PartAdapter()
{
public void partClosed(IWorkbenchPartReference ref)
{
if (ref.getPart(true).equals(ArticleContainerQuickSaleEditor.this)) {
if (RCPUtil.getActiveWorkbenchPage() != null &&
Login.sharedInstance().getLoginState() == LoginState.LOGGED_IN)
{
QuickSalePerspective.checkOrderOpen(RCPUtil.getActivePerspectiveID());
}
if (RCPUtil.getActiveWorkbenchPage() != null)
RCPUtil.getActiveWorkbenchPage().removePartListener(this);
}
}
};
}