Author: glandais Date: 2008-01-04 16:00:46 +0000 (Fri, 04 Jan 2008) New Revision: 95 Added: trunk/simexplorer-is-web/src/webcontent/WEB-INF/lib/tapestry5-treegrid-0.0.1-SNAPSHOT.jar Removed: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components/TreeGrid.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components/beans/ trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/components/css/TreeGrid.css trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/components/images/ trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/components/js/ Modified: trunk/simexplorer-is-web/.classpath trunk/simexplorer-is-web/pom.xml trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationDetail.java trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationDetail.properties trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationImport.properties trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationList.properties trunk/simexplorer-is-web/src/webcontent/ApplicationDetail.tml Log: Externalisation du composant TreeGrid Affichage d'une exploration Modified: trunk/simexplorer-is-web/.classpath =================================================================== --- trunk/simexplorer-is-web/.classpath 2008-01-04 15:59:36 UTC (rev 94) +++ trunk/simexplorer-is-web/.classpath 2008-01-04 16:00:46 UTC (rev 95) @@ -4,11 +4,12 @@ <classpathentry kind="src" path="target/gen/java"/> <classpathentry kind="src" path="src/ressources"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry combineaccessrules="false" kind="src" path="/simexplorer-is-storage"/> <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"> <attributes> <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> </attributes> </classpathentry> - <classpathentry combineaccessrules="false" kind="src" path="/simexplorer-is-storage"/> + <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> <classpathentry kind="output" path="target/classes"/> </classpath> Modified: trunk/simexplorer-is-web/pom.xml =================================================================== --- trunk/simexplorer-is-web/pom.xml 2008-01-04 15:59:36 UTC (rev 94) +++ trunk/simexplorer-is-web/pom.xml 2008-01-04 16:00:46 UTC (rev 95) @@ -158,5 +158,6 @@ <version>2.0.2</version> <scope>compile</scope> </dependency> + </dependencies> </project> \ No newline at end of file Deleted: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components/TreeGrid.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components/TreeGrid.java 2008-01-04 15:59:36 UTC (rev 94) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components/TreeGrid.java 2008-01-04 16:00:46 UTC (rev 95) @@ -1,147 +0,0 @@ -package fr.cemagref.simexplorer.is.ui.web.components; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.apache.tapestry.MarkupWriter; -import org.apache.tapestry.annotations.Environmental; -import org.apache.tapestry.annotations.IncludeJavaScriptLibrary; -import org.apache.tapestry.annotations.IncludeStylesheet; -import org.apache.tapestry.annotations.Parameter; -import org.apache.tapestry.annotations.SupportsInformalParameters; -import org.apache.tapestry.services.Heartbeat; - -import fr.cemagref.simexplorer.is.ui.web.components.beans.RenderableNode; -import fr.cemagref.simexplorer.is.ui.web.components.beans.TreeNode; - - at SupportsInformalParameters - at IncludeStylesheet("css/TreeGrid.css") - at IncludeJavaScriptLibrary("js/TreeGrid.js") -public class TreeGrid { - - private List<RenderableNode> list; - - /** - * Iterator to iterate over all tree elements - */ - private Iterator<RenderableNode> iterator; - - /** - * Defines the source Tree to walk over. - */ - @Parameter(required = true) - private List<TreeNode> source; - - @Parameter(required = true) - private List<String> columnHeaders; - - /** - * Current node of the tree - */ - private RenderableNode currentNode; - - @Environmental - private Heartbeat heartbeat; - - private void buildSourceList(TreeNode treeNode, int depth, String dotId) { - list.add(new RenderableNode(treeNode, depth, dotId)); - TreeNode[] children = (TreeNode[]) treeNode.getChildren(); - for (int i = 0; i < children.length; i++) { - if (!list.contains(children[i])) { - buildSourceList(children[i], depth + 1, dotId + "-" + i); - } - } - } - - boolean setupRender(MarkupWriter writer) { - if (source == null) - return false; - - list = new ArrayList<RenderableNode>(); - int i = 0; - for (TreeNode node : source) { - buildSourceList(node, 0, Integer.toString(i)); - i++; - } - iterator = list.iterator(); - - // begin table - writer.element("table", "width", "100%"); - - // header row - writer.element("tr"); - if (columnHeaders != null) { - int col = 0; - for (String column : columnHeaders) { - /* - if (col == 0) { - writer.element("th", "width", "20%"); - } else { - writer.element("th"); - } - */ - writer.element("th"); - writer.writeRaw(column); - writer.end(); - col++; - } - } - writer.end(); - - return (iterator.hasNext()); - } - - /** Begins a new heartbeat. */ - void beginRender() { - currentNode = iterator.next(); - heartbeat.begin(); - } - - void beforeRenderBody(MarkupWriter writer) { - String[] columns = currentNode.getInnerNode().getColumns(); - - writer.element("tr", "id", currentNode.getDotId(), "class", "a"); - - writer.element("td"); - writer.element("div", "class", "tier" + currentNode.getDepth()); - if (currentNode.getInnerNode().getType() == TreeNode.TYPE_FOLDER) { - writer.element("a", "href", "#", "class", "folderopen", "onclick", - "toggleRows(this)"); - } else { - writer.element("a", "href", "#", "class", "doc"); - } - // a - writer.end(); - - if (columns.length > 0) { - writer.writeRaw(columns[0]); - } - // div - writer.end(); - // td - writer.end(); - - for (int i = 1; i < columns.length; i++) { - writer.element("td"); - writer.writeRaw(columns[i]); - // td - writer.end(); - } - - // tr - writer.end(); - } - - /** Ends the current heartbeat. */ - boolean afterRender() { - heartbeat.end(); - return (!iterator.hasNext()); - } - - void cleanupRender(MarkupWriter writer) { - // end table - writer.end(); - } - -} Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationDetail.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationDetail.java 2008-01-04 15:59:36 UTC (rev 94) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationDetail.java 2008-01-04 16:00:46 UTC (rev 95) @@ -2,81 +2,205 @@ import java.util.ArrayList; import java.util.List; -import java.util.Random; +import java.util.Set; import org.apache.tapestry.annotations.Persist; +import org.codelutin.tapestry.beans.TreeNode; -import fr.cemagref.simexplorer.is.storage.entities.metadata.MetaDataEntity; -import fr.cemagref.simexplorer.is.ui.web.components.beans.TreeNode; +import fr.cemagref.simexplorer.is.storage.entities.data.Code; +import fr.cemagref.simexplorer.is.storage.entities.data.Component; +import fr.cemagref.simexplorer.is.storage.entities.data.Constant; +import fr.cemagref.simexplorer.is.storage.entities.data.ConstantValue; +import fr.cemagref.simexplorer.is.storage.entities.data.ExplorationApplication; +import fr.cemagref.simexplorer.is.storage.entities.data.ExplorationData; +import fr.cemagref.simexplorer.is.storage.entities.data.Library; +import fr.cemagref.simexplorer.is.storage.entities.data.Result; +import fr.cemagref.simexplorer.is.storage.entities.data.Structure; import fr.cemagref.simexplorer.is.ui.web.services.StorageServiceFactory; public class ApplicationDetail extends AbstractApplicationDetail { @Persist - private MetaDataEntity explorationApplication; + private ExplorationApplication explorationApplication; public void setup(String uuid, String version) throws Exception { explorationApplication = StorageServiceFactory.getService() - .getMetadata(uuid, version); + .getExplorationApplication(uuid, version); } - public MetaDataEntity getExplorationApplication() { - return explorationApplication; + public List<String> getHeaders() { + List<String> result = new ArrayList<String>(); + result.add(""); + result.add(""); + result.add(""); + return result; } - public void setExplorationApplication(MetaDataEntity explorationApplication) { - this.explorationApplication = explorationApplication; + public List<TreeNode> getNodes() { + List<TreeNode> nodes = new ArrayList<TreeNode>(); + nodes.add(generateAppllication()); + return nodes; } - public String getMessage() { - return explorationApplication.getDescription(); + private String[] generateStringArray(String s1, String s2, String s3) { + String[] res = new String[4]; + res[0] = s1; + res[1] = s2; + res[2] = s3; + return res; } - private Random r = new Random(); - - private TreeNode generateNode(TreeNode parent, int level) { + private TreeNode generateAppllication() { TreeNode node = new TreeNode(); - node.setIdentifier(r.nextLong()); + node.setType(TreeNode.TYPE_FOLDER); - if (level > 1 && (r.nextBoolean() || level == 4)) { - node.setType(TreeNode.TYPE_DOCUMENT); - node.setChildren(new TreeNode[0]); - } else { - int c = 3 + r.nextInt(5); - TreeNode[] children = new TreeNode[c]; - for (int i = 0; i < children.length; i++) { - children[i] = generateNode(node, level + 1); - } - node.setType(TreeNode.TYPE_FOLDER); - node.setChildren(children); + node.setColumns(generateStringArray("Exploration Application", + explorationApplication.getMetaData().getDescription(), + explorationApplication.getMetaData().getVersion().toString())); + TreeNode[] children = new TreeNode[2]; + children[0] = new TreeNode(); + children[0].setType(TreeNode.TYPE_FOLDER); + children[0].setColumns(generateStringArray("Components", "", "")); + children[0].setChildren(generateComponents()); + + children[1] = new TreeNode(); + children[1].setType(TreeNode.TYPE_FOLDER); + children[1].setColumns(generateStringArray("Explorations", "", "")); + children[1].setChildren(generateExplorations()); + + node.setChildren(children); + + return node; + } + + private TreeNode[] generateExplorations() { + TreeNode[] res = new TreeNode[explorationApplication.getExplorations() + .size()]; + int i = 0; + for (ExplorationData explorationData : explorationApplication + .getExplorations()) { + res[i] = new TreeNode(); + res[i].setType(TreeNode.TYPE_FOLDER); + res[i].setColumns(generateStringArray("Exploration data", + explorationData.getMetaData().getDescription(), + explorationData.getMetaData().getVersion().toString())); + TreeNode[] children = new TreeNode[2]; + children[0] = generateResult(explorationData.getResult()); + children[1] = new TreeNode(); + children[1].setType(TreeNode.TYPE_FOLDER); + children[1].setColumns(generateStringArray("Values", "", "")); + children[1].setChildren(generateValues(explorationData)); + res[i].setChildren(children); + i++; } + return res; + } - String[] columns = new String[3]; - for (int i = 0; i < columns.length; i++) { - columns[i] = Long.toHexString(r.nextLong()); - if (r.nextBoolean()) { - columns[i] = "<b>" + columns[i] + "</b>"; + private TreeNode[] generateValues(ExplorationData explorationData) { + Set<ConstantValue> values = explorationData.getValuesMap(); + TreeNode[] res = new TreeNode[values.size()]; + int i = 0; + for (ConstantValue value : values) { + res[i] = new TreeNode(); + res[i].setType(TreeNode.TYPE_DOCUMENT); + res[i].setColumns(generateStringArray( + value.getConstant().getName(), value.getValue(), value + .getConstant().getType().getSimpleName())); + i++; + } + + return res; + } + + private TreeNode generateResult(Result result) { + TreeNode res = new TreeNode(); + res.setType(TreeNode.TYPE_DOCUMENT); + res.setColumns(generateStringArray("Result", "", "")); + return res; + } + + private TreeNode[] generateComponents() { + Set<Component> components = explorationApplication.getComponents(); + TreeNode[] res = new TreeNode[components.size()]; + + int i = 0; + for (Component component : components) { + res[i] = new TreeNode(); + res[i].setType(TreeNode.TYPE_FOLDER); + res[i].setColumns(generateStringArray("Component", component + .getMetaData().getDescription(), component.getMetaData() + .getVersion().toString())); + TreeNode[] children = new TreeNode[4]; + for (int j = 0; j < children.length; j++) { + children[j] = new TreeNode(); + children[j].setType(TreeNode.TYPE_FOLDER); } + children[0].setColumns(generateStringArray("Constants", "", "")); + children[0] + .setChildren(generateConstants(component.getConstants())); + children[1].setColumns(generateStringArray("Structures", "", "")); + children[1].setChildren(generateStructures(component + .getStructures())); + children[2].setColumns(generateStringArray("Codes", "", "")); + children[2].setChildren(generateCodes(component.getCodes())); + children[3].setColumns(generateStringArray("Libraries", "", "")); + children[3] + .setChildren(generateLibraries(component.getLibraries())); + res[i].setChildren(children); + i++; } - node.setColumns(columns); - return node; + return res; } - public List<TreeNode> getNodes() { - List<TreeNode> nodes = new ArrayList<TreeNode>(); - nodes.add(generateNode(null, 0)); - nodes.add(generateNode(null, 0)); - nodes.add(generateNode(null, 0)); - return nodes; + private TreeNode[] generateLibraries(Set<Library> libraries) { + TreeNode[] res = new TreeNode[libraries.size()]; + int i = 0; + for (Library library : libraries) { + res[i] = new TreeNode(); + res[i].setType(TreeNode.TYPE_DOCUMENT); + res[i].setColumns(generateStringArray("Library", "", "")); + i++; + } + return res; } - public List<String> getHeaders() { - List<String> result = new ArrayList<String>(); - result.add(""); - result.add(""); - result.add(""); - return result; + private TreeNode[] generateCodes(Set<Code> codes) { + TreeNode[] res = new TreeNode[codes.size()]; + int i = 0; + for (Code code : codes) { + res[i] = new TreeNode(); + res[i].setType(TreeNode.TYPE_DOCUMENT); + res[i].setColumns(generateStringArray("Code", code.getLanguage(), + code.getCode())); + i++; + } + return res; } + private TreeNode[] generateStructures(Set<Structure> structures) { + TreeNode[] res = new TreeNode[structures.size()]; + int i = 0; + for (Structure structure : structures) { + res[i] = new TreeNode(); + res[i].setType(TreeNode.TYPE_DOCUMENT); + res[i].setColumns(generateStringArray("Structure", "", "")); + i++; + } + return res; + } + + private TreeNode[] generateConstants(Set<Constant> constants) { + TreeNode[] res = new TreeNode[constants.size()]; + int i = 0; + for (Constant constant : constants) { + res[i] = new TreeNode(); + res[i].setType(TreeNode.TYPE_DOCUMENT); + res[i].setColumns(generateStringArray("Constant", constant + .getName(), constant.getType().getSimpleName())); + i++; + } + return res; + } + } Deleted: trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/components/css/TreeGrid.css =================================================================== --- trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/components/css/TreeGrid.css 2008-01-04 15:59:36 UTC (rev 94) +++ trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/components/css/TreeGrid.css 2008-01-04 16:00:46 UTC (rev 95) @@ -1,67 +0,0 @@ -.folderclose { - background: transparent url(../images/folder-closed.gif) - no-repeat scroll 0%; - float: left; - height: 14px; - padding-right: 3px; - width: 26px; -} - -.folderopen { - background: transparent url(../images/folder-open.gif) - no-repeat scroll 0%; - float: left; - height: 14px; - padding-right: 3px; - width: 26px; -} - -.doc { - background: transparent url(../images/file.gif) no-repeat - scroll 0%; - float: left; - height: 14px; - margin-left: 20px; - padding-right: 3px; - width: 12px; -} - -.tier0 { - margin-left: 0pt; -} - -.tier1 { - margin-left: 1.5em; -} - -.tier2 { - margin-left: 3em; -} - -.tier3 { - margin-left: 4.5em; -} - -.tier4 { - margin-left: 6em; -} - -.tier5 { - margin-left: 7.5em; -} - -.tier6 { - margin-left: 9em; -} - -.tier7 { - margin-left: 10.5em; -} - -.tier8 { - margin-left: 12em; -} - -.tier9 { - margin-left: 13.5em; -} \ No newline at end of file Modified: trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationDetail.properties =================================================================== --- trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationDetail.properties 2008-01-04 15:59:36 UTC (rev 94) +++ trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationDetail.properties 2008-01-04 16:00:46 UTC (rev 95) @@ -0,0 +1 @@ +windowtitle=Application detail \ No newline at end of file Modified: trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationImport.properties =================================================================== --- trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationImport.properties 2008-01-04 15:59:36 UTC (rev 94) +++ trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationImport.properties 2008-01-04 16:00:46 UTC (rev 95) @@ -1,2 +1,4 @@ windowtitle=Import -upload=Upload \ No newline at end of file +upload=Upload +explorationapplication=Exploration application +library=Library \ No newline at end of file Modified: trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationList.properties =================================================================== --- trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationList.properties 2008-01-04 15:59:36 UTC (rev 94) +++ trunk/simexplorer-is-web/src/ressources/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationList.properties 2008-01-04 16:00:46 UTC (rev 95) @@ -0,0 +1 @@ +windowtitle=Application list \ No newline at end of file Modified: trunk/simexplorer-is-web/src/webcontent/ApplicationDetail.tml =================================================================== --- trunk/simexplorer-is-web/src/webcontent/ApplicationDetail.tml 2008-01-04 15:59:36 UTC (rev 94) +++ trunk/simexplorer-is-web/src/webcontent/ApplicationDetail.tml 2008-01-04 16:00:46 UTC (rev 95) @@ -1,7 +1,7 @@ <t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd" title="message:windowtitle"> - <t:TreeGrid source="nodes" columnHeaders="headers"> - </t:TreeGrid> + <table t:type="cl/TreeGrid" source="nodes" columnHeaders="headers"> + </table> </t:layout> Added: trunk/simexplorer-is-web/src/webcontent/WEB-INF/lib/tapestry5-treegrid-0.0.1-SNAPSHOT.jar =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-is-web/src/webcontent/WEB-INF/lib/tapestry5-treegrid-0.0.1-SNAPSHOT.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream