[Bug #791] Fix bug
There were some parts of the hours column logic that had not been pulled up. FEA: ItEr67S04BugFixing
This commit is contained in:
parent
db10e8d982
commit
e7131a6af5
3 changed files with 28 additions and 52 deletions
|
|
@ -61,7 +61,6 @@ import org.zkoss.zk.ui.event.EventListener;
|
|||
import org.zkoss.zul.Button;
|
||||
import org.zkoss.zul.Constraint;
|
||||
import org.zkoss.zul.Datebox;
|
||||
import org.zkoss.zul.Intbox;
|
||||
import org.zkoss.zul.Messagebox;
|
||||
import org.zkoss.zul.Tab;
|
||||
import org.zkoss.zul.Textbox;
|
||||
|
|
@ -396,8 +395,6 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
|
||||
public class OrderElementTreeitemRenderer extends Renderer {
|
||||
|
||||
private Map<OrderElement, Intbox> hoursIntBoxByOrderElement = new HashMap<OrderElement, Intbox>();
|
||||
|
||||
public OrderElementTreeitemRenderer() {
|
||||
}
|
||||
|
||||
|
|
@ -442,7 +439,7 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
IOrderElementModel model = orderModel
|
||||
.getOrderElementModel(currentOrderElement);
|
||||
orderElementController.openWindow(model);
|
||||
updateOrderElementHours(currentOrderElement);
|
||||
updateHoursFor(currentOrderElement);
|
||||
}
|
||||
|
||||
protected void addCodeCell(final OrderElement orderElement) {
|
||||
|
|
@ -660,31 +657,7 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
IOrderElementModel model = orderModel
|
||||
.getOrderElementModel(currentOrderElement);
|
||||
orderElementController.openWindow(model);
|
||||
updateOrderElementHours(currentOrderElement);
|
||||
}
|
||||
|
||||
private void updateOrderElementHours(OrderElement orderElement) {
|
||||
if ((!readOnly) && (orderElement instanceof OrderLine)) {
|
||||
Intbox boxHours = (Intbox) getRenderer().hoursIntBoxByOrderElement
|
||||
.get(orderElement);
|
||||
boxHours.setValue(orderElement.getWorkHours());
|
||||
Treecell tc = (Treecell) boxHours.getParent();
|
||||
setReadOnlyHoursCell(orderElement, boxHours, tc);
|
||||
boxHours.invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
private void setReadOnlyHoursCell(OrderElement orderElement,
|
||||
Intbox boxHours, Treecell tc) {
|
||||
if ((!readOnly) && (orderElement instanceof OrderLine)) {
|
||||
if (orderElement.getHoursGroups().size() > 1) {
|
||||
boxHours.setReadonly(true);
|
||||
tc.setTooltiptext(_("Not editable for containing more that an hours group."));
|
||||
} else {
|
||||
boxHours.setReadonly(false);
|
||||
tc.setTooltiptext("");
|
||||
}
|
||||
}
|
||||
getRenderer().updateHoursFor(currentOrderElement);
|
||||
}
|
||||
|
||||
public Treeitem getTreeitemByOrderElement(OrderElement element) {
|
||||
|
|
@ -753,18 +726,6 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void refreshHoursBox(OrderElement node) {
|
||||
List<OrderElement> parentNodes = getModel().getParents(node);
|
||||
// Remove the last element because it's an
|
||||
// Order node, not an OrderElement
|
||||
parentNodes.remove(parentNodes.size() - 1);
|
||||
for (OrderElement parent : parentNodes) {
|
||||
getRenderer().hoursIntBoxByOrderElement.get(parent)
|
||||
.setValue(parent.getWorkHours());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected IHoursGroupHandler<OrderElement> getHoursGroupHandler() {
|
||||
return new IHoursGroupHandler<OrderElement>() {
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ import org.zkoss.zul.Button;
|
|||
import org.zkoss.zul.Intbox;
|
||||
import org.zkoss.zul.Textbox;
|
||||
import org.zkoss.zul.Treeitem;
|
||||
import org.zkoss.zul.TreeitemRenderer;
|
||||
|
||||
/**
|
||||
* Controller for template element tree <br />
|
||||
|
|
@ -189,7 +188,7 @@ public class TemplatesTreeController extends
|
|||
}
|
||||
|
||||
@Override
|
||||
public TreeitemRenderer getRenderer() {
|
||||
public TemplatesTreeRenderer getRenderer() {
|
||||
return new TemplatesTreeRenderer();
|
||||
}
|
||||
|
||||
|
|
@ -221,11 +220,6 @@ public class TemplatesTreeController extends
|
|||
return tooltipText.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void refreshHoursBox(OrderElementTemplate node) {
|
||||
// we do nothing, since there isn't an hours box in this tree
|
||||
}
|
||||
|
||||
@Override
|
||||
protected IHoursGroupHandler<OrderElementTemplate> getHoursGroupHandler() {
|
||||
return new IHoursGroupHandler<OrderElementTemplate>() {
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
|
|||
|
||||
private final Class<T> type;
|
||||
|
||||
public abstract TreeitemRenderer getRenderer();
|
||||
public abstract Renderer getRenderer();
|
||||
|
||||
protected TreeController(Class<T> type) {
|
||||
this.type = type;
|
||||
|
|
@ -203,7 +203,7 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
|
|||
T node = getSelectedNode();
|
||||
getModel().addElementAt(node, name.getValue(),
|
||||
hours.getValue());
|
||||
refreshHoursBox(node);
|
||||
getRenderer().refreshHoursValueForThisNodeAndParents(node);
|
||||
} else {
|
||||
getModel().addElement(name.getValue(), hours.getValue());
|
||||
}
|
||||
|
|
@ -217,8 +217,6 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
|
|||
name.focus();
|
||||
}
|
||||
|
||||
protected abstract void refreshHoursBox(T node);
|
||||
|
||||
protected abstract void filterByPredicateIfAny();
|
||||
|
||||
protected static class TreeViewStateSnapshot {
|
||||
|
|
@ -771,6 +769,29 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
|
|||
};
|
||||
}
|
||||
|
||||
public void updateHoursFor(T element) {
|
||||
if (!readOnly && isLine(element)) {
|
||||
Intbox boxHours = (Intbox) hoursIntBoxByElement.get(element);
|
||||
Treecell tc = (Treecell) boxHours.getParent();
|
||||
setReadOnlyHoursCell(element, boxHours, tc);
|
||||
boxHours.invalidate();
|
||||
refreshHoursValueForThisNodeAndParents(element);
|
||||
}
|
||||
}
|
||||
|
||||
public void refreshHoursValueForThisNodeAndParents(T node) {
|
||||
List<T> parentNodes = getModel().getParents(node);
|
||||
for (T parent : parentNodes) {
|
||||
Intbox intbox = hoursIntBoxByElement.get(parent);
|
||||
// For the Order node there is no associated intbox
|
||||
if (intbox != null) {
|
||||
Integer currentHours = getHoursGroupHandler()
|
||||
.getWorkHoursFor(parent);
|
||||
intbox.setValue(currentHours);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Constraint getHoursConstraintFor(final T line) {
|
||||
return new Constraint() {
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue