ItEr17S09CUCreacionDeOrganizacionsDeTraballoItEr16S11: Changing the list of items of orders for inclusion of a field code.
This commit is contained in:
parent
b44346d3aa
commit
7d41241bf2
8 changed files with 86 additions and 8 deletions
|
|
@ -7,6 +7,7 @@ import java.util.List;
|
|||
import org.hibernate.validator.NotEmpty;
|
||||
import org.hibernate.validator.NotNull;
|
||||
import org.navalplanner.business.planner.entities.TaskElement;
|
||||
import org.hibernate.validator.Valid;
|
||||
|
||||
/**
|
||||
* It represents an {@link Order} with its related information. <br />
|
||||
|
|
@ -25,6 +26,7 @@ public class Order implements IOrderLineGroup {
|
|||
@NotEmpty
|
||||
private String name;
|
||||
|
||||
|
||||
@NotNull
|
||||
private Date initDate;
|
||||
|
||||
|
|
@ -37,6 +39,7 @@ public class Order implements IOrderLineGroup {
|
|||
// TODO turn into a many to one relationship when Customer entity is defined
|
||||
private String customer;
|
||||
|
||||
@Valid
|
||||
private List<OrderElement> orderElements = new ArrayList<OrderElement>();
|
||||
|
||||
public Long getId() {
|
||||
|
|
@ -47,6 +50,7 @@ public class Order implements IOrderLineGroup {
|
|||
return version;
|
||||
}
|
||||
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,8 @@ import java.util.HashSet;
|
|||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.hibernate.validator.NotNull;
|
||||
|
||||
import org.hibernate.validator.NotEmpty;
|
||||
import org.navalplanner.business.planner.entities.TaskElement;
|
||||
|
||||
public abstract class OrderElement {
|
||||
|
|
@ -15,7 +16,7 @@ public abstract class OrderElement {
|
|||
|
||||
private Long version;
|
||||
|
||||
@NotNull
|
||||
@NotEmpty
|
||||
private String name;
|
||||
|
||||
private Date initDate;
|
||||
|
|
@ -28,6 +29,7 @@ public abstract class OrderElement {
|
|||
|
||||
private String description;
|
||||
|
||||
@NotEmpty
|
||||
private String code;
|
||||
|
||||
private Set<TaskElement> taskElements = new HashSet<TaskElement>();
|
||||
|
|
@ -51,10 +53,19 @@ public abstract class OrderElement {
|
|||
return name;
|
||||
}
|
||||
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public abstract boolean isLeaf();
|
||||
|
||||
public abstract List<OrderElement> getChildren();
|
||||
|
|
@ -145,4 +156,12 @@ public abstract class OrderElement {
|
|||
return (getHoursGroups().size() > 0);
|
||||
}
|
||||
|
||||
public boolean isFormatCodeValid(String code) {
|
||||
|
||||
if (code.contains("_")) return false;
|
||||
if (code.equals("")) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,12 +45,12 @@ public class OrderLine extends OrderElement {
|
|||
@Override
|
||||
public OrderLineGroup toContainer() {
|
||||
OrderLineGroup result = new OrderLineGroup();
|
||||
|
||||
result.setName(getName());
|
||||
result.setCode(getCode());
|
||||
result.setInitDate(getInitDate());
|
||||
result.setEndDate(getEndDate());
|
||||
this.setCode("");
|
||||
result.add(this);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ public class OrderServiceTest {
|
|||
Order order = createValidOrder();
|
||||
OrderLine orderLine = new OrderLine();
|
||||
orderLine.setName("bla");
|
||||
orderLine.setCode("00000000");
|
||||
orderLine.setWorkHours(10);
|
||||
order.add(orderLine);
|
||||
orderService.save(order);
|
||||
|
|
@ -138,6 +139,7 @@ public class OrderServiceTest {
|
|||
for (int i = 0; i < containers.length; i++) {
|
||||
containers[i] = new OrderLineGroup();
|
||||
containers[i].setName("bla");
|
||||
containers[i].setCode("000000000");
|
||||
order.add(containers[i]);
|
||||
}
|
||||
OrderLineGroup container = (OrderLineGroup) containers[0];
|
||||
|
|
@ -192,6 +194,7 @@ public class OrderServiceTest {
|
|||
private OrderLine createValidLeaf(String parameter) {
|
||||
OrderLine result = new OrderLine();
|
||||
result.setName(parameter);
|
||||
result.setCode("000000000");
|
||||
|
||||
HoursGroup hoursGroup = new HoursGroup(result);
|
||||
hoursGroup.setWorkingHours(0);
|
||||
|
|
@ -206,8 +209,10 @@ public class OrderServiceTest {
|
|||
final Order order = createValidOrder();
|
||||
OrderLineGroup container = new OrderLineGroup();
|
||||
container.setName("bla");
|
||||
container.setCode("000000000");
|
||||
OrderLine leaf = new OrderLine();
|
||||
leaf.setName("leaf");
|
||||
leaf.setCode("000000000");
|
||||
container.add(leaf);
|
||||
order.add(container);
|
||||
HoursGroup hoursGroup = new HoursGroup(leaf);
|
||||
|
|
@ -246,6 +251,7 @@ public class OrderServiceTest {
|
|||
|
||||
OrderLine orderLine = new OrderLine();
|
||||
orderLine.setName("Order element");
|
||||
orderLine.setCode("000000000");
|
||||
order.add(orderLine);
|
||||
|
||||
HoursGroup hoursGroup = new HoursGroup(orderLine);
|
||||
|
|
@ -303,7 +309,7 @@ public class OrderServiceTest {
|
|||
|
||||
OrderLine orderLine = new OrderLine();
|
||||
orderLine.setName("foo");
|
||||
|
||||
orderLine.setCode("000000000");
|
||||
order.add(orderLine);
|
||||
|
||||
orderService.save(order);
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ public class TaskElementServiceTest {
|
|||
private OrderLine createOrderLine() {
|
||||
OrderLine orderLine = new OrderLine();
|
||||
orderLine.setName("bla");
|
||||
orderLine.setCode("000000000");
|
||||
orderLine.addHoursGroup(new HoursGroup());
|
||||
Order order = new Order();
|
||||
order.setName("bla");
|
||||
|
|
@ -176,6 +177,7 @@ public class TaskElementServiceTest {
|
|||
public void aOrderLineGroupIsConvertedToATaskGroup() {
|
||||
OrderLineGroup orderLineGroup = new OrderLineGroup();
|
||||
orderLineGroup.setName("foo");
|
||||
orderLineGroup.setCode("000000000");
|
||||
TaskElement task = taskElementService
|
||||
.convertToInitialSchedule(orderLineGroup);
|
||||
assertThat(task, is(TaskGroup.class));
|
||||
|
|
@ -189,6 +191,7 @@ public class TaskElementServiceTest {
|
|||
public void aOrderLineWithOneHourIsConvertedToATask() {
|
||||
OrderLine orderLine = new OrderLine();
|
||||
orderLine.setName("bla");
|
||||
orderLine.setCode("000000000");
|
||||
HoursGroup hoursGroup = createHoursGroup(30);
|
||||
orderLine.addHoursGroup(hoursGroup);
|
||||
TaskElement taskElement = taskElementService
|
||||
|
|
@ -204,8 +207,10 @@ public class TaskElementServiceTest {
|
|||
public void theSublinesOfAnOrderLineGroupAreConverted() {
|
||||
OrderLineGroup orderLineGroup = new OrderLineGroup();
|
||||
orderLineGroup.setName("foo");
|
||||
orderLineGroup.setCode("000000000");
|
||||
OrderLine orderLine = new OrderLine();
|
||||
orderLine.setName("bla");
|
||||
orderLine.setCode("000000000");
|
||||
HoursGroup hoursGroup = createHoursGroup(30);
|
||||
orderLine.addHoursGroup(hoursGroup);
|
||||
orderLineGroup.add(orderLine);
|
||||
|
|
@ -226,6 +231,7 @@ public class TaskElementServiceTest {
|
|||
public void aOrderLineWithNoHoursIsRejected() {
|
||||
OrderLine orderLine = new OrderLine();
|
||||
orderLine.setName("bla");
|
||||
orderLine.setCode("000000000");
|
||||
taskElementService.convertToInitialSchedule(orderLine);
|
||||
}
|
||||
|
||||
|
|
@ -239,6 +245,7 @@ public class TaskElementServiceTest {
|
|||
public void aOrderLineWithMoreThanOneHourIsConvertedToATaskGroup() {
|
||||
OrderLine orderLine = new OrderLine();
|
||||
orderLine.setName("bla");
|
||||
orderLine.setCode("000000000");
|
||||
HoursGroup hours1 = createHoursGroup(30);
|
||||
orderLine.addHoursGroup(hours1);
|
||||
HoursGroup hours2 = createHoursGroup(10);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
package org.navalplanner.web.orders;
|
||||
|
||||
import java.util.Date;
|
||||
|
|
@ -49,6 +50,7 @@ public class OrderElementTreeController extends GenericForwardComposer {
|
|||
|
||||
private final OrderElementController orderElementController;
|
||||
|
||||
|
||||
public OrderElementTreeitemRenderer getRenderer() {
|
||||
return renderer;
|
||||
}
|
||||
|
|
@ -117,7 +119,6 @@ public class OrderElementTreeController extends GenericForwardComposer {
|
|||
|
||||
getOrderElementTreeModel().move(fromNode, toNode);
|
||||
}
|
||||
|
||||
Util.reloadBindings(tree);
|
||||
}
|
||||
|
||||
|
|
@ -125,7 +126,7 @@ public class OrderElementTreeController extends GenericForwardComposer {
|
|||
snapshotOfOpenedNodes = TreeViewStateSnapshot.snapshotOpened(tree);
|
||||
if (tree.getSelectedCount() == 1) {
|
||||
getOrderElementTreeModel().addOrderElementAt(getSelectedNode());
|
||||
} else {
|
||||
}else {
|
||||
getOrderElementTreeModel().addOrderElement();
|
||||
}
|
||||
Util.reloadBindings(tree);
|
||||
|
|
@ -197,6 +198,7 @@ public class OrderElementTreeController extends GenericForwardComposer {
|
|||
public class OrderElementTreeitemRenderer implements TreeitemRenderer {
|
||||
|
||||
private Map<SimpleTreeNode, Intbox> map = new HashMap<SimpleTreeNode, Intbox>();
|
||||
private Map<SimpleTreeNode, Textbox> mapC = new HashMap<SimpleTreeNode, Textbox>();
|
||||
|
||||
public OrderElementTreeitemRenderer() {
|
||||
}
|
||||
|
|
@ -212,6 +214,7 @@ public class OrderElementTreeController extends GenericForwardComposer {
|
|||
// Construct treecells
|
||||
int[] path = getOrderElementTreeModel().getPath(t);
|
||||
String cssClass = "depth_"+path.length;
|
||||
|
||||
Treecell cellForName = new Treecell();
|
||||
Label tasknumber = new Label(pathAsString(path));
|
||||
tasknumber.setSclass("tasknumber");
|
||||
|
|
@ -233,6 +236,34 @@ public class OrderElementTreeController extends GenericForwardComposer {
|
|||
orderElement.setName(value);
|
||||
}
|
||||
}));
|
||||
|
||||
Textbox textBoxCode = new Textbox();
|
||||
mapC.put(t, textBoxCode);
|
||||
Treecell cellForCode = new Treecell();
|
||||
cellForCode.appendChild(Util.bind(textBoxCode,
|
||||
new Util.Getter<String>() {
|
||||
|
||||
@Override
|
||||
public String get() {
|
||||
return orderElement.getCode();
|
||||
}
|
||||
}, new Util.Setter<String>() {
|
||||
|
||||
@Override
|
||||
public void set(String value) {
|
||||
orderElement.setCode(value);
|
||||
}
|
||||
}));
|
||||
|
||||
textBoxCode.setConstraint(new Constraint() {
|
||||
|
||||
@Override
|
||||
public void validate(Component comp, Object value) throws WrongValueException{
|
||||
if (!orderElement.isFormatCodeValid((String)value)){
|
||||
throw new WrongValueException(comp,"Value not is valid.\n The code can not contain chars like '_' \n and not must be empty"); }
|
||||
}
|
||||
});
|
||||
|
||||
Treecell cellForHours = new Treecell();
|
||||
Intbox intboxHours = new Intbox();
|
||||
map.put(t, intboxHours);
|
||||
|
|
@ -293,6 +324,7 @@ public class OrderElementTreeController extends GenericForwardComposer {
|
|||
}
|
||||
}));
|
||||
}
|
||||
|
||||
Treecell tcDateStart = new Treecell();
|
||||
tcDateStart.appendChild(Util.bind(new Datebox(),
|
||||
new Util.Getter<Date>() {
|
||||
|
|
@ -342,6 +374,7 @@ public class OrderElementTreeController extends GenericForwardComposer {
|
|||
tr.setDroppable("true");
|
||||
|
||||
cellForName.setParent(tr);
|
||||
cellForCode.setParent(tr);
|
||||
tcDateStart.setParent(tr);
|
||||
tcDateEnd.setParent(tr);
|
||||
cellForHours.setParent(tr);
|
||||
|
|
|
|||
|
|
@ -10,8 +10,16 @@
|
|||
<textbox id="name"
|
||||
value="@{orderElementController.orderElement.name,
|
||||
save-when='backButton.onClick'}" />
|
||||
|
||||
|
||||
<label value="Code " />
|
||||
<textbox id="code"
|
||||
value="@{orderElementController.orderElement.code,
|
||||
save-when='backButton.onClick'}" />
|
||||
|
||||
</hbox>
|
||||
|
||||
|
||||
<hbox>
|
||||
<label value="Init Date" />
|
||||
<datebox id="initDate"
|
||||
|
|
|
|||
|
|
@ -16,13 +16,14 @@
|
|||
</hbox>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<tree id="tree" width="900px" multiple="true" droppable="true"
|
||||
<tree id="tree" width="1050px" multiple="true" droppable="true"
|
||||
onDrop="orderElementTreeController.move(self, event.dragged)"
|
||||
model="@{orderElementTreeController.orderElementTreeModel}"
|
||||
treeitemRenderer="@{orderElementTreeController.renderer}" pageSize="5"
|
||||
sclass="orderTree">
|
||||
<treecols sizable="true">
|
||||
<treecol label="Name and description" />
|
||||
<treecol label="Code" />
|
||||
<treecol label="Estimated init" />
|
||||
<treecol label="Estimated end" />
|
||||
<treecol label="Hours" />
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue