From 40dc2bd0d91d8f153a761ab98f845e2a70219fdd Mon Sep 17 00:00:00 2001 From: Misha Date: Mon, 30 Nov 2015 18:03:52 +0200 Subject: [PATCH] Changed issue status to depend on different issue type values --- .../business/logs/entities/IssueLog.java | 6 +-- .../logs/entities/IssueStatusEnum.java | 26 ---------- .../src/main/resources/db.changelog-1.5.xml | 2 +- .../business/logs/entities/Logs.hbm.xml | 3 ++ .../web/logs/IssueLogCRUDController.java | 50 ++++++++++++------- .../src/main/webapp/logs/_editIssueLog.zul | 13 +++-- 6 files changed, 49 insertions(+), 51 deletions(-) delete mode 100644 libreplan-business/src/main/java/org/libreplan/business/logs/entities/IssueStatusEnum.java diff --git a/libreplan-business/src/main/java/org/libreplan/business/logs/entities/IssueLog.java b/libreplan-business/src/main/java/org/libreplan/business/logs/entities/IssueLog.java index 735135b55..29daeb4b4 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/logs/entities/IssueLog.java +++ b/libreplan-business/src/main/java/org/libreplan/business/logs/entities/IssueLog.java @@ -35,7 +35,7 @@ import org.libreplan.business.users.entities.User; public class IssueLog extends ProjectLog { private IssueTypeEnum type = IssueTypeEnum.getDefault(); - private IssueStatusEnum status = IssueStatusEnum.getDefault(); + private String status; private LowMediumHighEnum priority = LowMediumHighEnum.getDefault(); private LowMediumHighEnum severity = LowMediumHighEnum.getDefault(); private Date dateRaised; @@ -69,11 +69,11 @@ public class IssueLog extends ProjectLog { this.type = type; } - public IssueStatusEnum getStatus() { + public String getStatus() { return status; } - public void setStatus(IssueStatusEnum status) { + public void setStatus(String status) { this.status = status; } diff --git a/libreplan-business/src/main/java/org/libreplan/business/logs/entities/IssueStatusEnum.java b/libreplan-business/src/main/java/org/libreplan/business/logs/entities/IssueStatusEnum.java deleted file mode 100644 index 2b79a8daa..000000000 --- a/libreplan-business/src/main/java/org/libreplan/business/logs/entities/IssueStatusEnum.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.libreplan.business.logs.entities; -import static org.libreplan.business.i18n.I18nHelper._; -/** - * Defines INVESTIGATING, ESCALATED, RESOLVED enums - * to be used as data type in - * {@link IssueLog} - * - * @author Misha Gozhda - */ -public enum IssueStatusEnum { - INVESTIGATING(_("INVESTIGATING")), ESCALATED(_("ESCALATED")), RESOLVED(_("RESOLVED")); - - private final String issueStatusEnum; - - IssueStatusEnum(String issueStatusEnum) { - this.issueStatusEnum = issueStatusEnum; - } - - public String getDisplayName() { - return issueStatusEnum; - } - - public static IssueStatusEnum getDefault() { - return IssueStatusEnum.INVESTIGATING; - } -} diff --git a/libreplan-business/src/main/resources/db.changelog-1.5.xml b/libreplan-business/src/main/resources/db.changelog-1.5.xml index 0a3ca2f12..35131457d 100644 --- a/libreplan-business/src/main/resources/db.changelog-1.5.xml +++ b/libreplan-business/src/main/resources/db.changelog-1.5.xml @@ -99,4 +99,4 @@ /> - \ No newline at end of file + diff --git a/libreplan-business/src/main/resources/org/libreplan/business/logs/entities/Logs.hbm.xml b/libreplan-business/src/main/resources/org/libreplan/business/logs/entities/Logs.hbm.xml index eab2e621a..9fbf1086b 100644 --- a/libreplan-business/src/main/resources/org/libreplan/business/logs/entities/Logs.hbm.xml +++ b/libreplan-business/src/main/resources/org/libreplan/business/logs/entities/Logs.hbm.xml @@ -49,6 +49,9 @@ + + + diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/logs/IssueLogCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/logs/IssueLogCRUDController.java index c964ac07c..cbb31ece5 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/logs/IssueLogCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/logs/IssueLogCRUDController.java @@ -29,7 +29,6 @@ import org.apache.commons.logging.LogFactory; import org.libreplan.business.common.exceptions.InstanceNotFoundException; import org.libreplan.business.common.exceptions.ValidationException; import org.libreplan.business.logs.entities.IssueLog; -import org.libreplan.business.logs.entities.IssueStatusEnum; import org.libreplan.business.logs.entities.IssueTypeEnum; import org.libreplan.business.logs.entities.LowMediumHighEnum; import org.libreplan.business.orders.entities.Order; @@ -46,9 +45,6 @@ import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; import org.zkoss.zul.*; -import org.zkoss.zk.ui.Executions; - -import javax.swing.*; /** * Controller for IssueLog CRUD actions @@ -70,15 +66,17 @@ public class IssueLogCRUDController extends BaseCRUDController { private BandboxSearch bdUserIssueLog; + private Listbox status; + @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); + status = (Listbox)comp.getFellow("editWindow").getFellow("listIssueLogStatus"); comp.setVariable("issueLogController", this, true); showListWindow(); initializeOrderComponent(); initializeUserComponent(); bdProjectIssueLog.setDisabled(!LogsController.getProjectNameVisibility()); - } /** @@ -145,15 +143,8 @@ public class IssueLogCRUDController extends BaseCRUDController { item.setLabel(displayName); } }; - public static ListitemRenderer issueStatusRenderer = new ListitemRenderer() { - @Override - public void render(org.zkoss.zul.Listitem item, Object data) - throws Exception { - IssueStatusEnum issueStatusEnum = (IssueStatusEnum) data; - String displayName = issueStatusEnum.getDisplayName(); - item.setLabel(displayName); - } - }; + + public static ListitemRenderer lowMediumHighEnumRenderer = new ListitemRenderer() { @Override @@ -272,10 +263,35 @@ public class IssueLogCRUDController extends BaseCRUDController { } /** - * Returns {@link IssueStatusEnum} values + * Returns {@link ArrayList} values */ - public IssueStatusEnum[] getIssueStatusEnum() { - return IssueStatusEnum.values(); + public ArrayList getIssueStatusEnum() { + ArrayList result = new ArrayList(); + if (getIssueLog().getType() == IssueTypeEnum.REQUEST_FOR_CHANGE){ + result.add(_("ESSENTIAL")); + result.add(_("IMPORTANT")); + result.add(_("USEFUL")); + result.add(_("NOT IMPORTANT FOR NOW")); + return result; + } + if (getIssueLog().getType() == IssueTypeEnum.PROBLEM_OR_CONCERN) { + result.add(_("MINOR")); + result.add(_("SIGNIFICANT")); + result.add(_("MAJOR")); + result.add(_("CRITICAL")); + return result; + } + + result.add(_("LOW")); + result.add(_("MEDIUM")); + result.add(_("HIGH")); + return result; + } + + public void updateStatus() { + ListModelList model = new ListModelList(getIssueStatusEnum()); + status.setModel(model); + status.setSelectedItem(status.getItemAtIndex(0)); } /** diff --git a/libreplan-webapp/src/main/webapp/logs/_editIssueLog.zul b/libreplan-webapp/src/main/webapp/logs/_editIssueLog.zul index 371f846e3..7126cc8c5 100644 --- a/libreplan-webapp/src/main/webapp/logs/_editIssueLog.zul +++ b/libreplan-webapp/src/main/webapp/logs/_editIssueLog.zul @@ -53,13 +53,18 @@ + itemRenderer="@{issueLogController.issueTypeRenderer}" + onSelect="issueLogController.updateStatus()"/>