Author: bbrossaud Date: 2010-07-23 17:36:01 +0200 (Fri, 23 Jul 2010) New Revision: 117 Url: http://chorem.org/repositories/revision/bonzoms/117 Log: addition link instead wikitty id Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Model.java trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ResultController.java Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Model.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Model.java 2010-07-23 13:41:12 UTC (rev 116) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/Model.java 2010-07-23 15:36:01 UTC (rev 117) @@ -211,6 +211,11 @@ return proxy.restore(Company.class, id); } + public Wikitty retrieveWikittyById(String id) { + WikittyService service = proxy.getWikittyService(); + return service.restore(proxy.getSecurityToken(), id); + } + /* * Update */ Modified: trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ResultController.java =================================================================== --- trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ResultController.java 2010-07-23 13:41:12 UTC (rev 116) +++ trunk/bonzoms-ui-zk/src/main/java/org/chorem/bonzoms/ui/ResultController.java 2010-07-23 15:36:01 UTC (rev 117) @@ -23,6 +23,7 @@ */ package org.chorem.bonzoms.ui; +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; @@ -34,6 +35,7 @@ import org.chorem.data.bonzoms.Person; import org.chorem.data.bonzoms.Service; import org.nuiton.util.StringUtil; +import org.nuiton.wikitty.FieldType.TYPE; import org.nuiton.wikitty.Wikitty; import org.nuiton.wikitty.WikittyExtension; import org.zkoss.zk.ui.Component; @@ -159,46 +161,88 @@ return cell; } - protected String valuesExtensionRenderer(String extensionName, Wikitty wikitty) { - String values = ""; + protected void extensionWikittyListRenderer(Wikitty wikitty, String extensionName, String fieldName, Listcell cell) { + List<String> ids = wikitty.getFieldAsList(extensionName, fieldName, String.class); + cell.appendChild(new Label(fieldName + " : [")); + if (ids != null) { + for (final String id : ids) { + Toolbarbutton button = new Toolbarbutton("..."); + button.addEventListener(Events.ON_CLICK, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + Wikitty wikitty = model.retrieveWikittyById(id); + createPageByWikitty(wikitty); + } + }); + cell.appendChild(button); + cell.appendChild(new Label(", ")); + } + cell.getLastChild().detach(); + } + cell.appendChild(new Label("]")); + } + + protected void extensionWikittyRenderer(final Wikitty wikitty, String extensionName, String fieldName, Listcell cell) { + final String id = wikitty.getFieldAsString(extensionName, fieldName); + cell.appendChild(new Label(fieldName + " : ")); + if (id != null) { + Toolbarbutton button = new Toolbarbutton("..."); + button.addEventListener(Events.ON_CLICK, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + Wikitty wikitty = model.retrieveWikittyById(id); + createPageByWikitty(wikitty); + } + }); + cell.appendChild(button); + } + } + + protected void valuesExtensionRenderer(String extensionName, Wikitty wikitty, Listcell cell) { WikittyExtension wikittyExtension = wikitty.getExtension(extensionName); Collection<String> fieldNames = wikittyExtension.getFieldNames(); for (String fieldName : fieldNames) { - String result = wikitty.getFieldAsString(extensionName, fieldName); - if (result == null) { - result = ""; - } - if (result.length() > 50) { - result = result.substring(0, 46); + TYPE type = wikittyExtension.getFieldType(fieldName).getType(); + if (type.equals(TYPE.WIKITTY)) { if (wikittyExtension.getFieldType(fieldName).isCollection()) { - result += "...]"; + extensionWikittyListRenderer(wikitty, extensionName, fieldName, cell); } else { - result += "..."; + extensionWikittyRenderer(wikitty, extensionName, fieldName, cell); } + } else { + String result = wikitty.getFieldAsString(extensionName, fieldName); + if (result == null) { + result = ""; + } + Label label = new Label(fieldName + " : " + result); + cell.appendChild(label); } - values += fieldName + " : " + result + "\n"; + Label label = new Label("\n"); + label.setMultiline(true); + cell.appendChild(label); } - return values; } protected Listcell valuesRenderer(Wikitty wikitty) { - String values = ""; Listcell cell = new Listcell(); Collection<String> extensions = wikitty.getExtensionNames(); for (String extension : extensions) { - values += extension + "\n"; - values += valuesExtensionRenderer(extension, wikitty) + "\n"; + Label startLabel = new Label(extension + "\n"); + startLabel.setMultiline(true); + cell.appendChild(startLabel); + valuesExtensionRenderer(extension, wikitty, cell); + Label endLabel = new Label("\n"); + endLabel.setMultiline(true); + cell.appendChild(endLabel); } - Label label = new Label(values); - label.setMultiline(true); - cell.appendChild(label); return cell; } protected Listcell dependanciesRenderer(String id) { Listcell cell = new Listcell(); List<Wikitty> wikitties = model.retrieveAllBySearch(id); - System.out.println("==================>" + wikitties.size()); for (final Wikitty wikitty : wikitties) { Collection<String> extensions = wikitty.getExtensionNames(); String str = StringUtil.join(extensions, ", ", false); @@ -229,7 +273,7 @@ Listcell dependances = dependanciesRenderer(wikitty.getId()); - item.addEventListener(Events.ON_CLICK, new EventListener() { + item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() { @Override public void onEvent(Event event) throws Exception {