Author: glandais Date: 2008-02-07 14:28:29 +0000 (Thu, 07 Feb 2008) New Revision: 716 Added: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java trunk/simexplorer-is-web/src/main/webapp/ElementMetadata.tml Modified: trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/util/KeyValue.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementHistory.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementPageDetail.java trunk/simexplorer-is-web/src/main/webapp/WEB-INF/app.properties trunk/simexplorer-is-web/src/main/webapp/WEB-INF/app_fr.properties trunk/simexplorer-is/src/site/fr/rst/todo.rst Log: Affichage des metadata Modified: trunk/simexplorer-is/src/site/fr/rst/todo.rst =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/todo.rst 2008-02-07 13:24:16 UTC (rev 715) +++ trunk/simexplorer-is/src/site/fr/rst/todo.rst 2008-02-07 14:28:29 UTC (rev 716) @@ -15,14 +15,9 @@ Consultation ------------ + - Détails metadata - Interface utilisateur : CSS, mise en page -Administration --------------- - - - Gestion des utilisateurs : édition de certaines propriétés en fonction des droits (un admin - ne peut pas mettre un utilisateur superadmin, etc) - Client lourd ============ Modified: trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/util/KeyValue.java =================================================================== --- trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/util/KeyValue.java 2008-02-07 13:24:16 UTC (rev 715) +++ trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/util/KeyValue.java 2008-02-07 14:28:29 UTC (rev 716) @@ -29,6 +29,27 @@ private String value; /** + * Instantiates a new key value. + */ + public KeyValue() { + super(); + } + + /** + * Instantiates a new key value. + * + * @param key + * the key + * @param value + * the value + */ + public KeyValue(String key, String value) { + super(); + this.key = key; + this.value = value; + } + + /** * Gets the key. * * @return the key Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java 2008-02-07 13:24:16 UTC (rev 715) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java 2008-02-07 14:28:29 UTC (rev 716) @@ -125,7 +125,7 @@ "simexplorer.ui.web.applicationexploration"), getMetadata().getName(), getElement().getMetaData() .getVersion().toString(), getElement() - .getMetaData(), true, "export", "history", + .getMetaData(), true, "metadata", "export", "history", "delete")); List<TreeNode> children = new ArrayList<TreeNode>(); @@ -182,7 +182,7 @@ "simexplorer.ui.web.explorationdata"), explorationData .getMetaData().getName(), explorationData.getMetaData() .getVersion().toString(), explorationData.getMetaData(), true, - "history", "delete")); + "metadata", "history", "delete")); List<TreeNode> children = new ArrayList<TreeNode>(); @@ -288,7 +288,7 @@ componentNode.setColumns(generateStringArray(getMessages().get( "simexplorer.ui.web.component"), component.getMetaData() .getName(), component.getMetaData().getVersion().toString(), - component.getMetaData(), true, "history", "delete")); + component.getMetaData(), true, "metadata", "history", "delete")); List<TreeNode> children = new ArrayList<TreeNode>(); @@ -364,7 +364,7 @@ node.setColumns(generateStringArray(getMessages().get( "simexplorer.ui.web.library"), library.getMetaData().getName(), library.getMetaData().getVersion().toString(), library - .getMetaData(), true, "export")); + .getMetaData(), true, "metadata", "export")); return node; } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementHistory.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementHistory.java 2008-02-07 13:24:16 UTC (rev 715) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementHistory.java 2008-02-07 14:28:29 UTC (rev 716) @@ -202,7 +202,7 @@ // FIXME date tostring node.setColumns(generateStringArray(mde.getVersion().toString(), mde .getDescription(), mde.getCreationDate().toString(), mde, - false, "export", "delete", "details")); + false, "metadata", "export", "delete", "details")); node.setObject(mde.getVersion()); node.setType(TreeNode.TYPE_DOCUMENT); return node; Added: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java (rev 0) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java 2008-02-07 14:28:29 UTC (rev 716) @@ -0,0 +1,172 @@ +/* +* ##% 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.pages; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.codelutin.tapestry.beans.TreeNode; + +import fr.cemagref.simexplorer.is.attachment.Attachment; +import fr.cemagref.simexplorer.is.entities.metadata.MetaData; + +/** + * The Class ElementMetadata. + */ +public class ElementMetadata extends ElementPageDetail { + + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.ui.web.pages.security.ProtectedPage#getWindowTitle() + */ + @Override + public String getWindowTitle() { + return getMessages().get("simexplorer.ui.web.title.elementmetadata"); + } + + /** + * Headers of tree grid. + * + * @return Headers + */ + public List<String> getHeaders() { + List<String> result = new ArrayList<String>(); + result.add(getMessages().get("simexplorer.ui.web.name")); + result.add(getMessages().get("simexplorer.ui.web.value")); + return result; + } + + /** + * Gets the versions. + * + * @return the versions + */ + public List<TreeNode> getNodes() { + List<TreeNode> nodes = new ArrayList<TreeNode>(); + MetaData m = getMetadata(); + nodes.add(simpleNode(getMessages().get( + "simexplorer.ui.web.metadata.uuid"), m.getUuid())); + nodes.add(simpleNode(getMessages().get( + "simexplorer.ui.web.metadata.version"), m.getVersion() + .toString())); + nodes.add(simpleNode(getMessages().get( + "simexplorer.ui.web.metadata.name"), m.getName())); + nodes.add(simpleNode(getMessages().get( + "simexplorer.ui.web.metadata.type"), m.getType())); + nodes + .add(simpleNode(getMessages().get( + "simexplorer.ui.web.metadata.description"), m + .getDescription())); + // FIXME date tostring + nodes.add(simpleNode(getMessages().get( + "simexplorer.ui.web.metadata.creationDate"), m + .getCreationDate().toString())); + nodes.add(simpleNode(getMessages().get( + "simexplorer.ui.web.metadata.hash"), m.getHash())); + nodes.add(simpleNode(getMessages().get( + "simexplorer.ui.web.metadata.parentdata.uuid"), m + .getParentDataUuid())); + nodes.add(simpleNode(getMessages().get( + "simexplorer.ui.web.metadata.parentdata.version"), m + .getParentDataVersion())); + nodes.add(simpleNode(getMessages().get( + "simexplorer.ui.web.metadata.parentversion.uuid"), m + .getParentVersionUuid())); + nodes.add(simpleNode(getMessages().get( + "simexplorer.ui.web.metadata.parentversion.version"), m + .getParentVersionVersion())); + nodes.add(descriptorsNode(m.getDescriptors())); + nodes.add(attachmentsNode(m.getAttachments())); + return nodes; + } + + /** + * Attachments node. + * + * @param attachments + * the attachments + * + * @return the tree node + */ + private TreeNode attachmentsNode(List<Attachment> attachments) { + TreeNode aNode = new TreeNode(); + aNode.setType(TreeNode.TYPE_FOLDER); + aNode.setColumns(generateStringArray(getMessages().get( + "simexplorer.ui.web.metadata.attachments"))); + List<TreeNode> attachmentNodes = new ArrayList<TreeNode>(); + for (Attachment attachment : attachments) { + StringBuffer description = new StringBuffer(); + if (attachment.getContentType() != null) { + description + .append(attachment.getContentType().getDescription()) + .append(" - "); + } + if (attachment.getContentType() != null) { + description.append("MD5 : ").append(attachment.getDataHash()); + } + attachmentNodes.add(simpleNode(attachment.getFileName(), + description.toString())); + } + aNode.setChildren(attachmentNodes); + return aNode; + } + + /** + * Descriptors node. + * + * @param descriptors + * the descriptors + * + * @return the tree node + */ + private TreeNode descriptorsNode(Map<String, String> descriptors) { + TreeNode aNode = new TreeNode(); + aNode.setType(TreeNode.TYPE_FOLDER); + aNode.setColumns(generateStringArray(getMessages().get( + "simexplorer.ui.web.metadata.descriptors"))); + List<TreeNode> descriptorNodes = new ArrayList<TreeNode>(); + for (Map.Entry<String, String> descriptor : descriptors.entrySet()) { + descriptorNodes.add(simpleNode(descriptor.getKey(), descriptor + .getValue())); + } + aNode.setChildren(descriptorNodes); + return aNode; + } + + /** + * Simple node. + * + * @param s1 + * the s1 + * @param s2 + * the s2 + * + * @return the tree node + */ + private TreeNode simpleNode(String s1, String s2) { + TreeNode aNode = new TreeNode(); + aNode.setType(TreeNode.TYPE_DOCUMENT); + String rs2 = s2; + if (rs2 == null) { + rs2 = ""; + } + aNode.setColumns(generateStringArray(s1, rs2)); + return aNode; + } + +} Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementPageDetail.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementPageDetail.java 2008-02-07 13:24:16 UTC (rev 715) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementPageDetail.java 2008-02-07 14:28:29 UTC (rev 716) @@ -57,23 +57,41 @@ @InjectPage private ElementDetail elementDetail; + /** The element metadata. */ + @InjectPage + private ElementMetadata elementMetadata; + /** - * On export. + * Prepare page. * + * @param page + * the page * @param context * the context * * @return the object */ - public Object onExport(String context) { + private Object preparePage(ElementPage page, String context) { StringTokenizer st = new StringTokenizer(context, ","); String uuid = st.nextToken(); String version = st.nextToken(); - elementExport.setup(uuid, version); - return elementExport; + page.setup(uuid, version); + return page; } /** + * On export. + * + * @param context + * the context + * + * @return the object + */ + public Object onExport(String context) { + return preparePage(elementExport, context); + } + + /** * On history. * * @param context @@ -82,11 +100,7 @@ * @return the object */ public Object onHistory(String context) { - StringTokenizer st = new StringTokenizer(context, ","); - String uuid = st.nextToken(); - String version = st.nextToken(); - elementHistory.setup(uuid, version); - return elementHistory; + return preparePage(elementHistory, context); } /** @@ -98,11 +112,7 @@ * @return the object */ public Object onDelete(String context) { - StringTokenizer st = new StringTokenizer(context, ","); - String uuid = st.nextToken(); - String version = st.nextToken(); - elementDelete.setup(uuid, version); - return elementDelete; + return preparePage(elementDelete, context); } /** @@ -114,11 +124,7 @@ * @return the object */ public Object onRights(String context) { - StringTokenizer st = new StringTokenizer(context, ","); - String uuid = st.nextToken(); - String version = st.nextToken(); - elementRights.setup(uuid, version); - return elementRights; + return preparePage(elementRights, context); } /** @@ -130,14 +136,22 @@ * @return the object */ public Object onDetails(String context) { - StringTokenizer st = new StringTokenizer(context, ","); - String uuid = st.nextToken(); - String version = st.nextToken(); - elementDetail.setup(uuid, version); - return elementDetail; + return preparePage(elementDetail, context); } /** + * On metadata. + * + * @param context + * the context + * + * @return the object + */ + public Object onMetadata(String context) { + return preparePage(elementMetadata, context); + } + + /** * Generate string. * * @param actionCaption Added: trunk/simexplorer-is-web/src/main/webapp/ElementMetadata.tml =================================================================== --- trunk/simexplorer-is-web/src/main/webapp/ElementMetadata.tml (rev 0) +++ trunk/simexplorer-is-web/src/main/webapp/ElementMetadata.tml 2008-02-07 14:28:29 UTC (rev 716) @@ -0,0 +1,9 @@ +<t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd" + title="${windowtitle}"> + + <table t:type="cl/TreeGrid" source="nodes" columnHeaders="headers"> + </table> + + <p><t:back label="${message:simexplorer.ui.web.back}" /></p> + +</t:layout> Modified: trunk/simexplorer-is-web/src/main/webapp/WEB-INF/app.properties =================================================================== --- trunk/simexplorer-is-web/src/main/webapp/WEB-INF/app.properties 2008-02-07 13:24:16 UTC (rev 715) +++ trunk/simexplorer-is-web/src/main/webapp/WEB-INF/app.properties 2008-02-07 14:28:29 UTC (rev 716) @@ -30,6 +30,7 @@ simexplorer.ui.web.title.elementexport=Element export simexplorer.ui.web.title.elementhistory=Element history simexplorer.ui.web.title.elementimport=Element import +simexplorer.ui.web.title.elementmetadata=Element metadata simexplorer.ui.web.title.elementrights=Element rights simexplorer.ui.web.title.groupedit=Group edit simexplorer.ui.web.title.grouplist=Group list @@ -108,6 +109,21 @@ simexplorer.ui.web.elementlist.details=Details +simexplorer.ui.web.metadata.action=Metadata +simexplorer.ui.web.metadata.uuid=UUID +simexplorer.ui.web.metadata.version=Version +simexplorer.ui.web.metadata.name=Name +simexplorer.ui.web.metadata.type=Type +simexplorer.ui.web.metadata.description=Description +simexplorer.ui.web.metadata.creationDate=Creation date +simexplorer.ui.web.metadata.hash=Hash +simexplorer.ui.web.metadata.parentdata.uuid=Data parent : UUID +simexplorer.ui.web.metadata.parentdata.version=Data parent : Version +simexplorer.ui.web.metadata.parentversion.uuid=Version parent : UUID +simexplorer.ui.web.metadata.parentversion.version=Version parent : Version +simexplorer.ui.web.metadata.attachments=Attachments +simexplorer.ui.web.metadata.descriptors=Descriptors + simexplorer.ui.web.rights.properties=Properties simexplorer.ui.web.rights.owner=Owner simexplorer.ui.web.rights.read=Read Modified: trunk/simexplorer-is-web/src/main/webapp/WEB-INF/app_fr.properties =================================================================== --- trunk/simexplorer-is-web/src/main/webapp/WEB-INF/app_fr.properties 2008-02-07 13:24:16 UTC (rev 715) +++ trunk/simexplorer-is-web/src/main/webapp/WEB-INF/app_fr.properties 2008-02-07 14:28:29 UTC (rev 716) @@ -30,6 +30,7 @@ simexplorer.ui.web.title.elementexport=Export d'un élément simexplorer.ui.web.title.elementhistory=Historique d'un élément simexplorer.ui.web.title.elementimport=Import d'un élément +simexplorer.ui.web.title.elementmetadata=Metadonnées d'un élément simexplorer.ui.web.title.elementrights=Droits sur un élément simexplorer.ui.web.title.groupedit=Edition d'un groupe simexplorer.ui.web.title.grouplist=Liste des groupes @@ -108,6 +109,21 @@ simexplorer.ui.web.elementlist.details=Details +simexplorer.ui.web.metadata.action=Metadonnées +simexplorer.ui.web.metadata.uuid=UUID +simexplorer.ui.web.metadata.version=Version +simexplorer.ui.web.metadata.name=Nom +simexplorer.ui.web.metadata.type=Type +simexplorer.ui.web.metadata.description=Description +simexplorer.ui.web.metadata.creationDate=Date de création +simexplorer.ui.web.metadata.hash=Hash +simexplorer.ui.web.metadata.parentdata.uuid=Parent de données : UUID +simexplorer.ui.web.metadata.parentdata.version=Parent de données : Version +simexplorer.ui.web.metadata.parentversion.uuid=Parent de version : UUID +simexplorer.ui.web.metadata.parentversion.version=Parent de version : Version +simexplorer.ui.web.metadata.attachments=Fichiers +simexplorer.ui.web.metadata.descriptors=Descripteurs + simexplorer.ui.web.rights.properties=Propriétés simexplorer.ui.web.rights.owner=Propriétaires simexplorer.ui.web.rights.read=Lecture