Mercurial > hg > STI-GWT
changeset 30:1e95995ddbb2
re-added the ability to refine the dataset by a (very simple) text search
author | Sebastian Kruse <skruse@mpiwg-berlin.mpg.de> |
---|---|
date | Wed, 28 Nov 2012 17:01:34 +0100 |
parents | 4711c4ab0c23 |
children | c7701b00ca5b |
files | src/econnect/wp3_3/client/core/StiCore.java src/econnect/wp3_3/client/widgets/table/DynamicStiTable.java |
diffstat | 2 files changed, 53 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/econnect/wp3_3/client/core/StiCore.java Wed Nov 28 17:00:49 2012 +0100 +++ b/src/econnect/wp3_3/client/core/StiCore.java Wed Nov 28 17:01:34 2012 +0100 @@ -182,12 +182,15 @@ /** * Refines the dataset with the given index by the given text * + * Moved to DynamicStiTable. + * * @param text the refine text * @param index the index of the dataset */ + /* public final native void refineByText(String text, int index) /*-{ this.refineByText(text,index); - }-*/; + }-*///; /** * Getter for the SimileAjax value for the granularity of a second
--- a/src/econnect/wp3_3/client/widgets/table/DynamicStiTable.java Wed Nov 28 17:00:49 2012 +0100 +++ b/src/econnect/wp3_3/client/widgets/table/DynamicStiTable.java Wed Nov 28 17:01:34 2012 +0100 @@ -199,7 +199,7 @@ fillTable(); } } - }); + }); showSelected.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { if( viewAll != -1 ){ @@ -245,7 +245,7 @@ search.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { if( !textualSearch.getText().equals("") ){ - core.refineByText(textualSearch.getText(),index); + refineByText(textualSearch.getText()); textualSearch.setEnabled(false); refine.setWidget(0, 1, buttons); } @@ -260,6 +260,17 @@ public void onClick(ClickEvent event) { textualSearch.setEnabled(true); core.reset(); + + //TODO: das gibt es nun mehrfach im Code, sollte also in eine Funktion + //Ÿberfuhrt werden + showSelected.removeStyleName("selectedView"); + showAll.addStyleName("selectedView"); + viewAll = 1; + setActualObjectSet(); + organizePages(); + checkHide(); + fillTable(); + refine.setWidget(0, 1, search); } }); @@ -349,6 +360,8 @@ } } if( objects.size() > 0 ){ + //TODO: Wenn die derzeitige Auswahl _keine_ Elemente + //enthŠlt, werden _alle_ angezeigt. Ist das sinnvoll? actualObjectSet = objects; } else { @@ -561,6 +574,40 @@ } /** + * Refines the currently selected dataset (table) by the search term entered. + * + */ + private void refineByText(String searchString){ + + String lowerCaseSearchString = searchString.toLowerCase(); + + for( int i=0; i<this.dataSet.getObjects().length(); i++){ + DataObject currentDataObject = this.dataSet.getObjects().get(i); + + String name = currentDataObject.getName(); + String description = currentDataObject.getDescription(); + String place = currentDataObject.getPlace(); + + if ( name.toLowerCase().contains(lowerCaseSearchString) || + description.toLowerCase().contains(lowerCaseSearchString) || + place.toLowerCase().contains(lowerCaseSearchString) ) + currentDataObject.setPercentage(1); + else + currentDataObject.setPercentage(0); + } + + //TODO: das gibt es nun mehrfach im Code, sollte also in eine Funktion + //Ÿberfuhrt werden + viewAll = -1; + setActualObjectSet(); + showAll.removeStyleName("selectedView"); + showSelected.addStyleName("selectedView"); + organizePages(); + checkHide(); + fillTable(); + } + + /** * Checks, if the previous or next button has to be hidden */ private void checkHide(){