package org.nightlabs.jfire.issuetracking.admin.ui.overview.issueproperty; import javax.jdo.FetchPlan; import org.nightlabs.base.ui.entity.editor.EntityEditor; import org.nightlabs.base.ui.entity.editor.EntityEditorPageController; import org.nightlabs.jdo.NLJDOHelper; import org.nightlabs.jfire.issue.IssuePriority; import org.nightlabs.jfire.issue.IssueResolution; import org.nightlabs.jfire.issue.IssueSeverityType; import org.nightlabs.jfire.issue.IssueType; import org.nightlabs.jfire.issue.dao.IssueTypeDAO; import org.nightlabs.jfire.issue.id.IssueTypeID; import org.nightlabs.jfire.issuetracking.admin.ui.resource.Messages; import org.nightlabs.progress.NullProgressMonitor; import org.nightlabs.progress.ProgressMonitor; /** * @author Chairat Kongarayawetchakun - chairat [AT] nightlabs [DOT] de * */ public class IssueTypeEditorPageController extends EntityEditorPageController { /** * The fetch groups of issue data. */ public static final String[] FETCH_GROUPS = new String[] { FetchPlan.DEFAULT, IssueType.FETCH_GROUP_THIS_ISSUE_TYPE, IssueSeverityType.FETCH_GROUP_THIS_ISSUE_SEVERITY_TYPE, IssueResolution.FETCH_GROUP_NAME, IssuePriority.FETCH_GROUP_NAME}; private IssueTypeID issueTypeID; private IssueType issueType; public IssueTypeEditorPageController(EntityEditor editor) { super(editor); } public void doLoad(ProgressMonitor monitor) { monitor.beginTask(Messages.getString("org.nightlabs.jfire.issuetracking.admin.ui.overview.issueproperty.IssueTypeEditorPageController.monitor.loadIssueTypes.text"), 100); //$NON-NLS-1$ IssueTypeEditorInput input = (IssueTypeEditorInput)getEntityEditor().getEditorInput(); this.issueTypeID = input.getJDOObjectID(); issueType = IssueTypeDAO.sharedInstance().getIssueType(issueTypeID, FETCH_GROUPS, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, new NullProgressMonitor()); monitor.done(); setLoaded(true); // must be done before fireModifyEvent! fireModifyEvent(null, issueType); } public boolean doSave(ProgressMonitor monitor) { IssueTypeDAO.sharedInstance().storeIssueTypes(issueType, FETCH_GROUPS, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, new NullProgressMonitor()); return true; } public IssueTypeID getIssueTypeID() { return issueTypeID; } public IssueType getIssueType() { return issueType; } }