Author: glandais Date: 2008-03-08 00:28:59 +0000 (Sat, 08 Mar 2008) New Revision: 1309 Added: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/WebEntityVisitor.java Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDownload.java Log: Using visitors Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java 2008-03-08 00:28:20 UTC (rev 1308) +++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java 2008-03-08 00:28:59 UTC (rev 1309) @@ -22,14 +22,7 @@ import org.codelutin.tapestry.beans.TreeNode; -import fr.cemagref.simexplorer.is.entities.data.Code; -import fr.cemagref.simexplorer.is.entities.data.Component; -import fr.cemagref.simexplorer.is.entities.data.Constant; -import fr.cemagref.simexplorer.is.entities.data.ConstantValue; -import fr.cemagref.simexplorer.is.entities.data.ExplorationApplication; -import fr.cemagref.simexplorer.is.entities.data.ExplorationData; -import fr.cemagref.simexplorer.is.entities.data.Library; -import fr.cemagref.simexplorer.is.entities.data.Structure; +import fr.cemagref.simexplorer.is.ui.web.tools.WebEntityVisitor; /** * The Class ElementDetail. @@ -65,333 +58,310 @@ */ public List<TreeNode> getNodes() { List<TreeNode> nodes = new ArrayList<TreeNode>(); - // FIXME use visitors - nodes.add(generateElement()); + WebEntityVisitor webEntityVisitor = new WebEntityVisitor(); + nodes.add(webEntityVisitor.treeNodeVisit(getElement())); return nodes; } - /** - * Generate element. - * - * @return the tree node - */ - private TreeNode generateElement() { - TreeNode node = null; - if (getElement() instanceof ExplorationApplication) { - node = generateExplorationApplication(); - } - if (getElement() instanceof ExplorationData) { - node = generateExplorationData((ExplorationData) getElement()); - } - if (getElement() instanceof Component) { - node = generateComponent((Component) getElement()); - } - if (getElement() instanceof Library) { - node = generateLibrary((Library) getElement()); - } +// /** +// * Generate header. +// * +// * @param caption the caption +// * +// * @return the string +// */ +// private String generateHeader(String caption) { +// StringBuilder sb = new StringBuilder(); +// sb.append("<b>"); +// sb.append(caption); +// sb.append("</b>"); +// return sb.toString(); +// } +// +// /** +// * Generate exploration application. +// * +// * @return the tree node +// */ +// private TreeNode generateExplorationApplication() { +// TreeNode node; +// node = new TreeNode(); +// +// node.setType(TreeNode.TYPE_FOLDER); +// +// node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.applicationexploration"), +// getMetadata().getName(), getElement().getMetaData().getVersion().toString(), getElement() +// .getMetaData(), true, "metadata", "export", "history", "delete")); +// +// List<TreeNode> children = new ArrayList<TreeNode>(); +// TreeNode node1 = new TreeNode(); +// node1.setType(TreeNode.TYPE_FOLDER); +// node1.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.components"), "", "")); +// node1.setChildren(generateComponents((ExplorationApplication) getElement())); +// children.add(node1); +// +// TreeNode node2 = new TreeNode(); +// node2.setType(TreeNode.TYPE_FOLDER); +// node2.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.explorations"), "", "")); +// node2.setChildren(generateExplorations((ExplorationApplication) getElement())); +// children.add(node2); +// +// node.setChildren(children); +// return node; +// } +// +// /** +// * Generate explorations. +// * +// * @param explorationApplication the exploration application +// * +// * @return the list< tree node> +// */ +// private List<TreeNode> generateExplorations(ExplorationApplication explorationApplication) { +// List<TreeNode> res = new ArrayList<TreeNode>(); +// for (ExplorationData data : explorationApplication.getExplorations().getElements()) { +// res.add(generateExplorationData(data)); +// } +// return res; +// } +// +// /** +// * Generate exploration data. +// * +// * @param explorationData the exploration data +// * +// * @return the tree node +// */ +// private TreeNode generateExplorationData(ExplorationData explorationData) { +// TreeNode explorationDataNode = new TreeNode(); +// explorationDataNode.setType(TreeNode.TYPE_FOLDER); +// +// explorationDataNode.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.explorationdata"), +// explorationData.getMetaData().getName(), explorationData.getMetaData().getVersion().toString(), +// explorationData.getMetaData(), true, "metadata", "history", "delete")); +// +// List<TreeNode> children = new ArrayList<TreeNode>(); +// +// children.add(generateResult(explorationData)); +// +// TreeNode node1 = new TreeNode(); +// node1.setType(TreeNode.TYPE_FOLDER); +// node1.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.values"), +// generateHeader(getMessages().get("simexplorer.ui.web.type")), generateHeader(getMessages().get( +// "simexplorer.ui.web.value")))); +// node1.setChildren(generateValues(explorationData)); +// children.add(node1); +// +// explorationDataNode.setChildren(children); +// return explorationDataNode; +// } +// +// /** +// * Generate values. +// * +// * @param explorationData the exploration data +// * +// * @return the list< tree node> +// */ +// private List<TreeNode> generateValues(ExplorationData explorationData) { +// List<ConstantValue> values = explorationData.getConstantValues().getElements(); +// List<TreeNode> res = new ArrayList<TreeNode>(); +// for (ConstantValue value : values) { +// TreeNode node = new TreeNode(); +// node.setType(TreeNode.TYPE_DOCUMENT); +// node.setColumns(generateStringArray(value.getConstant().getName(), value.getConstant().getType() +// .getSimpleName(), value.getValue())); +// res.add(node); +// } +// +// return res; +// } +// +// /** +// * Generate result. +// * +// * @param explorationData the exploration data +// * +// * @return the tree node +// */ +// private TreeNode generateResult(ExplorationData explorationData) { +// TreeNode res = new TreeNode(); +// res.setType(TreeNode.TYPE_DOCUMENT); +// +// res.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.result"), "", "", explorationData +// .getMetaData(), false, "export")); +// return res; +// } +// +// /** +// * Generate components. +// * +// * @param explorationApplication the exploration application +// * +// * @return the list< tree node> +// */ +// private List<TreeNode> generateComponents(ExplorationApplication explorationApplication) { +// List<Component> components = explorationApplication.getComponents().getElements(); +// List<TreeNode> res = new ArrayList<TreeNode>(); +// +// for (Component component : components) { +// res.add(generateComponent(component)); +// } +// +// return res; +// } +// +// /** +// * Inits the node. +// * +// * @return the tree node +// */ +// private TreeNode initNode() { +// TreeNode node = new TreeNode(); +// node.setType(TreeNode.TYPE_FOLDER); +// return node; +// } +// +// /** +// * Generate component. +// * +// * @param component the component +// * +// * @return the tree node +// */ +// private TreeNode generateComponent(Component component) { +// TreeNode componentNode = new TreeNode(); +// componentNode.setType(TreeNode.TYPE_FOLDER); +// +// componentNode.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.component"), component +// .getMetaData().getName(), component.getMetaData().getVersion().toString(), component +// .getMetaData(), true, "metadata", "history", "delete")); +// +// List<TreeNode> children = new ArrayList<TreeNode>(); +// +// TreeNode node; +// +// node = initNode(); +// node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.constant"), +// generateHeader(getMessages().get("simexplorer.ui.web.name")), generateHeader(getMessages().get( +// "simexplorer.ui.web.type")))); +// node.setChildren(generateConstants(component.getConstants())); +// +// children.add(node); +// node = initNode(); +// +// node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.structures"), "", "")); +// node.setChildren(generateStructures(component.getStructures())); +// +// children.add(node); +// node = initNode(); +// +// node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.codes"), generateHeader(getMessages() +// .get("simexplorer.ui.web.language")), generateHeader(getMessages().get("simexplorer.ui.web.code")))); +// node.setChildren(generateCodes(component.getCodes())); +// +// children.add(node); +// node = initNode(); +// +// node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.libraries"), "", "")); +// node.setChildren(generateLibraries(component)); +// +// children.add(node); +// +// componentNode.setChildren(children); +// return componentNode; +// } +// +// /** +// * Generate libraries. +// * +// * @param component the component +// * +// * @return the list< tree node> +// */ +// private List<TreeNode> generateLibraries(Component component) { +// List<Library> libraries = component.getLibraries(); +// +// List<TreeNode> res = new ArrayList<TreeNode>(); +// for (Library library : libraries) { +// TreeNode node = generateLibrary(library); +// +// res.add(node); +// } +// return res; +// } +// +// /** +// * Generate library. +// * +// * @param library the library +// * +// * @return the tree node +// */ +// private TreeNode generateLibrary(Library library) { +// TreeNode node = new TreeNode(); +// node.setType(TreeNode.TYPE_DOCUMENT); +// node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.library"), library.getMetaData() +// .getName(), library.getMetaData().getVersion().toString(), library.getMetaData(), true, "metadata", +// "export")); +// return node; +// } +// +// /** +// * Generate codes. +// * +// * @param codes the codes +// * +// * @return the list< tree node> +// */ +// private List<TreeNode> generateCodes(List<Code> codes) { +// List<TreeNode> res = new ArrayList<TreeNode>(); +// for (Code code : codes) { +// TreeNode node = new TreeNode(); +// node.setType(TreeNode.TYPE_DOCUMENT); +// node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.code"), code.getLanguage(), code +// .getCode())); +// res.add(node); +// } +// return res; +// } +// +// /** +// * Generate structures. +// * +// * @param structures the structures +// * +// * @return the list< tree node> +// */ +// @SuppressWarnings("unused") +// private List<TreeNode> generateStructures(List<Structure> structures) { +// List<TreeNode> res = new ArrayList<TreeNode>(); +// for (Structure structure : structures) { +// TreeNode node = new TreeNode(); +// node.setType(TreeNode.TYPE_DOCUMENT); +// node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.structure"), "", "")); +// res.add(node); +// } +// return res; +// } +// +// /** +// * Generate constants. +// * +// * @param constants the constants +// * +// * @return the list< tree node> +// */ +// private List<TreeNode> generateConstants(List<Constant> constants) { +// List<TreeNode> res = new ArrayList<TreeNode>(); +// for (Constant constant : constants) { +// TreeNode node = new TreeNode(); +// node.setType(TreeNode.TYPE_DOCUMENT); +// node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.constant"), constant.getName(), +// constant.getType().getSimpleName())); +// res.add(node); +// } +// return res; +// } - return node; - } - - /** - * Generate header. - * - * @param caption the caption - * - * @return the string - */ - private String generateHeader(String caption) { - StringBuilder sb = new StringBuilder(); - sb.append("<b>"); - sb.append(caption); - sb.append("</b>"); - return sb.toString(); - } - - /** - * Generate exploration application. - * - * @return the tree node - */ - private TreeNode generateExplorationApplication() { - TreeNode node; - node = new TreeNode(); - - node.setType(TreeNode.TYPE_FOLDER); - - node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.applicationexploration"), - getMetadata().getName(), getElement().getMetaData().getVersion().toString(), getElement() - .getMetaData(), true, "metadata", "export", "history", "delete")); - - List<TreeNode> children = new ArrayList<TreeNode>(); - TreeNode node1 = new TreeNode(); - node1.setType(TreeNode.TYPE_FOLDER); - node1.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.components"), "", "")); - node1.setChildren(generateComponents((ExplorationApplication) getElement())); - children.add(node1); - - TreeNode node2 = new TreeNode(); - node2.setType(TreeNode.TYPE_FOLDER); - node2.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.explorations"), "", "")); - node2.setChildren(generateExplorations((ExplorationApplication) getElement())); - children.add(node2); - - node.setChildren(children); - return node; - } - - /** - * Generate explorations. - * - * @param explorationApplication the exploration application - * - * @return the list< tree node> - */ - private List<TreeNode> generateExplorations(ExplorationApplication explorationApplication) { - List<TreeNode> res = new ArrayList<TreeNode>(); - for (ExplorationData data : explorationApplication.getExplorations().getElements()) { - res.add(generateExplorationData(data)); - } - return res; - } - - /** - * Generate exploration data. - * - * @param explorationData the exploration data - * - * @return the tree node - */ - private TreeNode generateExplorationData(ExplorationData explorationData) { - TreeNode explorationDataNode = new TreeNode(); - explorationDataNode.setType(TreeNode.TYPE_FOLDER); - - explorationDataNode.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.explorationdata"), - explorationData.getMetaData().getName(), explorationData.getMetaData().getVersion().toString(), - explorationData.getMetaData(), true, "metadata", "history", "delete")); - - List<TreeNode> children = new ArrayList<TreeNode>(); - - children.add(generateResult(explorationData)); - - TreeNode node1 = new TreeNode(); - node1.setType(TreeNode.TYPE_FOLDER); - node1.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.values"), - generateHeader(getMessages().get("simexplorer.ui.web.type")), generateHeader(getMessages().get( - "simexplorer.ui.web.value")))); - node1.setChildren(generateValues(explorationData)); - children.add(node1); - - explorationDataNode.setChildren(children); - return explorationDataNode; - } - - /** - * Generate values. - * - * @param explorationData the exploration data - * - * @return the list< tree node> - */ - private List<TreeNode> generateValues(ExplorationData explorationData) { - List<ConstantValue> values = explorationData.getConstantValues().getElements(); - List<TreeNode> res = new ArrayList<TreeNode>(); - for (ConstantValue value : values) { - TreeNode node = new TreeNode(); - node.setType(TreeNode.TYPE_DOCUMENT); - node.setColumns(generateStringArray(value.getConstant().getName(), value.getConstant().getType() - .getSimpleName(), value.getValue())); - res.add(node); - } - - return res; - } - - /** - * Generate result. - * - * @param explorationData the exploration data - * - * @return the tree node - */ - private TreeNode generateResult(ExplorationData explorationData) { - TreeNode res = new TreeNode(); - res.setType(TreeNode.TYPE_DOCUMENT); - - res.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.result"), "", "", explorationData - .getMetaData(), false, "export")); - return res; - } - - /** - * Generate components. - * - * @param explorationApplication the exploration application - * - * @return the list< tree node> - */ - private List<TreeNode> generateComponents(ExplorationApplication explorationApplication) { - List<Component> components = explorationApplication.getComponents().getElements(); - List<TreeNode> res = new ArrayList<TreeNode>(); - - for (Component component : components) { - res.add(generateComponent(component)); - } - - return res; - } - - /** - * Inits the node. - * - * @return the tree node - */ - private TreeNode initNode() { - TreeNode node = new TreeNode(); - node.setType(TreeNode.TYPE_FOLDER); - return node; - } - - /** - * Generate component. - * - * @param component the component - * - * @return the tree node - */ - private TreeNode generateComponent(Component component) { - TreeNode componentNode = new TreeNode(); - componentNode.setType(TreeNode.TYPE_FOLDER); - - componentNode.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.component"), component - .getMetaData().getName(), component.getMetaData().getVersion().toString(), component - .getMetaData(), true, "metadata", "history", "delete")); - - List<TreeNode> children = new ArrayList<TreeNode>(); - - TreeNode node; - - node = initNode(); - node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.constant"), - generateHeader(getMessages().get("simexplorer.ui.web.name")), generateHeader(getMessages().get( - "simexplorer.ui.web.type")))); - node.setChildren(generateConstants(component.getConstants())); - - children.add(node); - node = initNode(); - - node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.structures"), "", "")); - node.setChildren(generateStructures(component.getStructures())); - - children.add(node); - node = initNode(); - - node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.codes"), generateHeader(getMessages() - .get("simexplorer.ui.web.language")), generateHeader(getMessages().get("simexplorer.ui.web.code")))); - node.setChildren(generateCodes(component.getCodes())); - - children.add(node); - node = initNode(); - - node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.libraries"), "", "")); - node.setChildren(generateLibraries(component)); - - children.add(node); - - componentNode.setChildren(children); - return componentNode; - } - - /** - * Generate libraries. - * - * @param component the component - * - * @return the list< tree node> - */ - private List<TreeNode> generateLibraries(Component component) { - List<Library> libraries = component.getLibraries(); - - List<TreeNode> res = new ArrayList<TreeNode>(); - for (Library library : libraries) { - TreeNode node = generateLibrary(library); - - res.add(node); - } - return res; - } - - /** - * Generate library. - * - * @param library the library - * - * @return the tree node - */ - private TreeNode generateLibrary(Library library) { - TreeNode node = new TreeNode(); - node.setType(TreeNode.TYPE_DOCUMENT); - node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.library"), library.getMetaData() - .getName(), library.getMetaData().getVersion().toString(), library.getMetaData(), true, "metadata", - "export")); - return node; - } - - /** - * Generate codes. - * - * @param codes the codes - * - * @return the list< tree node> - */ - private List<TreeNode> generateCodes(List<Code> codes) { - List<TreeNode> res = new ArrayList<TreeNode>(); - for (Code code : codes) { - TreeNode node = new TreeNode(); - node.setType(TreeNode.TYPE_DOCUMENT); - node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.code"), code.getLanguage(), code - .getCode())); - res.add(node); - } - return res; - } - - /** - * Generate structures. - * - * @param structures the structures - * - * @return the list< tree node> - */ - @SuppressWarnings("unused") - private List<TreeNode> generateStructures(List<Structure> structures) { - List<TreeNode> res = new ArrayList<TreeNode>(); - for (Structure structure : structures) { - TreeNode node = new TreeNode(); - node.setType(TreeNode.TYPE_DOCUMENT); - node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.structure"), "", "")); - res.add(node); - } - return res; - } - - /** - * Generate constants. - * - * @param constants the constants - * - * @return the list< tree node> - */ - private List<TreeNode> generateConstants(List<Constant> constants) { - List<TreeNode> res = new ArrayList<TreeNode>(); - for (Constant constant : constants) { - TreeNode node = new TreeNode(); - node.setType(TreeNode.TYPE_DOCUMENT); - node.setColumns(generateStringArray(getMessages().get("simexplorer.ui.web.constant"), constant.getName(), - constant.getType().getSimpleName())); - res.add(node); - } - return res; - } - } Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDownload.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDownload.java 2008-03-08 00:28:20 UTC (rev 1308) +++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDownload.java 2008-03-08 00:28:59 UTC (rev 1309) @@ -26,15 +26,12 @@ import org.codelutin.tapestry.beans.TreeNode; import fr.cemagref.simexplorer.is.entities.attachment.Attachment; -import fr.cemagref.simexplorer.is.entities.data.Component; -import fr.cemagref.simexplorer.is.entities.data.ExplorationApplication; -import fr.cemagref.simexplorer.is.entities.data.ExplorationData; -import fr.cemagref.simexplorer.is.entities.data.Library; import fr.cemagref.simexplorer.is.entities.data.LoggableElement; import fr.cemagref.simexplorer.is.entities.metadata.MetaData; import fr.cemagref.simexplorer.is.exceptions.SimExplorerException; import fr.cemagref.simexplorer.is.service.remote.RemoteStorageService; import fr.cemagref.simexplorer.is.ui.web.tools.AttachmentStreamResponse; +import fr.cemagref.simexplorer.is.ui.web.tools.WebEntityVisitor; import fr.cemagref.simexplorer.is.ui.web.tools.XMLAttachment; import fr.cemagref.simexplorer.is.ui.web.tools.ZipAttachment; @@ -141,207 +138,207 @@ */ public List<TreeNode> getNodes() { List<TreeNode> nodes = new ArrayList<TreeNode>(); - // FIXME use visitors - nodes.add(generateNodes()); + WebEntityVisitor webEntityVisitor = new WebEntityVisitor(); + nodes.add(webEntityVisitor.treeNodeVisit(getElement())); return nodes; } - /** - * Generate nodes. - * - * @return the tree node - */ - private TreeNode generateNodes() { - TreeNode node = null; - if (getElement() instanceof ExplorationApplication) { - node = generateExplorationApplication(); - } - if (getElement() instanceof ExplorationData) { - node = generateExplorationData((ExplorationData) getElement()); - } - if (getElement() instanceof Component) { - node = generateComponent((Component) getElement()); - } - if (getElement() instanceof Library) { - node = generateLibrary((Library) getElement()); - } - return node; - } +// /** +// * Generate nodes. +// * +// * @return the tree node +// */ +// private TreeNode generateNodes() { +// TreeNode node = null; +// if (getElement() instanceof ExplorationApplication) { +// node = generateExplorationApplication(); +// } +// if (getElement() instanceof ExplorationData) { +// node = generateExplorationData((ExplorationData) getElement()); +// } +// if (getElement() instanceof Component) { +// node = generateComponent((Component) getElement()); +// } +// if (getElement() instanceof Library) { +// node = generateLibrary((Library) getElement()); +// } +// return node; +// } +// +// /** +// * Generate exploration application. +// * +// * @return the tree node +// */ +// private TreeNode generateExplorationApplication() { +// TreeNode node; +// node = new TreeNode(); +// +// node.setType(TreeNode.TYPE_FOLDER); +// +// node.setColumns(generateStringArray("Application exploration", getMetadata().getName())); +// +// List<TreeNode> children = new ArrayList<TreeNode>(); +// TreeNode node1 = new TreeNode(); +// node1.setType(TreeNode.TYPE_FOLDER); +// node1.setColumns(generateStringArray("Components")); +// node1.setChildren(generateComponents((ExplorationApplication) getElement())); +// children.add(node1); +// +// TreeNode node2 = new TreeNode(); +// node2.setType(TreeNode.TYPE_FOLDER); +// node2.setColumns(generateStringArray("Explorations")); +// node2.setChildren(generateExplorations((ExplorationApplication) getElement())); +// children.add(node2); +// +// node.setChildren(children); +// return node; +// } +// +// /** +// * Generate explorations. +// * +// * @param explorationApplication the exploration application +// * +// * @return the list< tree node> +// */ +// private List<TreeNode> generateExplorations(ExplorationApplication explorationApplication) { +// List<TreeNode> res = new ArrayList<TreeNode>(); +// for (ExplorationData explorationData : explorationApplication.getExplorations().getElements()) { +// res.add(generateExplorationData(explorationData)); +// } +// return res; +// } +// +// /** +// * Generate exploration data. +// * +// * @param explorationData the exploration data +// * +// * @return the tree node +// */ +// private TreeNode generateExplorationData(ExplorationData explorationData) { +// TreeNode explorationDataNode = new TreeNode(); +// explorationDataNode.setType(TreeNode.TYPE_FOLDER); +// +// explorationDataNode +// .setColumns(generateStringArray("Exploration data", explorationData.getMetaData().getName())); +// +// List<TreeNode> children = new ArrayList<TreeNode>(); +// +// List<Attachment> attachments = explorationData.getAttachments(); +// +// for (Attachment attachment : attachments) { +// children.add(generateDownload(explorationData, attachment)); +// } +// explorationDataNode.setChildren(children); +// +// return explorationDataNode; +// } +// +// /** +// * Generate components. +// * +// * @param explorationApplication the exploration application +// * +// * @return the list< tree node> +// */ +// private List<TreeNode> generateComponents(ExplorationApplication explorationApplication) { +// List<Component> components = explorationApplication.getComponents().getElements(); +// List<TreeNode> res = new ArrayList<TreeNode>(); +// +// for (Component component : components) { +// res.add(generateComponent(component)); +// } +// +// return res; +// } +// +// /** +// * Generate component. +// * +// * @param component the component +// * +// * @return the tree node +// */ +// private TreeNode generateComponent(Component component) { +// TreeNode componentNode = new TreeNode(); +// componentNode.setType(TreeNode.TYPE_FOLDER); +// +// componentNode.setColumns(generateStringArray("Component", component.getMetaData().getName())); +// +// List<TreeNode> children = new ArrayList<TreeNode>(); +// +// TreeNode node; +// +// node = new TreeNode(); +// node.setType(TreeNode.TYPE_FOLDER); +// +// node.setColumns(generateStringArray("Libraries")); +// node.setChildren(generateLibraries(component.getLibraries())); +// +// children.add(node); +// +// componentNode.setChildren(children); +// return componentNode; +// } +// +// /** +// * Generate libraries. +// * +// * @param libraries the libraries +// * +// * @return the list< tree node> +// */ +// private List<TreeNode> generateLibraries(List<Library> libraries) { +// List<TreeNode> res = new ArrayList<TreeNode>(); +// for (Library library : libraries) { +// TreeNode node = generateLibrary(library); +// res.add(node); +// } +// return res; +// } +// +// /** +// * Generate library. +// * +// * @param library the library +// * +// * @return the tree node +// */ +// private TreeNode generateLibrary(Library library) { +// TreeNode node = new TreeNode(); +// node.setType(TreeNode.TYPE_FOLDER); +// +// List<Attachment> attachments = library.getAttachments(); +// List<TreeNode> children = new ArrayList<TreeNode>(); +// for (Attachment attachment : attachments) { +// children.add(generateDownload(library, attachment)); +// } +// node.setChildren(children); +// +// node.setColumns(generateStringArray("Library", library.getMetaData().getName())); +// return node; +// } +// +// /** +// * Generate download. +// * +// * @param explorationData the exploration data +// * @param attachment the attachment +// * +// * @return the tree node +// */ +// private TreeNode generateDownload(LoggableElement explorationData, Attachment attachment) { +// TreeNode node = new TreeNode(); +// node.setType(TreeNode.TYPE_DOCUMENT); +// +// String context = explorationData.getMetaData().getUuid() + "," + explorationData.getMetaData().getVersion() +// + "," + attachment.getUniqueId(); +// +// node.setColumns(generateStringArray(attachment.getContentType().getDescription(), attachment.getDataHash(), +// generateString(attachment.getFileName(), "downloadFile", context))); +// return node; +// } - /** - * Generate exploration application. - * - * @return the tree node - */ - private TreeNode generateExplorationApplication() { - TreeNode node; - node = new TreeNode(); - - node.setType(TreeNode.TYPE_FOLDER); - - node.setColumns(generateStringArray("Application exploration", getMetadata().getName())); - - List<TreeNode> children = new ArrayList<TreeNode>(); - TreeNode node1 = new TreeNode(); - node1.setType(TreeNode.TYPE_FOLDER); - node1.setColumns(generateStringArray("Components")); - node1.setChildren(generateComponents((ExplorationApplication) getElement())); - children.add(node1); - - TreeNode node2 = new TreeNode(); - node2.setType(TreeNode.TYPE_FOLDER); - node2.setColumns(generateStringArray("Explorations")); - node2.setChildren(generateExplorations((ExplorationApplication) getElement())); - children.add(node2); - - node.setChildren(children); - return node; - } - - /** - * Generate explorations. - * - * @param explorationApplication the exploration application - * - * @return the list< tree node> - */ - private List<TreeNode> generateExplorations(ExplorationApplication explorationApplication) { - List<TreeNode> res = new ArrayList<TreeNode>(); - for (ExplorationData explorationData : explorationApplication.getExplorations().getElements()) { - res.add(generateExplorationData(explorationData)); - } - return res; - } - - /** - * Generate exploration data. - * - * @param explorationData the exploration data - * - * @return the tree node - */ - private TreeNode generateExplorationData(ExplorationData explorationData) { - TreeNode explorationDataNode = new TreeNode(); - explorationDataNode.setType(TreeNode.TYPE_FOLDER); - - explorationDataNode - .setColumns(generateStringArray("Exploration data", explorationData.getMetaData().getName())); - - List<TreeNode> children = new ArrayList<TreeNode>(); - - List<Attachment> attachments = explorationData.getAttachments(); - - for (Attachment attachment : attachments) { - children.add(generateDownload(explorationData, attachment)); - } - explorationDataNode.setChildren(children); - - return explorationDataNode; - } - - /** - * Generate components. - * - * @param explorationApplication the exploration application - * - * @return the list< tree node> - */ - private List<TreeNode> generateComponents(ExplorationApplication explorationApplication) { - List<Component> components = explorationApplication.getComponents().getElements(); - List<TreeNode> res = new ArrayList<TreeNode>(); - - for (Component component : components) { - res.add(generateComponent(component)); - } - - return res; - } - - /** - * Generate component. - * - * @param component the component - * - * @return the tree node - */ - private TreeNode generateComponent(Component component) { - TreeNode componentNode = new TreeNode(); - componentNode.setType(TreeNode.TYPE_FOLDER); - - componentNode.setColumns(generateStringArray("Component", component.getMetaData().getName())); - - List<TreeNode> children = new ArrayList<TreeNode>(); - - TreeNode node; - - node = new TreeNode(); - node.setType(TreeNode.TYPE_FOLDER); - - node.setColumns(generateStringArray("Libraries")); - node.setChildren(generateLibraries(component.getLibraries())); - - children.add(node); - - componentNode.setChildren(children); - return componentNode; - } - - /** - * Generate libraries. - * - * @param libraries the libraries - * - * @return the list< tree node> - */ - private List<TreeNode> generateLibraries(List<Library> libraries) { - List<TreeNode> res = new ArrayList<TreeNode>(); - for (Library library : libraries) { - TreeNode node = generateLibrary(library); - res.add(node); - } - return res; - } - - /** - * Generate library. - * - * @param library the library - * - * @return the tree node - */ - private TreeNode generateLibrary(Library library) { - TreeNode node = new TreeNode(); - node.setType(TreeNode.TYPE_FOLDER); - - List<Attachment> attachments = library.getAttachments(); - List<TreeNode> children = new ArrayList<TreeNode>(); - for (Attachment attachment : attachments) { - children.add(generateDownload(library, attachment)); - } - node.setChildren(children); - - node.setColumns(generateStringArray("Library", library.getMetaData().getName())); - return node; - } - - /** - * Generate download. - * - * @param explorationData the exploration data - * @param attachment the attachment - * - * @return the tree node - */ - private TreeNode generateDownload(LoggableElement explorationData, Attachment attachment) { - TreeNode node = new TreeNode(); - node.setType(TreeNode.TYPE_DOCUMENT); - - String context = explorationData.getMetaData().getUuid() + "," + explorationData.getMetaData().getVersion() - + "," + attachment.getUniqueId(); - - node.setColumns(generateStringArray(attachment.getContentType().getDescription(), attachment.getDataHash(), - generateString(attachment.getFileName(), "downloadFile", context))); - return node; - } - } Added: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/WebEntityVisitor.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/WebEntityVisitor.java (rev 0) +++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/WebEntityVisitor.java 2008-03-08 00:28:59 UTC (rev 1309) @@ -0,0 +1,47 @@ +/* +* ##% Copyright (C) 2008 Code Lutin, Gabriel Landais +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* ##% */ +package fr.cemagref.simexplorer.is.ui.web.tools; + +import java.util.ArrayList; + +import org.codelutin.tapestry.beans.TreeNode; + +import fr.cemagref.simexplorer.is.entities.Entity; +import fr.cemagref.simexplorer.is.entities.EntityVisitorTreeNode; + +public class WebEntityVisitor extends EntityVisitorTreeNode<TreeNode> { + + protected TreeNode createNode(Entity v, boolean allowedChildren) { + TreeNode treeNode = new TreeNode(); + treeNode.setChildren(new ArrayList<TreeNode>()); + + if (allowedChildren) { + treeNode.setType(TreeNode.TYPE_FOLDER); + } else { + treeNode.setType(TreeNode.TYPE_DOCUMENT); + } + + treeNode.setColumns(new String[] { v.toString() }); + if (getCurrentParent() != null) { + getCurrentParent().getChildren().add(treeNode); + } + + return treeNode; + } + +}