Revision 3365 org.gvsig.vcsgis/trunk/org.gvsig.vcsgis/org.gvsig.vcsgis.swing/org.gvsig.vcsgis.swing.impl/src/main/java/org/gvsig/vcsgis/swing/impl/VCSGisEntitySelectorControllerImpl.java
VCSGisEntitySelectorControllerImpl.java | ||
---|---|---|
27 | 27 |
import java.awt.event.ActionListener; |
28 | 28 |
import java.util.ArrayList; |
29 | 29 |
import java.util.Collections; |
30 |
import java.util.HashSet; |
|
30 | 31 |
import java.util.List; |
32 |
import java.util.Set; |
|
31 | 33 |
import java.util.function.Predicate; |
32 | 34 |
import javax.swing.JButton; |
33 | 35 |
import javax.swing.JList; |
... | ... | |
43 | 45 |
import org.gvsig.tools.swing.api.ActionListenerSupport; |
44 | 46 |
import org.gvsig.tools.swing.api.ChangeListenerHelper; |
45 | 47 |
import org.gvsig.tools.swing.api.FilteredListController; |
48 |
import org.gvsig.tools.swing.api.FilteredListModel; |
|
46 | 49 |
import org.gvsig.tools.swing.api.JListWithCheckbox; |
47 | 50 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
48 | 51 |
import org.gvsig.tools.swing.api.ToolsSwingManager; |
... | ... | |
172 | 175 |
this.filteredList.getModel().clear(); |
173 | 176 |
return; |
174 | 177 |
} |
175 |
this.filteredList.getModel().clear(); |
|
178 |
// this.filteredList.getModel().clear();
|
|
176 | 179 |
Thread task = new Thread(() -> {reloadTables(this.workspace);}, "VCSGisEntitySelectorReloadEntities"); |
177 | 180 |
task.start(); |
178 | 181 |
} |
... | ... | |
249 | 252 |
if( notInSwingThreadInvokeLater(() -> { postReloadTables(entities); }) ) { |
250 | 253 |
return; |
251 | 254 |
} |
252 |
this.processing = false; |
|
253 |
this.filteredList.getModel().clear(); |
|
255 |
FilteredListModel model = this.filteredList.getModel(); |
|
256 |
Set<String> checkeds = new HashSet<>(); |
|
257 |
ListSelectionModel checkedModel = null; |
|
258 |
if(lstTablesWithCheckbox != null) { |
|
259 |
checkedModel = lstTablesWithCheckbox.getCheckedModel(); |
|
260 |
for(int i = 0; i<model.getSize(); i++){ |
|
261 |
if(checkedModel.isSelectedIndex(i)){ |
|
262 |
checkeds.add(((VCSGisEntity) (model.getElementAt(i).getValue())).getEntityCode()); |
|
263 |
} |
|
264 |
} |
|
265 |
checkedModel.clearSelection(); |
|
266 |
} |
|
267 |
model.clear(); |
|
268 |
this.lstTables.getSelectionModel().clearSelection(); |
|
254 | 269 |
for (LabeledValue<VCSGisEntity> entity : entities) { |
255 |
this.filteredList.getModel().addElement(entity); |
|
270 |
if(entity != null){ |
|
271 |
this.filteredList.getModel().addElement(entity); |
|
272 |
} |
|
256 | 273 |
} |
274 |
|
|
275 |
if(checkedModel != null) { |
|
276 |
for(int i = 0; i<model.getSize(); i++){ |
|
277 |
VCSGisEntity entity = (VCSGisEntity) (model.getElementAt(i).getValue()); |
|
278 |
if(checkeds.contains(entity.getEntityCode())){ |
|
279 |
checkedModel.addSelectionInterval(i, i); |
|
280 |
} |
|
281 |
} |
|
282 |
} |
|
283 |
|
|
284 |
this.processing = false; |
|
257 | 285 |
this.changeListeners.fireEvent(); |
258 | 286 |
} |
259 | 287 |
|
... | ... | |
346 | 374 |
return this.changeListeners.hasChangeListeners(); |
347 | 375 |
} |
348 | 376 |
|
377 |
@Override |
|
349 | 378 |
public void setViewFilter(Predicate<VCSGisEntity> viewFilter) { |
350 | 379 |
this.viewFilter = viewFilter; |
351 | 380 |
} |
352 | 381 |
|
382 |
@Override |
|
353 | 383 |
public void setFilter(Predicate<VCSGisEntity> filter) { |
354 | 384 |
this.filter = filter; |
355 | 385 |
} |
356 | 386 |
|
387 |
@Override |
|
357 | 388 |
public ListSelectionModel getCheckedModel() { |
358 | 389 |
if(lstTablesWithCheckbox != null){ |
359 | 390 |
return lstTablesWithCheckbox.getCheckedModel(); |
360 | 391 |
} |
361 | 392 |
return null; |
362 | 393 |
} |
394 |
|
|
395 |
@Override |
|
396 |
public void check(VCSGisEntity entity) { |
|
397 |
if (lstTablesWithCheckbox != null && entity != null) { |
|
398 |
ListModel model = this.filteredList.getModel(); |
|
399 |
for (int i = 0; i < model.getSize(); i++) { |
|
400 |
LabeledValueImpl element = (LabeledValueImpl) model.getElementAt(i); |
|
401 |
VCSGisEntity ent = (VCSGisEntity) element.getValue(); |
|
402 |
if (StringUtils.equalsIgnoreCase( |
|
403 |
ent.getEntityCode(), |
|
404 |
entity.getEntityCode() |
|
405 |
)) { |
|
406 |
lstTablesWithCheckbox.getCheckedModel().addSelectionInterval(i, i); |
|
407 |
return; |
|
408 |
} |
|
409 |
} |
|
410 |
} |
|
411 |
} |
|
363 | 412 |
|
364 | 413 |
} |
Also available in: Unified diff