ItEr42S17CUGravacionModelosUnidadesTraballoItEr41S20: The Columns decide what is rendered.
This commit is contained in:
parent
29d6e7a886
commit
97767af969
5 changed files with 150 additions and 28 deletions
|
|
@ -147,15 +147,8 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void createCells(Treeitem item,
|
||||
OrderElement currentOrderElement) {
|
||||
addSchedulingStateCell(currentOrderElement);
|
||||
addCodeCell(currentOrderElement);
|
||||
addHoursCell(currentOrderElement);
|
||||
addTaskNumberCell(currentOrderElement);
|
||||
addInitDateCell(currentOrderElement);
|
||||
addEndDateCell(currentOrderElement);
|
||||
addOperationsCell(item, currentOrderElement);
|
||||
protected void addDescriptionCell(OrderElement element) {
|
||||
addTaskNumberCell(element);
|
||||
}
|
||||
|
||||
private void addTaskNumberCell(final OrderElement orderElementForThisRow) {
|
||||
|
|
@ -207,8 +200,7 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
return cssclass;
|
||||
}
|
||||
|
||||
private void addSchedulingStateCell(
|
||||
final OrderElement currentOrderElement) {
|
||||
void addSchedulingStateCell(final OrderElement currentOrderElement) {
|
||||
SchedulingStateToggler schedulingStateToggler = new SchedulingStateToggler(currentOrderElement
|
||||
.getSchedulingState());
|
||||
final Treecell cell = addCell(
|
||||
|
|
@ -235,7 +227,7 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
schedulingStateToggler.afterCompose();
|
||||
}
|
||||
|
||||
private void addCodeCell(final OrderElement orderElement) {
|
||||
protected void addCodeCell(final OrderElement orderElement) {
|
||||
Textbox textBoxCode = new Textbox();
|
||||
Util.bind(textBoxCode, new Util.Getter<String>() {
|
||||
@Override
|
||||
|
|
@ -268,7 +260,7 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
addCell(textBoxCode);
|
||||
}
|
||||
|
||||
private void addInitDateCell(final OrderElement currentOrderElement) {
|
||||
void addInitDateCell(final OrderElement currentOrderElement) {
|
||||
addCell(Util.bind(new Datebox(), new Util.Getter<Date>() {
|
||||
|
||||
@Override
|
||||
|
|
@ -284,7 +276,7 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
}));
|
||||
}
|
||||
|
||||
private void addEndDateCell(final OrderElement currentOrderElement) {
|
||||
void addEndDateCell(final OrderElement currentOrderElement) {
|
||||
addCell(Util.bind(new Datebox(), new Util.Getter<Date>() {
|
||||
|
||||
@Override
|
||||
|
|
@ -300,7 +292,7 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
}));
|
||||
}
|
||||
|
||||
private void addHoursCell(final OrderElement currentOrderElement) {
|
||||
void addHoursCell(final OrderElement currentOrderElement) {
|
||||
Intbox intboxHours = buildHoursIntboxFor(currentOrderElement);
|
||||
hoursIntBoxByOrderElement.put(currentOrderElement, intboxHours);
|
||||
addCell(intboxHours);
|
||||
|
|
@ -363,7 +355,8 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
};
|
||||
}
|
||||
|
||||
private void addOperationsCell(final Treeitem item,
|
||||
@Override
|
||||
protected void addOperationsCell(final Treeitem item,
|
||||
final OrderElement currentOrderElement) {
|
||||
addCell(createEditButton(currentOrderElement),
|
||||
createTemplateButton(currentOrderElement),
|
||||
|
|
|
|||
|
|
@ -24,7 +24,12 @@ import static org.navalplanner.web.I18nHelper._;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.business.trees.ITreeNode;
|
||||
import org.navalplanner.web.orders.OrderElementTreeController.OrderElementTreeitemRenderer;
|
||||
import org.navalplanner.web.tree.TreeComponent;
|
||||
import org.navalplanner.web.tree.TreeController;
|
||||
import org.zkoss.zul.Treeitem;
|
||||
|
||||
/**
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
|
|
@ -32,15 +37,72 @@ import org.navalplanner.web.tree.TreeComponent;
|
|||
*/
|
||||
public class OrdersTreeComponent extends TreeComponent {
|
||||
|
||||
abstract class OrdersTreeColumn extends Column {
|
||||
OrdersTreeColumn(String label, String cssClass, String tooltip) {
|
||||
super(label, cssClass, tooltip);
|
||||
}
|
||||
|
||||
OrdersTreeColumn(String label, String cssClass) {
|
||||
super(label, cssClass);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ITreeNode<T>> void doCell(
|
||||
TreeController<T>.Renderer renderer,
|
||||
Treeitem item, T currentElement) {
|
||||
OrderElementTreeitemRenderer treeRenderer = OrderElementTreeitemRenderer.class
|
||||
.cast(renderer);
|
||||
doCell(treeRenderer, OrderElement.class.cast(currentElement));
|
||||
}
|
||||
|
||||
protected abstract void doCell(
|
||||
OrderElementTreeitemRenderer treeRenderer,
|
||||
OrderElement currentElement);
|
||||
|
||||
}
|
||||
|
||||
public List<Column> getColumns() {
|
||||
List<Column> columns = new ArrayList<Column>();
|
||||
columns.add(new Column(_("Scheduling state"), "scheduling_state"));
|
||||
columns.add(new OrdersTreeColumn(_("Scheduling state"),
|
||||
"scheduling_state") {
|
||||
|
||||
@Override
|
||||
protected void doCell(OrderElementTreeitemRenderer treeRenderer,
|
||||
OrderElement currentElement) {
|
||||
treeRenderer.addSchedulingStateCell(currentElement);
|
||||
}
|
||||
|
||||
});
|
||||
columns.add(codeColumn);
|
||||
columns.add(new Column(_("Hours"), "hours",
|
||||
_("Total order element hours")));
|
||||
columns.add(new OrdersTreeColumn(_("Hours"), "hours",
|
||||
_("Total order element hours")) {
|
||||
|
||||
@Override
|
||||
protected void doCell(OrderElementTreeitemRenderer treeRenderer,
|
||||
OrderElement currentElement) {
|
||||
treeRenderer.addHoursCell(currentElement);
|
||||
}
|
||||
|
||||
});
|
||||
columns.add(nameAndDescriptionColumn);
|
||||
columns.add(new Column(_("Must start after"), "estimated_init"));
|
||||
columns.add(new Column(_("Deadline"), "estimated_end"));
|
||||
columns.add(new OrdersTreeColumn(_("Must start after"),
|
||||
"estimated_init") {
|
||||
|
||||
@Override
|
||||
protected void doCell(OrderElementTreeitemRenderer treeRenderer,
|
||||
OrderElement currentElement) {
|
||||
treeRenderer.addInitDateCell(currentElement);
|
||||
}
|
||||
|
||||
});
|
||||
columns.add(new OrdersTreeColumn(_("Deadline"), "estimated_end") {
|
||||
|
||||
@Override
|
||||
protected void doCell(OrderElementTreeitemRenderer treeRenderer,
|
||||
OrderElement currentElement) {
|
||||
treeRenderer.addEndDateCell(currentElement);
|
||||
}
|
||||
});
|
||||
columns.add(operationsColumn);
|
||||
return columns;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,10 @@ import static org.navalplanner.web.I18nHelper._;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.navalplanner.business.trees.ITreeNode;
|
||||
import org.navalplanner.web.tree.TreeComponent;
|
||||
import org.navalplanner.web.tree.TreeController;
|
||||
import org.zkoss.zul.Treeitem;
|
||||
|
||||
/**
|
||||
* Tree component for templates <br />
|
||||
|
|
@ -49,8 +52,22 @@ public class TemplatesTreeComponent extends TreeComponent {
|
|||
List<Column> result = new ArrayList<Column>();
|
||||
result.add(codeColumn);
|
||||
result.add(nameAndDescriptionColumn);
|
||||
result.add(new Column(_("Must start after"), "estimated_init"));
|
||||
result.add(new Column(_("Deadline"), "estimated_end"));
|
||||
result.add(new Column(_("Must start after"), "estimated_init") {
|
||||
|
||||
@Override
|
||||
public <T extends ITreeNode<T>> void doCell(
|
||||
TreeController<T>.Renderer renderer,
|
||||
Treeitem item, T currentElement) {
|
||||
}
|
||||
});
|
||||
result.add(new Column(_("Deadline"), "estimated_end") {
|
||||
|
||||
@Override
|
||||
public <T extends ITreeNode<T>> void doCell(
|
||||
TreeController<T>.Renderer renderer,
|
||||
Treeitem item, T currentElement) {
|
||||
}
|
||||
});
|
||||
result.add(operationsColumn);
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,9 +23,11 @@ import static org.navalplanner.web.I18nHelper._;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import org.navalplanner.business.trees.ITreeNode;
|
||||
import org.navalplanner.web.orders.OrderElementTreeController;
|
||||
import org.zkoss.zk.ui.HtmlMacroComponent;
|
||||
import org.zkoss.zk.ui.util.Composer;
|
||||
import org.zkoss.zul.Treeitem;
|
||||
|
||||
/**
|
||||
* macro component for order elements tree and similar pages<br />
|
||||
|
|
@ -35,7 +37,7 @@ public abstract class TreeComponent extends HtmlMacroComponent {
|
|||
|
||||
private static final String CONTROLLER_NAME = "treeController";
|
||||
|
||||
public static class Column {
|
||||
public static abstract class Column {
|
||||
private String label;
|
||||
|
||||
private String cssClass;
|
||||
|
|
@ -63,13 +65,41 @@ public abstract class TreeComponent extends HtmlMacroComponent {
|
|||
public String getTooltip() {
|
||||
return tooltip;
|
||||
}
|
||||
|
||||
public abstract <T extends ITreeNode<T>> void doCell(
|
||||
TreeController<T>.Renderer renderer,
|
||||
Treeitem item, T currentElement);
|
||||
}
|
||||
|
||||
protected final Column codeColumn = new Column(_("Code"), "code");
|
||||
protected final Column codeColumn = new Column(_("Code"), "code") {
|
||||
|
||||
@Override
|
||||
public <T extends ITreeNode<T>> void doCell(
|
||||
TreeController<T>.Renderer renderer,
|
||||
Treeitem item, T currentElement) {
|
||||
renderer.addCodeCell(currentElement);
|
||||
}
|
||||
};
|
||||
protected final Column nameAndDescriptionColumn = new Column(
|
||||
_("Name and description"), "name");
|
||||
_("Name and description"), "name") {
|
||||
|
||||
@Override
|
||||
public <T extends ITreeNode<T>> void doCell(
|
||||
TreeController<T>.Renderer renderer,
|
||||
Treeitem item, T currentElement) {
|
||||
renderer.addDescriptionCell(currentElement);
|
||||
}
|
||||
};
|
||||
protected final Column operationsColumn = new Column(_("Operations"),
|
||||
"operations");
|
||||
"operations") {
|
||||
|
||||
@Override
|
||||
public <T extends ITreeNode<T>> void doCell(
|
||||
TreeController<T>.Renderer renderer,
|
||||
Treeitem item, T currentElement) {
|
||||
renderer.addOperationsCell(item, currentElement);
|
||||
}
|
||||
};
|
||||
|
||||
public abstract List<Column> getColumns();
|
||||
|
||||
|
|
@ -81,6 +111,7 @@ public abstract class TreeComponent extends HtmlMacroComponent {
|
|||
|
||||
public void useController(TreeController<?> controller) {
|
||||
doAfterComposeOnController(controller);
|
||||
controller.setColumns(getColumns());
|
||||
this.setVariable(CONTROLLER_NAME, controller, true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ package org.navalplanner.web.tree;
|
|||
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
|
@ -29,6 +30,7 @@ import org.navalplanner.business.trees.ITreeNode;
|
|||
import org.navalplanner.web.common.IMessagesForUser;
|
||||
import org.navalplanner.web.common.Level;
|
||||
import org.navalplanner.web.common.MessagesForUser;
|
||||
import org.navalplanner.web.tree.TreeComponent.Column;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.event.DropEvent;
|
||||
import org.zkoss.zk.ui.event.EventListener;
|
||||
|
|
@ -227,6 +229,8 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
|
|||
|
||||
protected Button btnNew, btnDown, btnUp, btnUnindent, btnIndent, btnDelete;
|
||||
|
||||
private List<Column> columns;
|
||||
|
||||
|
||||
protected TreeViewStateSnapshot getSnapshotOfOpenedNodes() {
|
||||
return snapshotOfOpenedNodes;
|
||||
|
|
@ -286,7 +290,11 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
|
|||
onDropMoveFromDraggedToTarget();
|
||||
}
|
||||
|
||||
protected abstract void createCells(Treeitem item, T currentElement);
|
||||
private void createCells(Treeitem item, T currentElement) {
|
||||
for (Column each : columns) {
|
||||
each.doCell(this, item, currentElement);
|
||||
}
|
||||
}
|
||||
|
||||
private void applySnapshot(final Treeitem item) {
|
||||
if (snapshotOfOpenedNodes != null) {
|
||||
|
|
@ -336,6 +344,13 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
|
|||
});
|
||||
}
|
||||
|
||||
protected abstract void addCodeCell(final T element);
|
||||
|
||||
protected abstract void addDescriptionCell(final T element);
|
||||
|
||||
protected abstract void addOperationsCell(final Treeitem item,
|
||||
final T currentElement);
|
||||
|
||||
@Override
|
||||
public void doCatch(Throwable ex) throws Throwable {
|
||||
|
||||
|
|
@ -352,4 +367,8 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
|
|||
}
|
||||
}
|
||||
|
||||
public void setColumns(List<Column> columns) {
|
||||
this.columns = columns;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue