Project

General

Profile

« Previous | Next » 

Revision 218fbd04

Added by Cherian Mathew about 9 years ago

CdmProgressComponent : Component which indicates progress via text and a progress bar
NewTaxonBaseComposite, StatusComposite : Added taxon name field for synonym creation and using new operation and progress component objects
StatusComposite : Corrections
CdmSQLContainer, LeafNodeTaxonContainer : Moved non-generic methods from CdmSQLContainer to LeafNodeTaxonContainer
StatusPresenter, IStatusComposite : added id filter methods as well as methods to remove all dynamic filters and to refresh the synonym cache
SelectionService : using UI.access to update ui
CdmQueryFactory : removed rank inner join for taxon base query
CdmVaadinOperation : Class which handles async and sync operations
CdmVaadinUtilities : Added methods to run new CdmVaadinOperation objects and to recursively enable / disable components

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/container/LeafNodeTaxonContainer.java
21 21
import org.apache.log4j.Logger;
22 22

  
23 23
import com.vaadin.data.Container;
24
import com.vaadin.data.Item;
24 25
import com.vaadin.data.Property;
25 26
import com.vaadin.data.util.filter.Compare;
26 27
import com.vaadin.data.util.filter.IsNull;
27 28
import com.vaadin.data.util.filter.Not;
28 29
import com.vaadin.data.util.filter.SimpleStringFilter;
30
import com.vaadin.data.util.sqlcontainer.RowId;
29 31
import com.vaadin.data.util.sqlcontainer.RowItem;
30 32

  
31 33
import eu.etaxonomy.cdm.vaadin.util.CdmQueryFactory;
......
52 54
    public Set<Filter> currentFilters;
53 55

  
54 56

  
55
    private Filter nrFilter, unpFilter, unfFilter, unpbFilter, rankFilter,  classificationFilter, synonymFilter;
57
    private Filter nrFilter, unpFilter, unfFilter, unpbFilter, rankFilter,  classificationFilter, synonymFilter, idFilter;
56 58
    private SimpleStringFilter nameFilter;
57 59

  
58 60
    private int classificationId = -1;
59 61

  
62
    private final Map<RowId, RowItem> synItems = new HashMap<RowId, RowItem>();
63

  
60 64
    private final Map<Object,List<Object>> taxonSynonymMap;
61 65

  
62 66
    private final CdmSQLContainer synonymContainer;
......
121 125
        removeContainerFilter(nameFilter);
122 126
    }
123 127

  
128
    public void setIdFilter(Object itemId) {
129
        removeIdFilter();
130
        idFilter = new Compare.Equal("tb.id", itemId.toString());
131
        addContainerFilter(idFilter);
132
    }
133

  
134
    public void removeIdFilter() {
135
        removeContainerFilter(idFilter);
136
    }
137

  
138
    public void removeDynamicFilters() {
139
        removeUnplacedFilter();
140
        removeUnpublishedFilter();
141
        removeNameFilter();
142
        removeIdFilter();
143

  
144
    }
124 145
    public int getTotalNoOfTaxa() {
125 146
        return size();
126 147
    }
......
136 157
            return synList;
137 158
        }
138 159

  
139
        Filter synonymOfTaxonFilter = new Compare.Equal("sr.relatedto_id", Integer.valueOf(itemId.toString()));
140
        synonymContainer.addContainerFilter(synonymOfTaxonFilter);
141
        synList = new ArrayList<Object>();
142
        synList.addAll(synonymContainer.getItemIds());
143
        for(Object synItemId : synList) {
144
            addTempItem((RowItem) synonymContainer.getItem(synItemId));
145
        }
146
        synonymContainer.removeAllContainerFilters();
147
        // cache the synonyms for later
148
        taxonSynonymMap.put(itemId, synList);
149

  
150
        return synList;
160
        return addToSynonymCache(itemId);
151 161
    }
152 162

  
153 163
    /* (non-Javadoc)
......
221 231
        taxonSynonymMap.remove(itemId);
222 232
    }
223 233

  
234
    public void refreshSynonymCache() {
235
        for(Object taxonItemId  : taxonSynonymMap.keySet()) {
236
            addToSynonymCache(taxonItemId);
237
        }
238
    }
239

  
240
    private List<Object> addToSynonymCache(Object taxonItemId) {
241
        Filter synonymOfTaxonFilter = new Compare.Equal("sr.relatedto_id", Integer.valueOf(taxonItemId.toString()));
242
        synonymContainer.addContainerFilter(synonymOfTaxonFilter);
243
        List<Object> synList = new ArrayList<Object>();
244
        synList.addAll(synonymContainer.getItemIds());
245
        for(Object synItemId : synList) {
246
            addSynItem((RowItem) synonymContainer.getItem(synItemId));
247
        }
248
        synonymContainer.removeAllContainerFilters();
249

  
250
        taxonSynonymMap.put(taxonItemId, synList);
251

  
252
        return synList;
253
    }
254

  
255
    @Override
256
    public Item getItem(Object itemId) {
257
        Item item = synItems.get(itemId);
258
        if(item == null) {
259
            item = super.getItem(itemId);
260
        }
261
        return item;
262
    }
263

  
264

  
265
    @Override
266
    public boolean removeAllItems() throws UnsupportedOperationException {
267
        taxonSynonymMap.clear();
268
        synItems.clear();
269
        return super.removeAllItems();
270
    }
271

  
272
    @Override
273
    public void refresh() {
274
        synItems.clear();
275
        refreshSynonymCache();
276
        super.refresh();
277
    }
278

  
279
    public void addSynItem(RowItem rowItem) {
280
        synItems.put(rowItem.getId(), rowItem);
281

  
282
    }
224 283

  
225 284
}

Also available in: Unified diff