[Bug #876] Template tasks tree is not coherent with project details task tree

* The operations in the 'selected node' bar were not implemented
   * The operation getSelectedNode() launched NullPointerException if no node
was selected

FEA: ItEr74S04BugFixing
This commit is contained in:
Diego Pino Garcia 2011-04-07 11:13:09 +02:00
parent 2b8aba6e89
commit c60b48ad88
3 changed files with 64 additions and 17 deletions

View file

@ -42,6 +42,7 @@ import org.zkoss.zul.Treeitem;
/**
* Controller for template element tree <br />
* @author Óscar González Fernández <ogonzalez@igalia.com>
* @author Diego Pino García <dpino@igalia.com>
*/
public class TemplatesTreeController extends
TreeController<OrderElementTemplate> {
@ -59,10 +60,6 @@ public class TemplatesTreeController extends
protected void addOperationsCell(Treeitem item,
OrderElementTemplate currentElement) {
addCell(createEditButton(currentElement),
createDownButton(item, currentElement),
createUpButton(item, currentElement),
createUnindentButton(item, currentElement),
createIndentButton(item, currentElement),
createRemoveButton(currentElement));
}
@ -251,4 +248,50 @@ public class TemplatesTreeController extends
};
}
}
/**
* Operations for a node
*/
public void editSelectedNode() {
OrderElementTemplate node = getSelectedNode();
if (node != null) {
orderTemplatesController.showEditionFor(node);
}
}
public void moveSelectedNodeDown() {
OrderElementTemplate node = getSelectedNode();
if (node != null) {
down(node);
}
}
public void moveSelectedNodeUp() {
OrderElementTemplate node = getSelectedNode();
if (node != null) {
up(node);
}
}
public void unindentSelectedNode() {
OrderElementTemplate node = getSelectedNode();
if (node != null) {
unindent(node);
}
}
public void indentSelectedNode() {
OrderElementTemplate node = getSelectedNode();
if (node != null) {
indent(node);
}
}
public void deleteSelectedNode() {
OrderElementTemplate node = getSelectedNode();
if (node != null) {
remove(node);
}
}
}

View file

@ -155,7 +155,12 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
}
protected T getSelectedNode() {
return type.cast(tree.getSelectedItemApi().getValue());
Treeitem item = tree.getSelectedItem();
if (item != null) {
Object value = item.getValue();
return value != null ? type.cast(value) : null;
}
return null;
}
public void move(Component dropedIn, Component dragged) {

View file

@ -41,35 +41,34 @@
<button id="btnNewFromTemplate" label="${i18n:_('Add From Template')}"
onClick="treeController.createFromTemplate();" disabled="true"
visible="${treeComponent.createFromTemplateEnabled}"/>
</hbox><hbox style="float:right" valign="pack">
</hbox>
<!-- Operations for a node -->
<hbox style="float:right" valign="pack">
<label value="${i18n:_('Selected node:')}" />
<button id="editOrderElementButton" sclass="icono" image="/common/img/ico_editar1.png"
tooltiptext="${i18n:_('Edit selected task')}"
onClick="treeController.editSelectedOrderElement();" />
<button id="createTemplateButton" sclass="icono" image="/common/img/ico_derived1.png"
hoverImage="/common/img/ico_derived.png"
tooltiptext="${i18n:_('Create template from selected task')}"
onClick="treeController.createTemplateFromSelectedOrderElement();" />
onClick="treeController.editSelectedNode();" />
<button id="downButton" sclass="icono" image="/common/img/ico_bajar1.png"
hoverImage="/common/img/ico_bajar.png"
tooltiptext="${i18n:_('Move selected task down')}"
onClick="treeController.moveSelectedOrderElementDown();" />
onClick="treeController.moveSelectedNodeDown();" />
<button id="upButton" sclass="icono" image="/common/img/ico_subir1.png"
hoverImage="/common/img/ico_subir.png"
tooltiptext="${i18n:_('Move selected task up')}"
onClick="treeController.moveSelectedOrderElementUp();" />
onClick="treeController.moveSelectedNodeUp();" />
<button id="leftButton" sclass="icono" image="/common/img/ico_izq1.png"
hoverImage="/common/img/ico_izq.png"
tooltiptext="${i18n:_('Unindent selected task')}"
onClick="treeController.unindentSelectedOrderElement();" />
onClick="treeController.unindentSelectedNode();" />
<button id="rightButton" sclass="icono" image="/common/img/ico_derecha1.png"
hoverImage="/common/img/ico_derecha.png"
tooltiptext="${i18n:_('Indent selected task')}"
onClick="treeController.indentSelectedOrderElement();" />
onClick="treeController.indentSelectedNode();" />
<button id="deleteOrderElementButton" sclass="icono" image="/common/img/ico_borrar1.png"
hoverImage="/common/img/ico_borrar.png"
tooltiptext="${i18n:_('Delete selected task')}"
onClick="treeController.deleteSelectedOrderElement();" />
onClick="treeController.deleteSelectedNode();" />
</hbox></hbox>
<vbox width="100%">
<tree id="tree" height="440px" multiple="false" droppable="true"