/** * */ package org.nightlabs.jfire.reporting.admin.ui.category.editor; import org.nightlabs.base.ui.entity.editor.EntityEditor; import org.nightlabs.base.ui.entity.editor.IEntityEditorPageController; import org.nightlabs.jdo.NLJDOHelper; import org.nightlabs.jfire.base.ui.entity.editor.ActiveEntityEditorPageController; import org.nightlabs.jfire.reporting.admin.ui.layout.editor.IReportRegistryItemEditorInput; import org.nightlabs.jfire.reporting.dao.ReportRegistryItemDAO; import org.nightlabs.jfire.reporting.layout.ReportRegistryItem; import org.nightlabs.jfire.reporting.layout.id.ReportRegistryItemID; import org.nightlabs.progress.ProgressMonitor; /** * {@link IEntityEditorPageController} that loads a {@link ReportRegistryItem}. * Fetch-groups defined in constructor. * * @author Alexander Bieber <!-- alex [AT] nightlabs [DOT] de --> */ public class ReportRegistryItemPageController extends ActiveEntityEditorPageController<ReportRegistryItem> { private String[] fetchGroups; private ReportRegistryItemID reportRegistryItemID; /** * @param editor */ public ReportRegistryItemPageController(EntityEditor editor, String[] fetchGroups) { super(editor); this.fetchGroups = fetchGroups; reportRegistryItemID = ((IReportRegistryItemEditorInput) editor.getEditorInput()).getReportRegistryItemID(); } /** * @param editor * @param startBackgroundLoading */ public ReportRegistryItemPageController(EntityEditor editor, boolean startBackgroundLoading) { super(editor, startBackgroundLoading); } /* (non-Javadoc) * @see org.nightlabs.jfire.base.ui.entity.editor.ActiveEntityEditorPageController#getEntityFetchGroups() */ @Override protected String[] getEntityFetchGroups() { return fetchGroups; } /* (non-Javadoc) * @see org.nightlabs.jfire.base.ui.entity.editor.ActiveEntityEditorPageController#retrieveEntity(org.nightlabs.progress.ProgressMonitor) */ @Override protected ReportRegistryItem retrieveEntity(ProgressMonitor monitor) { return ReportRegistryItemDAO.sharedInstance().getReportRegistryItem(reportRegistryItemID, fetchGroups, monitor); } /* (non-Javadoc) * @see org.nightlabs.jfire.base.ui.entity.editor.ActiveEntityEditorPageController#storeEntity(java.lang.Object, org.nightlabs.progress.ProgressMonitor) */ @Override protected ReportRegistryItem storeEntity(ReportRegistryItem reportRegistryItem, ProgressMonitor monitor) { try { return ReportRegistryItemDAO.sharedInstance().storeReportRegistryItem( reportRegistryItem, true, fetchGroups, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, monitor); } catch (Exception e) { throw new RuntimeException(e); } } }