ItEr28S11AltaEtiquetasTipoEtiquetaItEr27S11: Saves successfully

This commit is contained in:
Diego Pino Garcia 2009-10-01 18:12:42 +02:00 committed by Javier Moran Rua
parent 77e8444ed1
commit 514dfea42f
8 changed files with 54 additions and 21 deletions

View file

@ -21,6 +21,7 @@
package org.navalplanner.business.labels.entities;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang.Validate;
@ -43,7 +44,7 @@ public class Label extends BaseEntity {
@NotNull
private LabelType type;
private Set<OrderElement> orderElements;
private Set<OrderElement> orderElements = new HashSet<OrderElement>();
// Default constructor, needed by Hibernate
protected Label() {

View file

@ -194,17 +194,19 @@ public abstract class OrderElement extends BaseEntity {
return Collections.unmodifiableSet(labels);
}
public void addLabel(Label label) {
Validate.notNull(label);
labels.add(label);
}
public void setLabels(Set<Label> labels) {
this.labels = labels;
}
public void addLabel(Label label) {
Validate.notNull(label);
labels.add(label);
label.addOrderElement(this);
}
public void removeLabel(Label label) {
labels.remove(label);
label.removeOrderElement(this);
}
/**

View file

@ -16,7 +16,7 @@
<many-to-one name="type" class="LabelType" column="LABEL_TYPE_ID" />
</properties>
<set name="orderElements" table="ORDER_ELEMENT_LABEL" cascade="all,delete-orphan">
<set name="orderElements" table="ORDER_ELEMENT_LABEL" cascade="all-delete-orphan" inverse="true">
<key column="LABEL_ID" not-null="false"/>
<many-to-many column="ORDER_ELEMENT_ID" class="org.navalplanner.business.orders.entities.OrderElement"/>
</set>

View file

@ -45,7 +45,7 @@
<one-to-many class="org.navalplanner.business.advance.entities.DirectAdvanceAssignment" />
</set>
<set name="labels" table="ORDER_ELEMENT_LABEL" access="field" cascade="all,delete-orphan">
<set name="labels" table="ORDER_ELEMENT_LABEL" access="field" cascade="all-delete-orphan">
<key column="ORDER_ELEMENT_ID" not-null="true"/>
<many-to-many column="LABEL_ID" class="org.navalplanner.business.labels.entities.Label" />
</set>

View file

@ -60,16 +60,11 @@ public class AssignedLabelsToOrderElementController extends
}
public void openWindow(IOrderElementModel orderElementModel) {
assignedLabelsToOrderElementModel.init(orderElementModel
.getOrderElement());
Util.reloadBindings(self);
openWindow(orderElementModel.getOrderElement());
}
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp.getFellow("listOrderElementLabels"));
comp.setVariable("assignedLabelsController", this, true);
window = (Window) comp;
public void openWindow(OrderElement orderElement) {
assignedLabelsToOrderElementModel.init(orderElement);
// Configure bandbox with all labels
final List<Label> allLabels = getAllLabels();
@ -81,6 +76,16 @@ public class AssignedLabelsToOrderElementController extends
// Set autodrop
bdLabels.setAutodrop(true);
Util.reloadBindings(window);
Util.reloadBindings(directLabels);
}
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp.getFellow("listOrderElementLabels"));
comp.setVariable("assignedLabelsController", this, true);
window = (Window) comp;
}
/**
@ -134,7 +139,7 @@ public class AssignedLabelsToOrderElementController extends
public void onAssignLabel() {
Label label = (Label) bdLabels.getVariable("selectedLabel", true);
if (label == null) {
throw new WrongValueException(bdLabels, _("cannot be null"));
throw new WrongValueException(bdLabels, _("please, select a label"));
}
if (isAssigned(label)) {
throw new WrongValueException(bdLabels, _("already assigned"));
@ -229,20 +234,26 @@ public class AssignedLabelsToOrderElementController extends
*
* @param event
*/
public void onClose(Event event) {
public void onCancel() {
cancel();
close();
event.stopPropagation();
}
private void cancel() {
assignedLabelsToOrderElementModel.cancel();
window.setVariable("status", new Integer(0), true);
}
private void close() {
window.setVisible(false);
}
public void onAccept() {
assignedLabelsToOrderElementModel.confirm();
window.setVariable("status", new Integer(1), true);
close();
}
public ListitemRenderer getLabelRenderer() {
return labelRenderer;
}

View file

@ -2,6 +2,7 @@ package org.navalplanner.web.orders;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@ -111,6 +112,7 @@ public class AssignedLabelsToOrderElementModel implements
}
@Override
@Transactional(readOnly = true)
public void deleteLabel(Label label) {
orderElement.removeLabel(label);
}
@ -152,9 +154,18 @@ public class AssignedLabelsToOrderElementModel implements
OrderElement orderElement = orderDAO
.find(this.orderElement.getId());
reattachOrderElement(orderElement);
this.orderElement.setLabels(orderElement.getLabels());
Set<Label> labels = new HashSet<Label>();
labels.addAll(orderElement.getLabels());
this.orderElement.setLabels(labels);
} catch (InstanceNotFoundException e) {
e.printStackTrace();
}
}
@Override
@Transactional(readOnly = true)
public void confirm() {
orderDAO.save(orderElement);
}
}

View file

@ -92,4 +92,10 @@ public interface IAssignedLabelsToOrderElementModel {
*/
void setOrderElement(OrderElement orderElement);
/**
* Save {@link OrderElement}
*
*/
void confirm();
}

View file

@ -70,8 +70,10 @@
</hbox>
<hbox>
<button label="${i18n:_('Accept')}"
onClick="assignedLabelsController.onAccept();" />
<button label="${i18n:_('Cancel')}"
onClick="assignedLabelsController.onClose(event);" />
onClick="assignedLabelsController.onCancel();" />
</hbox>
</vbox>