[Bug #986] Prevent removing a label type that is being used by and orderelement
FEA: ItEr74S04BugFixing
This commit is contained in:
parent
2c71128881
commit
e6e9793a38
2 changed files with 69 additions and 15 deletions
|
|
@ -48,6 +48,7 @@ import org.zkoss.zul.Button;
|
|||
import org.zkoss.zul.Column;
|
||||
import org.zkoss.zul.Constraint;
|
||||
import org.zkoss.zul.Grid;
|
||||
import org.zkoss.zul.Hbox;
|
||||
import org.zkoss.zul.ListModelExt;
|
||||
import org.zkoss.zul.Messagebox;
|
||||
import org.zkoss.zul.Row;
|
||||
|
|
@ -94,7 +95,7 @@ public class LabelTypeCRUDController extends GenericForwardComposer {
|
|||
messagesEditWindow = new MessagesForUser(editWindow
|
||||
.getFellowIfAny("messagesContainer"));
|
||||
initializeLabelsGrid();
|
||||
gridLabelTypes = (Grid) listWindow.getFellowIfAny("gridLabelTypes");
|
||||
initializeLabelTypesGrid();
|
||||
showListWindow();
|
||||
newLabelTextbox = (Textbox) editWindow
|
||||
.getFellowIfAny("newLabelTextbox");
|
||||
|
|
@ -123,14 +124,59 @@ public class LabelTypeCRUDController extends GenericForwardComposer {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean canRemoveLabel(Label label) {
|
||||
if (label.isNewObject()) {
|
||||
return true;
|
||||
}
|
||||
return label.getOrderElements().isEmpty();
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
private boolean canRemoveLabel(Label label) {
|
||||
if (label.isNewObject()) {
|
||||
return true;
|
||||
}
|
||||
return label.getOrderElements().isEmpty();
|
||||
private void initializeLabelTypesGrid() {
|
||||
gridLabelTypes = (Grid) listWindow.getFellowIfAny("labelTypes");
|
||||
|
||||
gridLabelTypes.addEventListener("onInitRender", new EventListener() {
|
||||
|
||||
@Override
|
||||
public void onEvent(Event event) throws Exception {
|
||||
gridLabelTypes.renderAll();
|
||||
|
||||
final Rows rows = gridLabelTypes.getRows();
|
||||
for (Iterator i = rows.getChildren().iterator(); i.hasNext();) {
|
||||
final Row row = (Row) i.next();
|
||||
final LabelType labelType = (LabelType) row.getValue();
|
||||
Hbox hbox = (Hbox) row.getChildren().get(2);
|
||||
Button btnDelete = (Button) hbox.getChildren().get(1);
|
||||
if (!canRemoveLabelType(labelType)) {
|
||||
btnDelete.setDisabled(true);
|
||||
btnDelete.setImage("/common/img/ico_borrar_out.png");
|
||||
btnDelete
|
||||
.setHoverImage("/common/img/ico_borrar_out.png");
|
||||
btnDelete.setTooltiptext("");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean canRemoveLabelType(LabelType labelType) {
|
||||
boolean canRemove = true;
|
||||
if (labelType.isNewObject()) {
|
||||
return canRemove;
|
||||
}
|
||||
// If at least one of its labels is being used by and
|
||||
// orderelement, cannot remove labelType
|
||||
for (Label each: labelType.getLabels()) {
|
||||
if (!each.getOrderElements().isEmpty()) {
|
||||
canRemove = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return canRemove;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
private void showListWindow() {
|
||||
|
|
|
|||
|
|
@ -73,7 +73,23 @@ public class LabelTypeModel extends IntegrationEntityModel implements
|
|||
@Override
|
||||
@Transactional(readOnly=true)
|
||||
public List<LabelType> getLabelTypes() {
|
||||
return labelTypeDAO.getAll();
|
||||
List<LabelType> result = labelTypeDAO.getAll();
|
||||
initializeLabelTypes(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void initializeLabelTypes(List<LabelType> labelTypes) {
|
||||
for (LabelType each: labelTypes) {
|
||||
initializeLabels(each.getLabels());
|
||||
}
|
||||
}
|
||||
|
||||
private Set<Label> initializeLabels(Set<Label> labels) {
|
||||
for (Label each : labels) {
|
||||
labelDAO.reattach(each);
|
||||
each.getOrderElements().size();
|
||||
}
|
||||
return labels;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -198,14 +214,6 @@ public class LabelTypeModel extends IntegrationEntityModel implements
|
|||
return labels;
|
||||
}
|
||||
|
||||
private Set<Label> initializeLabels(Set<Label> labels) {
|
||||
for (Label each: labels) {
|
||||
labelDAO.reattach(each);
|
||||
each.getOrderElements().size();
|
||||
}
|
||||
return labels;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addLabel(String value) {
|
||||
Label label = Label.create("", value);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue