ItEr17S09CUCreacionDeOrganizacionsDeTraballoItEr16S11: Changing the list of items of orders for inclusion of a field code.

This commit is contained in:
Susana Montes Pedreira 2009-07-20 10:38:00 +02:00 committed by Javier Moran Rua
parent b44346d3aa
commit 7d41241bf2
8 changed files with 86 additions and 8 deletions

View file

@ -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;
}

View file

@ -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;
}
}

View file

@ -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;
}

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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"

View file

@ -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" />