Author: bbrossaud Date: 2010-06-28 16:10:45 +0200 (Mon, 28 Jun 2010) New Revision: 160 Url: http://nuiton.org/repositories/revision/wikitty/160 Log: add search bar and tooltips but the carriage return for the tooltip doesn't work Modified: trunk/wikitty-ui-zk/pom.xml trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/Model.java trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/WikittyController.java trunk/wikitty-ui-zk/src/main/webapp/index.zul trunk/wikitty-ui-zk/src/main/webapp/wikitty.zul Modified: trunk/wikitty-ui-zk/pom.xml =================================================================== --- trunk/wikitty-ui-zk/pom.xml 2010-06-27 06:36:25 UTC (rev 159) +++ trunk/wikitty-ui-zk/pom.xml 2010-06-28 14:10:45 UTC (rev 160) @@ -87,7 +87,6 @@ <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> - <version>1.2.136</version> <scope>runtime</scope> </dependency> @@ -188,3 +187,4 @@ + Modified: trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/Model.java =================================================================== --- trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/Model.java 2010-06-27 06:36:25 UTC (rev 159) +++ trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/Model.java 2010-06-28 14:10:45 UTC (rev 160) @@ -6,6 +6,7 @@ import java.util.ArrayList; import java.util.List; +import org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator.ElGamal; import org.nuiton.wikitty.Criteria; import org.nuiton.wikitty.Wikitty; import org.nuiton.wikitty.WikittyExtension; @@ -50,6 +51,14 @@ List<Wikitty> wikitties = _service.findAllByCriteria(null, criteria).cast(null, _service).getAll(); return wikitties; } + + public List<Wikitty> retrieveWikittiesByKeyword(String search) { + List<Wikitty> wikitties = new ArrayList<Wikitty>(); + Criteria criteria = Search.query().keyword(search).criteria(); + wikitties = _service.findAllByCriteria(null, criteria).cast(null, _service).getAll(); + return wikitties; + } + /* * Update */ Modified: trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/WikittyController.java =================================================================== --- trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/WikittyController.java 2010-06-27 06:36:25 UTC (rev 159) +++ trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/WikittyController.java 2010-06-28 14:10:45 UTC (rev 160) @@ -5,6 +5,8 @@ package org.nuiton.wikitty.ui; import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; import java.util.List; import java.util.Set; import javax.servlet.http.HttpSession; @@ -13,10 +15,15 @@ import org.nuiton.wikitty.WikittyProxy; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.util.GenericForwardComposer; +import org.zkoss.zul.Hbox; +import org.zkoss.zul.Label; import org.zkoss.zul.ListModel; import org.zkoss.zul.Listbox; +import org.zkoss.zul.Listcell; import org.zkoss.zul.Listitem; import org.zkoss.zul.ListitemRenderer; +import org.zkoss.zul.Popup; +import org.zkoss.zul.Textbox; /** * @@ -34,15 +41,24 @@ protected WikittyModel _wikittyModel = new WikittyModel(); public WikittyController() { - HttpSession Session = (HttpSession) Executions.getCurrent().getDesktop().getSession().getNativeSession(); - WikittyProxy proxy = (WikittyProxy) Session.getAttribute("proxy"); - _model = new Model(proxy.getWikittyService()); + HttpSession Session = (HttpSession) Executions.getCurrent().getDesktop().getSession().getNativeSession(); + WikittyProxy proxy = (WikittyProxy) Session.getAttribute("proxy"); + _model = new Model(proxy.getWikittyService()); _extensions = _model.retrieveWikittyExtensions(); } /* * Events */ + public void onOK$Search() { + Textbox textbox = (Textbox) self.getFellow("Search"); + String search = textbox.getValue(); + if (search != null && !search.isEmpty()) { + List<Wikitty> wikitties = _model.retrieveWikittiesByKeyword(search); + _wikittyModel.setWikitties(wikitties); + } + } + public void onClick$addNewInput() { _wikittyForm.addNewInput(formListBox); } @@ -86,7 +102,43 @@ @Override public void render(Listitem item, Object data) throws Exception { item.setValue(data); - item.setLabel(((Wikitty) data).getId()); + Listcell cell1 = new Listcell(((Wikitty) data).getId()); + Listcell cell2 = new Listcell(); + item.appendChild(cell1); + item.appendChild(cell2); + Hbox box = new Hbox(); + cell2.appendChild(box); + Collection<String> extensions = ((Wikitty) data).getExtensionNames(); + Iterator<String> itCurrent = extensions.iterator(); + while (itCurrent.hasNext()) { + String extension = itCurrent.next(); + String toolTip = ""; + WikittyExtension wikittyExtension = ((Wikitty) data).getExtension(extension); + Collection<String> fieldNames = wikittyExtension.getFieldNames(); + for (String fieldName : fieldNames) { + String result = ((Wikitty) data).getFieldAsString(extension, fieldName); + if (result == null) { + result = ""; + } + if (result.length() > 50) { + result = result.substring(0, 46); + if (wikittyExtension.getFieldType(fieldName).isCollection()) { + result += "...]"; + } else { + result += "..."; + } + } + toolTip += fieldName + " : " + result + "\n"; + } + if (itCurrent.hasNext()) { + extension += ", "; + } + Label label = new Label(extension); + label.setTooltiptext(toolTip); + label.setMultiline(true); + System.out.println(label.getTooltiptext()); + box.appendChild(label); + } } }; } @@ -135,10 +187,6 @@ _wikittyForm.setWikitty(current); } - private void debbug(String debug) { - throw new UnsupportedOperationException(debug); - } - /* * Methods */ Modified: trunk/wikitty-ui-zk/src/main/webapp/index.zul =================================================================== --- trunk/wikitty-ui-zk/src/main/webapp/index.zul 2010-06-27 06:36:25 UTC (rev 159) +++ trunk/wikitty-ui-zk/src/main/webapp/index.zul 2010-06-28 14:10:45 UTC (rev 160) @@ -1,6 +1,6 @@ <?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit"?> -<window id="win" title="To do list" width="800px" border="normal" apply="org.nuiton.wikitty.ui.LoginController"> +<window id="win" title="Win" width="800px" border="normal" apply="org.nuiton.wikitty.ui.LoginController"> <groupbox> <caption label="Database names" /> <listbox multiple="true" id="dataList" rows="8" model="@{win$composer.proxyModel}" itemRenderer="@{win$composer.dataRenderer}" > Modified: trunk/wikitty-ui-zk/src/main/webapp/wikitty.zul =================================================================== --- trunk/wikitty-ui-zk/src/main/webapp/wikitty.zul 2010-06-27 06:36:25 UTC (rev 159) +++ trunk/wikitty-ui-zk/src/main/webapp/wikitty.zul 2010-06-28 14:10:45 UTC (rev 160) @@ -2,6 +2,7 @@ <window id="win" title="To do list" width="800px" border="normal" apply="org.nuiton.wikitty.ui.WikittyController"> + Search: <textbox id="Search" /> <listbox id="extensionListBox" multiple="true" rows="8" model="@{win$composer.extensions, load-after='add.onClick, update.onClick'}" selectedItem="@{win$composer.selectedExtension}"> @@ -14,11 +15,16 @@ <listcell label="@{extension.name}" /> <listcell label="@{extension.version}" /> </listitem> + </listbox> <groupbox> <caption label="wikitties" /> <listbox id="wikittiesListBox" rows="8" model="@{win$composer.wikittyModel}" itemRenderer="@{win$composer.wikittyRenderer}" selectedItem="@{win$composer.selectedWikitty}"> + <listhead sizable="true"> + <listheader label="ID" /> + <listheader label="Extensions" /> + </listhead> </listbox> <button id="delete" label="Delete" width="46px" height="24px"/> </groupbox>