Revision 46485 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanel.java

View differences:

DefaultSearchPanel.java
130 130

  
131 131
	private static final Logger LOGGER = LoggerFactory.getLogger(DefaultSearchPanel.class);
132 132

  
133
	static /* friend */ Integer useLabels = null;
134 133
	private BookmarksController bookmarksController;
135 134
	private HistoryController historyController;
136 135
	private FeatureQuery lastQuery;
137 136
	private Feature lastSelectedFeature;
138 137
	private final PropertiesSupportHelper propertiesHelper;
139 138
	private TaskStatusController taskStatusController;
139
        private boolean automaticallySearch;
140 140

  
141 141
	public static class UseLabelsYesAction extends AbstractAction {
142 142

  
......
160 160

  
161 161
		@Override
162 162
		public void actionPerformed(ActionEvent ae) {
163
			DefaultSearchPanel.useLabels = USE_LABELS_YES;
163
                    DALSwingLocator.getDataSwingManager().setUseLabels(USE_LABELS_YES);
164 164
		}
165 165
	}
166 166

  
......
185 185

  
186 186
		@Override
187 187
		public void actionPerformed(ActionEvent ae) {
188
			DefaultSearchPanel.useLabels = USE_LABELS_NO;
188
                    DALSwingLocator.getDataSwingManager().setUseLabels(USE_LABELS_NO);
189 189
		}
190 190
	}
191 191

  
......
211 211

  
212 212
		@Override
213 213
		public void actionPerformed(ActionEvent ae) {
214
			DefaultSearchPanel.useLabels = USE_LABELS_BOTH;
214
                    DALSwingLocator.getDataSwingManager().setUseLabels(USE_LABELS_BOTH);
215 215
		}
216 216
	}
217 217

  
......
508 508
		this.resultPostProcessModel = null;
509 509
		this.propertiesHelper = new PropertiesSupportHelper();
510 510
		this.propertiesHelper.setProperty("SearchPanel", this);
511
                this.automaticallySearch = true;
511 512

  
512 513
		Search search = (Search) ToolsLocator.getComplementsManager().get(
513 514
			Search.COMPLEMENT_MANE, getFeatureType()
......
725 726
					if (b.getCurrentValue() == null) {
726 727
						return;
727 728
					}
728
                                        doSearchFromParameters(b.getCurrentValue());
729
                                        putParametersAndSearch(b.getCurrentValue());
729 730
					break;
730 731
			}
731 732
		});
......
742 743
						return;
743 744
					}
744 745
                                        b.getBookmark().used();
745
                                        doSearchFromParameters(b.getCurrentValue());
746
                                        putParametersAndSearch(b.getCurrentValue());
746 747
					break;
747 748
			}
748 749
		});
......
790 791
		}
791 792

  
792 793
		//this.tblResults.add
793
		if (this.bookmarks.hasBookmark(this.store.getName())) {
794
			Bookmark<DefaultSearchParameters> initBookmark = this.bookmarks.get(this.store.getName());
795
                        initBookmark.used();
796
                        doSearchFromParameters(initBookmark.getValue());
797
		} else {
794
                if (this.automaticallySearch){
795
                    if (this.bookmarks.hasBookmark(this.store.getName())) {
796
                            Bookmark<DefaultSearchParameters> initBookmark = this.bookmarks.get(this.store.getName());
797
                            initBookmark.used();
798
                            putParametersAndSearch(initBookmark.getValue());
799
                    } else {
800
                        clear();
801
                        search();
802
                    }
803
                } else {
798 804
                    clear();
799
                    search();
805
                    
800 806
                }
801 807
	}
802 808
        
