comparison src/econnect/wp3_3/client/widgets/table/DynamicStiTable.java @ 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 3184e8faa5c0
children 20eb7596d466
comparison
equal deleted inserted replaced
29:4711c4ab0c23 30:1e95995ddbb2
197 organizePages(); 197 organizePages();
198 checkHide(); 198 checkHide();
199 fillTable(); 199 fillTable();
200 } 200 }
201 } 201 }
202 }); 202 });
203 showSelected.addClickHandler(new ClickHandler() { 203 showSelected.addClickHandler(new ClickHandler() {
204 public void onClick(ClickEvent event) { 204 public void onClick(ClickEvent event) {
205 if( viewAll != -1 ){ 205 if( viewAll != -1 ){
206 viewAll = -1; 206 viewAll = -1;
207 if( setActualObjectSet() ){ 207 if( setActualObjectSet() ){
243 refine.setWidget(0,0,textualSearch); 243 refine.setWidget(0,0,textualSearch);
244 refine.setWidget(0,1,search); 244 refine.setWidget(0,1,search);
245 search.addClickHandler(new ClickHandler() { 245 search.addClickHandler(new ClickHandler() {
246 public void onClick(ClickEvent event) { 246 public void onClick(ClickEvent event) {
247 if( !textualSearch.getText().equals("") ){ 247 if( !textualSearch.getText().equals("") ){
248 core.refineByText(textualSearch.getText(),index); 248 refineByText(textualSearch.getText());
249 textualSearch.setEnabled(false); 249 textualSearch.setEnabled(false);
250 refine.setWidget(0, 1, buttons); 250 refine.setWidget(0, 1, buttons);
251 } 251 }
252 } 252 }
253 }); 253 });
258 }); 258 });
259 cancelImage.addClickHandler(new ClickHandler() { 259 cancelImage.addClickHandler(new ClickHandler() {
260 public void onClick(ClickEvent event) { 260 public void onClick(ClickEvent event) {
261 textualSearch.setEnabled(true); 261 textualSearch.setEnabled(true);
262 core.reset(); 262 core.reset();
263
264 //TODO: das gibt es nun mehrfach im Code, sollte also in eine Funktion
265 //Ÿberfuhrt werden
266 showSelected.removeStyleName("selectedView");
267 showAll.addStyleName("selectedView");
268 viewAll = 1;
269 setActualObjectSet();
270 organizePages();
271 checkHide();
272 fillTable();
273
263 refine.setWidget(0, 1, search); 274 refine.setWidget(0, 1, search);
264 } 275 }
265 }); 276 });
266 277
267 this.results = new Label(); 278 this.results = new Label();
347 if( object.isSelected() ){ 358 if( object.isSelected() ){
348 objects.add(object); 359 objects.add(object);
349 } 360 }
350 } 361 }
351 if( objects.size() > 0 ){ 362 if( objects.size() > 0 ){
363 //TODO: Wenn die derzeitige Auswahl _keine_ Elemente
364 //enthŠlt, werden _alle_ angezeigt. Ist das sinnvoll?
352 actualObjectSet = objects; 365 actualObjectSet = objects;
353 } 366 }
354 else { 367 else {
355 return false; 368 return false;
356 } 369 }
559 } 572 }
560 ); 573 );
561 } 574 }
562 575
563 /** 576 /**
577 * Refines the currently selected dataset (table) by the search term entered.
578 *
579 */
580 private void refineByText(String searchString){
581
582 String lowerCaseSearchString = searchString.toLowerCase();
583
584 for( int i=0; i<this.dataSet.getObjects().length(); i++){
585 DataObject currentDataObject = this.dataSet.getObjects().get(i);
586
587 String name = currentDataObject.getName();
588 String description = currentDataObject.getDescription();
589 String place = currentDataObject.getPlace();
590
591 if ( name.toLowerCase().contains(lowerCaseSearchString) ||
592 description.toLowerCase().contains(lowerCaseSearchString) ||
593 place.toLowerCase().contains(lowerCaseSearchString) )
594 currentDataObject.setPercentage(1);
595 else
596 currentDataObject.setPercentage(0);
597 }
598
599 //TODO: das gibt es nun mehrfach im Code, sollte also in eine Funktion
600 //Ÿberfuhrt werden
601 viewAll = -1;
602 setActualObjectSet();
603 showAll.removeStyleName("selectedView");
604 showSelected.addStyleName("selectedView");
605 organizePages();
606 checkHide();
607 fillTable();
608 }
609
610 /**
564 * Checks, if the previous or next button has to be hidden 611 * Checks, if the previous or next button has to be hidden
565 */ 612 */
566 private void checkHide(){ 613 private void checkHide(){
567 if( this.selectedChunk == 0 ){ 614 if( this.selectedChunk == 0 ){
568 previous.setVisible(false); 615 previous.setVisible(false);