2016-06-19 7 views
0
 downloadButton.addClickListener(new Button.ClickListener() { 
     public void buttonClick(Button.ClickEvent event) { 

      // if (downloadButton.getExtensions().size() > 0) { 
      // downloadButton.getExtensions().clear(); 
      // } 

      tmpFileErzeuger.erzeugeXMLDatei(selectedItems); 

      FileResource fileResource = new FileResource(tmpFileErzeuger.addToZipFile()); 

      FileDownloader fileDownloader = new FileDownloader(fileResource); 
      fileDownloader.extend(downloadButton); 

     } 
    }); 

Der folgende Code erstellt eine XML-Datei, komprimiert (zip) (jede Zip-Datei hat einen neuen Dateinamen) und lädt sie schließlich auf den Computer herunter. Aber jedes Mal, wenn ich etwas ändere und den Knopf drücke, um das Programm alle diese Schritte ausführen zu lassen, um eine neue Zip-Datei zu erstellen, bekomme ich die alte Datei und die neu erstellte Zip-Datei zusammen. Ich möchte eigentlich nicht das alte behalten, nur die neu erstellte Datei. Hat jemand eine Idee, was geändert werden sollte?So entfernen Sie Schaltflächenerweiterungen in Vaadin?

+1

Ich habe bisher nicht mit dem 'FileDownloader' gearbeitet, aber ich kann mir vorstellen, dass das mehrfache Hinzufügen nicht das ist, was Sie wollen. Versuchen Sie, FileDownloader abzuleiten und 'getFileDownloadResource' zu ​​überschreiben. Oder, was macht Ihre "addToZipFile" genau? –

+0

Haben Sie Ihr Problem gelöst? –

+0

Nein Ich suche nach einer Lösung :(. Ich denke fileDownloader.extend(); ist nicht kompatibel mit Firefox. Im Internetexplorer bekomme ich nur die zuletzt erstellte zip-Datei. Und zu deiner Frage erstelle addToZipFile() für mich eine .zip-Datei –

Antwort

0
FileDownloader f = new FileDownloader(new StreamResource(null, null)) { 
     @Override public Resource getFileDownloadResource() { 
      tmpFileErzeuger.erzeugeXMLDatei(selectedItems); 
      return new FileResource(tmpFileErzeuger.addToZipFile());   
     } 
    }; 

    f.extend(downloadButton); 

Ich denke, diese Lösung ist in Ordnung!

+0

Hätte gerne etwas Kredit gesehen aber ok. –

+0

Wenn Sie einen Vorschlag haben. Wir können es verbessern. –

0

Bevor Sie "f.extend (downloadButton)" aufrufen, müssen Sie sicherstellen, dass alle vorherigen Erweiterungen der Komponente entfernt wurden.