Bonjour,

Je développe une application d'analyse en Eclipse RCP, pour des données de génétique et le temps étant venu de publier les résultats sur internet avec de jolis Viewer adaptés à mes données. J'ai donc commencé la migration en Eclipse RAP, profitant du single sourcing.

J'ai par contre un problème super simple pour lequel je n'arrive pas à trouver de solution "simple". J'affiche des tableaux TableViewer (JFace) dans mon application, et je voudrais les exporter en PNG et SVG.

  • Or, l'export PNG suivant le schéma classique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public static void exportSWTtoPNG(Composite composite,String fileName){
        GC gc = new GC(composite);
        final Image image = new Image(composite.getDisplay(), composite.getClientArea().width, composite.getClientArea().height);
        gc.copyArea(image, 0, 0);
        gc.dispose();
     
        ImageLoader imageLoader = new ImageLoader(); 
        imageLoader.data = new ImageData[] { image.getImageData() }; 
        imageLoader.save(fileName, SWT.IMAGE_PNG);
    }
    Marche en compilant en RCP mais pas en RAP, car gc.copyArea() n'est pas (encore) implementé dans la librairie RAP Tooling (1.4.2).
    J'ai essayé de me debrouiller autrement en faisant des print() de la region dans l'image, ou des redraw()... Mais l'image PNG reste désespérément blanche.

    Peut être que quelqu'un aurait une idée ?
  • De plus, même quand je fait ça en compilant sous RCP, l'image finale ne contient qu'une partie de la table avec les H_SCROLL et V_SCROLL, et pas le tableau en entier.
    Peut être faut-il que je récupère un autre composant que le simple tableau ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tableViewer = new TableViewer(this, SWT.BORDER | SWT.FULL_SELECTION);
    table = tableViewer.getTable();
    ImageExportUtils.exportSWTtoPNG(table, file.getAbsolutePath());
  • Enfin, concernant l'export en SVG. Pour le coup j'ai beau chercher sur les forums (surement mal) mais je ne trouve rien de simple pour un export en SVG ou tout autre format vectoriel de JFace. Alors pour ce qui est de code permettant le single sourcing RCP-RAP...

Quelqu'un saurait-il m'indiquer comment procéder ?

Merci d'avance pour votre aide.