803
    private void doSearchFromParameters(DefaultSearchParameters searchParams) {
809
    private void putParametersAndSearch(DefaultSearchParameters searchParams) {
804 810
        DefaultSearchParameters params;
805 811
        try {
806 812
            params = searchParams.getCopy();
......
962 968
                return STATUS_OK;
963 969
	}
964 970

  
971
        @Override
965 972
	public int search(SearchParameters searchParams) {
966
            return search(searchParams);
973
            ((DefaultSearchParameters)searchParams).fix(this.getFeatureType());
974
            return doSearch(searchParams);
967 975
        }
968 976
        
969 977
	private int doSearch(SearchParameters searchParams) {
......
996 1004
			);
997 1005
			model.setValue(tableModel);
998 1006
			rowCount.setValue(tableModel.getRowCount());
1007
        		resultModel = (SimpleFeaturesTableModel) model.getValue();
999 1008
		} catch (Exception ex) {
1000 1009
			LOGGER.warn("Search not able to be executed. Can't get features or create table model", ex);
1001 1010
			status.setTitle(ToolsLocator.getI18nManager().getTranslation("_Errors_getting_new_feature_set") + "...");
......
1007 1016
				I18nManager i18n = ToolsLocator.getI18nManager();
1008 1017
				try {
1009 1018
					TableModel oldmodel = tblResults.getModel();
1010
					resultModel = (SimpleFeaturesTableModel) model.getValue();
1011 1019
					tblResults.setModel(resultModel);
1012 1020
					resultModel.setCellRenderers(tblResults, getCustomRenderers(searchParams));
1013 1021
					if (oldmodel instanceof SimpleFeaturesTableModelImpl) {
......
1400 1408
		return this.showActions;
1401 1409
	}
1402 1410

  
1403
	public static String getAttributeDescriptorLabel(FeatureAttributeDescriptor attrdesc, String tableName) {
1404
		String theLabel;
1405
		int theUseLabels;
1406
		if (useLabels == null) {
1407
			Tags tags = attrdesc.getTags();
1408
			if (tags.has(DAL_USE_LABELS)) {
1409
				theUseLabels = tags.getInt(DAL_USE_LABELS, USE_LABELS_NO);
1410
			} else {
1411
				if (attrdesc.getFeatureType() != null) {
1412
					tags = attrdesc.getFeatureType().getTags();
1413
					theUseLabels = tags.getInt(DAL_USE_LABELS, USE_LABELS_NO);
1414
				} else {
1415
					theUseLabels = USE_LABELS_NO;
1416
				}
1417
			}
1418
		} else {
1419
			theUseLabels = useLabels;
1420
		}
1421
		switch (theUseLabels) {
1422
			case USE_LABELS_YES:
1423
				if (StringUtils.isBlank(tableName)) {
1424
					theLabel = attrdesc.getLocalizedLabel();
1425
				} else {
1426
					theLabel = String.format("%s [%s]", attrdesc.getLocalizedLabel(), tableName);
1427
				}
1428
				break;
1429
			default:
1430
			case USE_LABELS_NO:
1431
				if (StringUtils.isBlank(tableName)) {
1432
					theLabel = attrdesc.getName();
1433
				} else {
1434
					theLabel = String.format("%s [%s]", attrdesc.getName(), tableName);
1435
				}
1436
				break;
1437
			case USE_LABELS_BOTH:
1438
				if (StringUtils.isBlank(tableName)) {
1439
					theLabel = String.format("%s [%s]", attrdesc.getLocalizedLabel(), attrdesc.getName());
1440
				} else {
1441
					theLabel = String.format("%s [%s/%s]", attrdesc.getLocalizedLabel(), attrdesc.getName(), tableName);
1442
				}
1443
				break;
1444
		}
1445
		return theLabel;
1446
	}
1447

  
1448 1411
	private void doCalculatedColumns() {
1449 1412
		WindowManager_v2 winmanager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
1450 1413
		I18nManager i18n = ToolsLocator.getI18nManager();
......
1882 1845
		return this.propertiesHelper.getProperties();
1883 1846
	}
1884 1847

  
1848
    public void setAutomaticallySearch(boolean automaticallySearch){
1849
        this.automaticallySearch = automaticallySearch;
1850
    }
1851
    
1852
    public boolean isAutomaticallySearch(){
1853
        return automaticallySearch;
1854
    }
1855
        
1885 1856
}

Also available in: Unified diff