Changeset 607

Show
Ignore:
Timestamp:
20-03-12 12:57:35 (2 years ago)
Author:
mark9630@…
Message:

support for adding new labels

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/code/conceptwiki/web/web-gwt/src/main/java/nl/nbic/conceptwiki/web/gwt/client/ui/impl/ConceptViewImpl.java

    r605 r607  
    1111import nl.nbic.conceptwiki.common.api.Concept; 
    1212import nl.nbic.conceptwiki.common.api.Label; 
     13import nl.nbic.conceptwiki.common.api.Language; 
    1314import nl.nbic.conceptwiki.common.api.Label.LabelType; 
    1415import nl.nbic.conceptwiki.common.api.Note; 
     
    1718import nl.nbic.conceptwiki.common.impl.ChangesetImpl.ActionImpl; 
    1819import nl.nbic.conceptwiki.common.impl.LabelImpl; 
     20import nl.nbic.conceptwiki.common.impl.LanguageImpl; 
    1921import nl.nbic.conceptwiki.web.gwt.client.resources.MyResources; 
    2022import nl.nbic.conceptwiki.web.gwt.client.ui.ConceptView; 
     
    127129                public void update(final int index, final Label object, final String value) { 
    128130                        if (!value.equals(object.getText())) { 
    129                                 logger.info("updating label " + object.getLanguage().getCode());                                         
     131                                logger.info("updating label " + object.getText() + " with " + value);                                    
    130132                                Label newLabel = new LabelImpl(object.getType(), value, object.getLanguage()); 
    131                                 changes.withRemove(new ActionImpl().withLabels(ImmutableSet.of(object))); 
    132                                 changes.withAdd(new ActionImpl().withLabels(ImmutableSet.of(newLabel))); 
     133                                if(! object.getText().isEmpty()) { // provision for newly added label 
     134                                        logger.info("not removing empty (new) label"); 
     135                                        changes.withRemove(new ActionImpl().withLabels(ImmutableSet.of(object))); 
     136                                } 
     137                                Set<Label> addedLabels = new HashSet<Label>(); 
     138                                addedLabels.add(newLabel); 
     139                                if(changes.getAdd() != null) { 
     140                                        addedLabels.addAll(changes.getAdd().getLabels()); 
     141                                } 
     142                                changes.withAdd(new ActionImpl().withLabels(addedLabels)); 
     143                                logger.info("changeset now adds number of labels: " + changes.getAdd().getLabels().size()); 
    133144                        } else { 
    134145                                logger.info("Warning edited label value is the same as old one."); 
     
    219230        } 
    220231         
     232        drawTerminologyTable(); 
     233         
     234        // TMP 
     235        terminologyTable.addStyleName(resources.css().cwTerminologyTable()); 
     236         
     237        for (Note note : concept.getNotes()) { 
     238                if (note.getType() == NoteType.DEFINITION) { 
     239                        if (!definitionMapping.containsKey(note)) { 
     240                                definitionMapping.put(note, new HashSet<Integer>()); 
     241                        } 
     242                        definitionMapping.get(note).add(branch); 
     243                } 
     244        } 
     245        definitionTable.setRowData(ImmutableList.copyOf(definitionMapping.keySet())); 
     246        // TMP-END 
     247    } 
     248     
     249    private void drawTerminologyTable() { 
    221250        Iterable<Label> filtered = Iterables.filter(branchMapping.keySet(), new Predicate<Label>() {                     
    222251                @Override 
     
    242271        }); 
    243272        terminologyTable.setRowData(filteredList); 
    244          
    245         // TMP 
    246         terminologyTable.addStyleName(resources.css().cwTerminologyTable()); 
    247          
    248         for (Note note : concept.getNotes()) { 
    249                 if (note.getType() == NoteType.DEFINITION) { 
    250                         if (!definitionMapping.containsKey(note)) { 
    251                                 definitionMapping.put(note, new HashSet<Integer>()); 
    252                         } 
    253                         definitionMapping.get(note).add(branch); 
    254                 } 
    255         } 
    256         definitionTable.setRowData(ImmutableList.copyOf(definitionMapping.keySet())); 
    257         // TMP-END 
     273        } 
     274 
     275        @UiHandler("addButton") 
     276    protected void onButtonClick1(final ClickEvent e) { 
     277        if(e.getSource().equals(addButton)) { 
     278                logger.info("someone pressed add"); 
     279        } 
     280        Label emptyLabel = new LabelImpl(LabelType.ALTERNATIVE, "", new LanguageImpl("en")); 
     281        Set<Integer> community = new HashSet<Integer>(); 
     282        community.add(new Integer(1)); 
     283        branchMapping.put(emptyLabel, community); 
     284        drawTerminologyTable(); 
    258285    } 
    259286     
     
    277304 
    278305                presenter.updateConcept(changes); 
     306                changes = new ChangesetImpl(); 
     307                drawTerminologyTable(); 
    279308                 
    280309                terminologyTable.removeColumn(delColumn);