Author: bbrossaud Date: 2010-06-22 15:23:37 +0200 (Tue, 22 Jun 2010) New Revision: 139 Url: http://nuiton.org/repositories/revision/wikitty/139 Log: can add extensions to an object Modified: trunk/wikitty-ui-zk/ trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/Controller.java trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/WikittyForm.java trunk/wikitty-ui-zk/src/main/webapp/index.zul Property changes on: trunk/wikitty-ui-zk ___________________________________________________________________ Added: svn:ignore + target Modified: trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/Controller.java =================================================================== --- trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/Controller.java 2010-06-21 09:40:52 UTC (rev 138) +++ trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/Controller.java 2010-06-22 13:23:37 UTC (rev 139) @@ -24,6 +24,7 @@ protected Model _model = new Model(); protected List<WikittyExtension> _extensions = new ArrayList<WikittyExtension>(); protected WikittyExtension _selectedExtension; + protected WikittyExtension _selectedNewExtension; protected Listbox formListBox; protected WikittyForm _wikittyForm = new WikittyForm(); protected Listbox wikittiesListBox; @@ -66,6 +67,10 @@ wikittiesListBox.setSelectedIndex(0); } + public void onClick$addNewExtension() { + _wikittyForm.addExtension(_selectedNewExtension); + } + /* * Renderers */ @@ -91,6 +96,10 @@ return _selectedExtension; } + public WikittyExtension getSelectedNewExtension() { + return _selectedNewExtension; + } + public WikittyForm getWikittyForm() { return _wikittyForm; } @@ -112,6 +121,10 @@ _wikittyModel.setWikitties(list); } + public void setSelectedNewExtension(WikittyExtension current) { + _selectedNewExtension = current; + } + public void setSelectedWikitty(Wikitty current) { _wikittyForm.setWikitty(current); } Modified: trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/WikittyForm.java =================================================================== --- trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/WikittyForm.java 2010-06-21 09:40:52 UTC (rev 138) +++ trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/WikittyForm.java 2010-06-22 13:23:37 UTC (rev 139) @@ -50,18 +50,21 @@ List<Component> components = new ArrayList<Component>(); FieldType fieldType = fieldExtension.getFieldType(); String wikittyExtensionName = fieldExtension.getWikittyExtension().getName(); - if (_wikitty != null) { - if (fieldType.isCollection()) { - List<Date> dates = _wikitty.getFieldAsList(wikittyExtensionName, fieldExtension.getName(), Date.class); - for (Date date : dates) { - components.add(new Datebox(date)); + if (_wikitty != null && _wikitty.hasExtension(wikittyExtensionName)) { + Date obj = _wikitty.getFieldAsDate(wikittyExtensionName, fieldExtension.getName()); + if (obj != null) { + if (fieldType.isCollection()) { + List<Date> dates = _wikitty.getFieldAsList(wikittyExtensionName, fieldExtension.getName(), Date.class); + for (Date date : dates) { + components.add(new Datebox(date)); + } + } else { + components.add(new Datebox(obj)); } - } else { - components.add(new Datebox(_wikitty.getFieldAsDate(wikittyExtensionName, fieldExtension.getName()))); + return components; } - } else { - components.add(new Datebox()); } + components.add(new Datebox()); return components; } @@ -69,18 +72,21 @@ List<Component> components = new ArrayList<Component>(); FieldType fieldType = fieldExtension.getFieldType(); String wikittyExtensionName = fieldExtension.getWikittyExtension().getName(); - if (_wikitty != null) { - if (fieldType.isCollection()) { - List<BigDecimal> decimals = _wikitty.getFieldAsList(wikittyExtensionName, fieldExtension.getName(), BigDecimal.class); - for (BigDecimal decimal : decimals) { - components.add(new Decimalbox(decimal)); + if (_wikitty != null && _wikitty.hasExtension(wikittyExtensionName)) { + BigDecimal obj = _wikitty.getFieldAsBigDecimal(wikittyExtensionName, fieldExtension.getName()); + if (obj != null) { + if (fieldType.isCollection()) { + List<BigDecimal> decimals = _wikitty.getFieldAsList(wikittyExtensionName, fieldExtension.getName(), BigDecimal.class); + for (BigDecimal decimal : decimals) { + components.add(new Decimalbox(decimal)); + } + } else { + components.add(new Decimalbox(obj)); } - } else { - components.add(new Decimalbox(_wikitty.getFieldAsBigDecimal(wikittyExtensionName, fieldExtension.getName()))); + return components; } - } else { - components.add(new Decimalbox()); } + components.add(new Decimalbox()); return components; } @@ -88,18 +94,21 @@ List<Component> components = new ArrayList<Component>(); FieldType fieldType = fieldExtension.getFieldType(); String wikittyExtensionName = fieldExtension.getWikittyExtension().getName(); - if (_wikitty != null) { - if (fieldType.isCollection()) { - List<String> strings = _wikitty.getFieldAsList(wikittyExtensionName, fieldExtension.getName(), String.class); - for (String str : strings) { - components.add(new Textbox(str)); + if (_wikitty != null && _wikitty.hasExtension(wikittyExtensionName)) { + String obj = _wikitty.getFieldAsString(wikittyExtensionName, fieldExtension.getName()); + if (obj != null) { + if (fieldType.isCollection()) { + List<String> strings = _wikitty.getFieldAsList(wikittyExtensionName, fieldExtension.getName(), String.class); + for (String str : strings) { + components.add(new Textbox(str)); + } + } else { + components.add(new Textbox(obj)); } - } else { - components.add(new Textbox(_wikitty.getFieldAsString(wikittyExtensionName, fieldExtension.getName()))); + return components; } - } else { - components.add(new Textbox()); } + components.add(new Textbox()); return components; } @@ -107,23 +116,25 @@ List<Component> components = new ArrayList<Component>(); FieldType fieldType = fieldExtension.getFieldType(); String wikittyExtensionName = fieldExtension.getWikittyExtension().getName(); - if (fieldExtension != null) { - if (fieldType.isCollection()) { - List<Boolean> bools = _wikitty.getFieldAsList(wikittyExtensionName, fieldExtension.getName(), Boolean.class); - for (Boolean bool : bools) { + if (_wikitty != null && _wikitty.hasExtension(wikittyExtensionName)) { + Boolean obj = _wikitty.getFieldAsBoolean(wikittyExtensionName, fieldExtension.getName()); + if (obj != null) { + if (fieldType.isCollection()) { + List<Boolean> bools = _wikitty.getFieldAsList(wikittyExtensionName, fieldExtension.getName(), Boolean.class); + for (Boolean bool : bools) { + Checkbox newCheckBox = new Checkbox(); + newCheckBox.setChecked(bool); + components.add(newCheckBox); + } + } else { Checkbox newCheckBox = new Checkbox(); - newCheckBox.setChecked(bool); + newCheckBox.setChecked(obj); components.add(newCheckBox); } - } else { - Boolean bool = _wikitty.getFieldAsBoolean(wikittyExtensionName, fieldExtension.getName()); - Checkbox newCheckBox = new Checkbox(); - newCheckBox.setChecked(bool); - components.add(newCheckBox); + return components; } - } else { - components.add(new Checkbox()); } + components.add(new Checkbox()); return components; } @@ -181,7 +192,8 @@ String extensionName = fieldExtension.getWikittyExtension().getName(); FieldType fieldType = fieldExtension.getFieldType(); String fieldName = fieldExtension.getName(); - Listcell cell = (Listcell) item.getFellowIfAny(fieldName); + String id = extensionName + "." + fieldName; + Listcell cell = (Listcell) item.getFellowIfAny(id); TYPE type = fieldType.getType(); List collection = null; if (type == TYPE.DATE) { @@ -213,7 +225,10 @@ FieldExtension fieldExtension = (FieldExtension) item.getValue(); FieldType fieldType = fieldExtension.getFieldType(); if (fieldType.isCollection()) { - Listcell cell = (Listcell) item.getFellowIfAny(fieldExtension.getName()); + String extensionName = fieldExtension.getWikittyExtension().getName(); + String fieldName = fieldExtension.getName(); + String id = extensionName + "." + fieldName; + Listcell cell = (Listcell) item.getFellowIfAny(id); if (cell != null) { List children = cell.getChildren(); if (children.size() > 1) { @@ -230,7 +245,10 @@ FieldExtension fieldExtension = (FieldExtension) item.getValue(); FieldType fieldType = fieldExtension.getFieldType(); if (fieldType.isCollection()) { - Listcell cell = (Listcell) item.getFellowIfAny(fieldExtension.getName()); + String extensionName = fieldExtension.getWikittyExtension().getName(); + String fieldName = fieldExtension.getName(); + String id = extensionName + "." + fieldName; + Listcell cell = (Listcell) item.getFellowIfAny(id); if (cell != null) { Component comp = cell.getFirstChild(); cell.appendChild((Component) comp.clone()); @@ -246,10 +264,35 @@ return true; } - public void addExtension() { + public void addExtension(WikittyExtension newExtension) { + if (newExtension != null) { + if (!_holdExtensions.contains(newExtension)) { + boolean bool = false; + String extensionName = newExtension.getName(); + for (WikittyExtension extension : _holdExtensions) { + if (extensionName.equals(extension.getName())) { + bool = true; + break; + } + } + if (!bool) { + _holdExtensions.add(newExtension); + createModelFieldExtensions(); + } + } + } + } + public void removeExtension(WikittyExtension removeExtension) { +// if (_wikitty != null && removeExtension != null) { +// String name = removeExtension.getName(); +// if (_wikitty.hasExtension(name) == true) { +// _wikitty. +// } +// } } + /* * Renderer */ @@ -275,7 +318,8 @@ Listcell cell1 = new Listcell("(" + fieldExtension.getWikittyExtension().getName() + ")"); Listcell cell2 = new Listcell(fieldExtension.getName()); Listcell cell3 = new Listcell(); - cell3.setId(fieldExtension.getName()); + String id = fieldExtension.getWikittyExtension().getName() + "." + fieldExtension.getName(); + cell3.setId(id); for (Component component : components) { cell3.appendChild(component); } Modified: trunk/wikitty-ui-zk/src/main/webapp/index.zul =================================================================== --- trunk/wikitty-ui-zk/src/main/webapp/index.zul 2010-06-21 09:40:52 UTC (rev 138) +++ trunk/wikitty-ui-zk/src/main/webapp/index.zul 2010-06-22 13:23:37 UTC (rev 139) @@ -2,15 +2,17 @@ <window id="win" title="To do list" width="800px" border="normal" apply="org.nuiton.wikitty.ui.Controller"> - <listbox id="extensionListBox" multiple="true" rows="10" model="@{win$composer.extensions, load-after='add.onClick, update.onClick'}" + <listbox id="extensionListBox" multiple="true" rows="8" model="@{win$composer.extensions, load-after='add.onClick, update.onClick'}" selectedItem="@{win$composer.selectedExtension}"> <listhead> - <listheader label="name" /> + <listheader label="Name" /> + <listheader label="Version" /> </listhead> <listitem self="@{each='extension'}"> - <listcell label="@{extension.name}"/> + <listcell label="@{extension.name}" /> + <listcell label="@{extension.version}" /> </listitem> </listbox> @@ -23,16 +25,22 @@ <listheader label="Content" /> </listhead> </listbox> - <button id="add" label="Add" width="36px" height="24px"/> <button id="update" label="Update" width="46px" height="24px"/> <button id="addNewInput" label="New input" width="56px" height="24px" /> <button id="deleteInput" label="Delete input" width="56px" height="24px" /> + + <listbox id="newExtension" rows="1" mold="select" model="@{win$composer.extensions}" selectedItem="@{win$composer.selectedNewExtension}"> + <listitem self="@{each='newExtension'}"> + <listcell label="@{newExtension.name}"/> + </listitem> + </listbox> + <button id="addNewExtension" label="Add extension" width="66px" height="24px"/> </groupbox> <groupbox> <caption label="wikitties" /> - <listbox id="wikittiesListBox" rows="10" model="@{win$composer.wikittyModel}" itemRenderer="@{win$composer.wikittyRenderer}" selectedItem="@{win$composer.selectedWikitty}"> + <listbox id="wikittiesListBox" rows="8" model="@{win$composer.wikittyModel}" itemRenderer="@{win$composer.wikittyRenderer}" selectedItem="@{win$composer.selectedWikitty}"> </listbox> <button id="delete" label="Delete" width="46px" height="24px"/> </groupbox>