Jira-integration: addHyperlink method is added and addCodeCell method is modified

create a hyperlink to jira if an order-element was a jira issue. This check has been
performed in addCodeCell method. order-elements which has a code starts with 'JIRA' are
order-elements that were imported from jira
This commit is contained in:
Miciele Ghiorghis 2012-10-24 14:01:49 +02:00 committed by Manuel Rego Casasnovas
parent c4d226ee56
commit cc0614c249

View file

@ -36,6 +36,7 @@ import java.util.Set;
import javax.annotation.Resource;
import org.apache.commons.lang.StringUtils;
import org.libreplan.business.common.daos.IConfigurationDAO;
import org.libreplan.business.orders.entities.Order;
import org.libreplan.business.orders.entities.OrderElement;
import org.libreplan.business.orders.entities.OrderLine;
@ -55,6 +56,7 @@ import org.libreplan.web.orders.assigntemplates.TemplateFinderPopup.IOnResult;
import org.libreplan.web.security.SecurityUtils;
import org.libreplan.web.templates.IOrderTemplatesControllerEntryPoints;
import org.libreplan.web.tree.TreeController;
import org.springframework.beans.factory.annotation.Autowired;
import org.zkoss.ganttz.IPredicate;
import org.zkoss.ganttz.util.ComponentsFinder;
import org.zkoss.zk.ui.Component;
@ -62,6 +64,7 @@ import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.WrongValueException;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zul.A;
import org.zkoss.zul.Button;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Constraint;
@ -78,6 +81,7 @@ import org.zkoss.zul.impl.api.InputElement;
/**
* Controller for {@link OrderElement} tree view of {@link Order} entities <br />
*
* @author Lorenzo Tilve Álvaro <ltilve@igalia.com>
* @author Manuel Rego Casasnovas <mrego@igalia.com>
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
@ -114,6 +118,11 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
private Popup filterOptionsPopup;
@Autowired
private IConfigurationDAO configurationDAO;
private String jiraUrl;
public List<org.libreplan.business.labels.entities.Label> getLabels() {
return orderModel.getLabels();
}
@ -274,6 +283,9 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
operationsForOrderElement.tree(tree)
.orderTemplates(this.orderTemplates);
jiraUrl = configurationDAO.getConfigurationWithReadOnlyTransaction()
.getJiraConfiguration().getJiraUrl();
disableCreateTemplateButtonIfNeeded(comp);
}
@ -413,6 +425,15 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
@Override
protected void addCodeCell(final OrderElement orderElement) {
setCodeFromJira(orderElement.getCode().startsWith("JIRA"));
if (codeFromJira) {
addHyperlink(orderElement);
} else {
addTextbox(orderElement);
}
}
private void addTextbox(final OrderElement orderElement) {
Textbox textBoxCode = new Textbox();
Util.bind(textBoxCode, new Util.Getter<String>() {
@Override
@ -446,6 +467,29 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
putCodeTextbox(orderElement, textBoxCode);
}
private void addHyperlink(final OrderElement orderElement) {
A hyperlink = new A();
Util.bind(hyperlink, new Util.Getter<String>() {
@Override
public String get() {
return jiraUrl;
}
}, new Util.Getter<String>() {
@Override
public String get() {
return orderElement.getCode();
}
});
if (orderModel.isCodeAutogenerated() || readOnly) {
hyperlink.setDisabled(true);
}
addCell(hyperlink);
}
void addInitDateCell(final OrderElement currentOrderElement) {
DynamicDatebox dinamicDatebox = new DynamicDatebox(
new DynamicDatebox.Getter<Date>() {