2017-10-10 8 views
0

J'essaie d'apprendre comment activer l'édition de cellules dans Nebula NatTable. Je _301_CustomDataProviderExample :: createExampleControl edited pour montrer cette fonctionnalité:Activer l'édition de cellules dans Nebula NatTable

@Override 
public Control createExampleControl(Composite parent) { 
    //... 
    final NatTable natTable = new NatTable(parent, SWT.NO_BACKGROUND 
       | SWT.NO_REDRAW_RESIZE | SWT.DOUBLE_BUFFERED, bodyDataLayer, false); 

    natTable.addConfiguration(new DefaultNatTableStyleConfiguration()); 

    natTable.addConfiguration(new AbstractRegistryConfiguration() { 
     @Override 
     public void configureRegistry(IConfigRegistry configRegistry) { 
      configRegistry.registerConfigAttribute(
        EditConfigAttributes.CELL_EDITABLE_RULE, 
        IEditableRule.ALWAYS_EDITABLE); 
     } 
    }); 

    natTable.configure(); 

    return natTable; 
} 

Mais quand exécuter l'exemple, je ne peux pas modifier les cellules. Qu'est-ce que je rate? Merci!

Mise à jour: ma solution pour ce cas est:

bodyDataLayer.addConfiguration(new DefaultEditConfiguration()); 
    bodyDataLayer.addConfiguration(new DefaultEditBindings()); 

Remarque: ne pas ajouter ces configurations à cause de natTable de java.lang.ClassCastException: org.eclipse.nebula.widgets. nattable.NatTable ne peut pas être jeté à org.eclipse.nebula.widgets.nattable.layer.AbstractLayer

Répondre

0

Il vous manque le montage nécessaire configurations liées DefaultEditBindings et DefaultEditConfiguration, qui permet de configurer les éditeurs et les liaisons à réagir à l'interaction de l'utilisateur.

Ceci est expliqué dans la documentation: https://www.eclipse.org/nattable/documentation.php?page=editing