branch develop updated (f534abd -> 9a8bdfd)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository jaxx. See http://git.nuiton.org/jaxx.git from f534abd refs-90 #3580: Introduce a new FilterableDoubleList widget new 9a8bdfd fixes #3580: Introduce a new FilterableDoubleList widget The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 9a8bdfdcee261c2e3ccf340c74fa1b45a6ef7767 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 28 13:38:20 2014 +0100 fixes #3580: Introduce a new FilterableDoubleList widget Summary of changes: .../jaxx/editor/FilterableDoubleListDemo.css | 15 +++-- .../jaxx/editor/FilterableDoubleListDemo.jaxx | 10 +++- .../editor/FilterableDoubleListDemoHandler.java | 65 ++++++++++++++-------- .../jaxx/editor/FilterableDoubleListDemoModel.java | 30 ++++++++++ .../main/resources/i18n/jaxx-demo_en_GB.properties | 2 + .../main/resources/i18n/jaxx-demo_es_ES.properties | 2 + .../main/resources/i18n/jaxx-demo_fr_FR.properties | 2 + .../editor/bean/FilterableDoubleListModel.java | 2 + 8 files changed, 97 insertions(+), 31 deletions(-) create mode 100644 jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemoModel.java -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository jaxx. See http://git.nuiton.org/jaxx.git commit 9a8bdfdcee261c2e3ccf340c74fa1b45a6ef7767 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 28 13:38:20 2014 +0100 fixes #3580: Introduce a new FilterableDoubleList widget --- .../jaxx/editor/FilterableDoubleListDemo.css | 15 +++-- .../jaxx/editor/FilterableDoubleListDemo.jaxx | 10 +++- .../editor/FilterableDoubleListDemoHandler.java | 65 ++++++++++++++-------- .../jaxx/editor/FilterableDoubleListDemoModel.java | 30 ++++++++++ .../main/resources/i18n/jaxx-demo_en_GB.properties | 2 + .../main/resources/i18n/jaxx-demo_es_ES.properties | 2 + .../main/resources/i18n/jaxx-demo_fr_FR.properties | 2 + .../editor/bean/FilterableDoubleListModel.java | 2 + 8 files changed, 97 insertions(+), 31 deletions(-) diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemo.css b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemo.css index 226397e..558dd9e 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemo.css +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemo.css @@ -43,15 +43,20 @@ selected: true; } -#filterOnNachoButton { - text: "jaxxdemo.beandoublelistdemo.filterOnNacho"; - selected: false; -} - #doubleList { + property:"selected"; + bean:{model}; i18nPrefix: "jaxxdemo.common."; filterable: {filterableButton.isSelected()}; showReset: {showResetButton.isSelected()}; showDecorator: {showDecoratorButton.isSelected()}; highlightFilterText: {highlightFilterTextButton.isSelected()}; + selected:{model.getSelected()}; } + +#result { + text: {handler.updateResultText(model.getSelected())}; + contentType: "text/html"; + editable: false; +} + diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemo.jaxx b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemo.jaxx index f0238d2..3fdb6ea 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemo.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemo.jaxx @@ -26,6 +26,8 @@ org.nuiton.jaxx.widgets.editor.bean.FilterableDoubleList </import> + <FilterableDoubleListDemoModel id="model" initializer='getContextValue(FilterableDoubleListDemoModel.class)'/> + <Table fill='both'> <row> <cell> @@ -34,15 +36,19 @@ <JCheckBox id='highlightFilterTextButton'/> <JCheckBox id='showResetButton'/> <JCheckBox id='showDecoratorButton'/> - <JCheckBox id='filterOnNachoButton'/> </JPanel> </cell> </row> <row> - <cell weighty='1' weightx='1'> + <cell weighty='0.5' weightx='1'> <FilterableDoubleList id='doubleList' genericType='People'/> </cell> </row> + <row> + <cell weighty='0.5' weightx='1'> + <JTextPane id="result"/> + </cell> + </row> </Table> </jaxx.demo.DemoPanel> diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemoHandler.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemoHandler.java index 104862f..cbbf467 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemoHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemoHandler.java @@ -1,18 +1,16 @@ package jaxx.demo.component.jaxx.editor; -import com.google.common.base.Predicate; import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.entities.DemoDecoratorProvider; -import jaxx.demo.entities.Movie; import jaxx.demo.entities.People; import jaxx.runtime.spi.UIHandler; import org.nuiton.decorator.JXPathDecorator; import org.nuiton.jaxx.widgets.editor.bean.FilterableDoubleList; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; import java.util.List; +import static org.nuiton.i18n.I18n.t; + /** * Created on 11/28/14. * @@ -21,40 +19,59 @@ import java.util.List; */ public class FilterableDoubleListDemoHandler implements UIHandler<FilterableDoubleListDemo> { + private JXPathDecorator<People> decorator; + @Override public void beforeInit(FilterableDoubleListDemo ui) { - // nothing to do + + decorator = (JXPathDecorator<People>) new DemoDecoratorProvider().getDecoratorByType(People.class); + + FilterableDoubleListDemoModel model = new FilterableDoubleListDemoModel(); + ui.setContextValue(model); + } @Override public void afterInit(final FilterableDoubleListDemo ui) { + + FilterableDoubleList<People> doubleList = ui.getDoubleList(); + doubleList.setFilterable(true); + DemoDataProvider demoDataProvider = new DemoDataProvider(); List<People> data = demoDataProvider.getPeoples(); - JXPathDecorator<People> decorator = (JXPathDecorator<People>) new DemoDecoratorProvider().getDecoratorByType(People.class); + doubleList.init(decorator, data, null); - FilterableDoubleList<People> doubleList = ui.getDoubleList(); - doubleList.setFilterable(true); - - doubleList.init(decorator, data, data.subList(0, 1)); + ui.getModel().setSelected(data.subList(0, 1)); - final Movie nacho = demoDataProvider.getMovie("0"); - final Predicate<People> filter = new Predicate<People>() { + } - public boolean apply(People input) { - return nacho.getActors().contains(input); - } - }; - ui.getFilterOnNachoButton().addChangeListener(new ChangeListener() { + public String updateResultText(List<People> selected) { + + StringBuilder builder = new StringBuilder(); + if (selected == null || selected.isEmpty()) { + + builder.append(t("jaxxdemo.beandoublelistdemo.noselected")); + + } else { + + builder.append(t("jaxxdemo.beandoublelistdemo.selected")); + builder.append("<ul>"); - public void stateChanged(ChangeEvent e) { - if (ui.getFilterOnNachoButton().isSelected()) { - ui.getDoubleList().getHandler().addFilter(filter); + for (People people : selected) { + + String peopleStr = decorator.toString(people); + builder.append("<li>"); + builder.append(peopleStr); + builder.append("</li>"); - } else { - ui.getDoubleList().getHandler().clearFilters(); - } } - }); + + builder.append("</ul>"); + + } + + return builder.toString(); + } } \ No newline at end of file diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemoModel.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemoModel.java new file mode 100644 index 0000000..83ae669 --- /dev/null +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FilterableDoubleListDemoModel.java @@ -0,0 +1,30 @@ +package jaxx.demo.component.jaxx.editor; + +import jaxx.demo.entities.People; +import org.jdesktop.beans.AbstractSerializableBean; + +import java.util.List; + +/** + * Created on 11/28/14. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 2.18 + */ +public class FilterableDoubleListDemoModel extends AbstractSerializableBean { + + private static final long serialVersionUID = 1L; + + public static final String PROPERTY_SELECTED = "selected"; + + List<People> selected; + + public List<People> getSelected() { + return selected; + } + + public void setSelected(List<People> selected) { + this.selected = selected; + firePropertyChange(PROPERTY_SELECTED, null, selected); + } +} diff --git a/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties b/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties index 24b70f7..3eed192 100644 --- a/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties +++ b/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties @@ -188,6 +188,8 @@ jaxxdemo.beandoublelistdemo.configuration=Configuration jaxxdemo.beandoublelistdemo.filterOnNacho=Show only the actors playing in Nacho Libre jaxxdemo.beandoublelistdemo.filterable=Filterable jaxxdemo.beandoublelistdemo.highlightFilterText=Highlight the filter text +jaxxdemo.beandoublelistdemo.noselected= +jaxxdemo.beandoublelistdemo.selected= jaxxdemo.beandoublelistdemo.showDecorator=Show decorator button jaxxdemo.beandoublelistdemo.showReset=Show Reset button jaxxdemo.beanfilterablecomboboxdemo.colorizeInvalidComboEditorText=Colorize the text if it not valid diff --git a/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties b/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties index 7d88871..3ff807e 100644 --- a/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties +++ b/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties @@ -188,6 +188,8 @@ jaxxdemo.beandoublelistdemo.configuration= jaxxdemo.beandoublelistdemo.filterOnNacho= jaxxdemo.beandoublelistdemo.filterable= jaxxdemo.beandoublelistdemo.highlightFilterText= +jaxxdemo.beandoublelistdemo.noselected= +jaxxdemo.beandoublelistdemo.selected= jaxxdemo.beandoublelistdemo.showDecorator= jaxxdemo.beandoublelistdemo.showReset= jaxxdemo.beanfilterablecomboboxdemo.colorizeInvalidComboEditorText= diff --git a/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties b/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties index 7911f68..6da2d4f 100644 --- a/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties +++ b/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties @@ -188,6 +188,8 @@ jaxxdemo.beandoublelistdemo.configuration=Configuration jaxxdemo.beandoublelistdemo.filterOnNacho=N'afficher que les acteurs de Nacho Libre jaxxdemo.beandoublelistdemo.filterable=Filtrable jaxxdemo.beandoublelistdemo.highlightFilterText=Surligner le texte de filtre +jaxxdemo.beandoublelistdemo.noselected=< Aucune sélection > +jaxxdemo.beandoublelistdemo.selected=Sélection\: jaxxdemo.beandoublelistdemo.showDecorator=Changer la décoration jaxxdemo.beandoublelistdemo.showReset=Pouvoir réinitialiser le filtre jaxxdemo.beanfilterablecomboboxdemo.colorizeInvalidComboEditorText=Colorer le texte s'il n'est pas valide diff --git a/jaxx-widgets/src/main/java/org/nuiton/jaxx/widgets/editor/bean/FilterableDoubleListModel.java b/jaxx-widgets/src/main/java/org/nuiton/jaxx/widgets/editor/bean/FilterableDoubleListModel.java index 0711b1c..7440ccc 100644 --- a/jaxx-widgets/src/main/java/org/nuiton/jaxx/widgets/editor/bean/FilterableDoubleListModel.java +++ b/jaxx-widgets/src/main/java/org/nuiton/jaxx/widgets/editor/bean/FilterableDoubleListModel.java @@ -235,9 +235,11 @@ public class FilterableDoubleListModel<O extends Serializable> extends AbstractS * @param item the selected item */ public void moveUpSelected(O item) { + int i = selectedModel.indexOf(item); selectedModel.removeElement(item); selectedModel.insertElementAt(item, i - 1); + } /** -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm