mark_weigelt
Elite Observer

FileChooser in FirstSpirit 4.2 erstellen?

Jump to solution

Hallo,

wie lässt sich in FirstSpirit 4.2 ein FileChooser in einem Beanshell-Skript erstellen?

Hintergrund: Die Redakteure sollen eine CSV-Datei auswählen können (CSV-Import).

In FirstSpirit 3.1 ging dies mit:

...

guiHost = ((ScriptContextImpl) context).getHost();

File loadCsvFile(){

    chooser = new JFileChooser();

    i = chooser.showOpenDialog(guiHost.getParentComponent());

    print("i: " + guiHost.getParentComponent());

    if(i == JFileChooser.APPROVE_OPTION){

        csvFilePath = chooser.getSelectedFile();

        csvFile = chooser.getName(chooser.getSelectedFile());

        csvExtension = csvFile.substring(csvFile.indexOf("."));

        if(csvExtension.equals(".csv")){

            print(csvFilePath);

            return csvFilePath;

        }else {   

            return null;

        }

    }

}

updateFile = loadCsvFile();

...

Bisher habe ich es so versucht:

guiHost = context.getGuiHost();

Aber wie muss dann:

i = chooser.showOpenDialog(guiHost.getParentComponent());

aussehen?

guiHost.getParentComponent()

funktioniert nicht mehr?

Vielen Dank.

0 Kudos
1 Solution

Accepted Solutions
gockel
Crownpeak employee

aber wie muss dann:

i = chooser.showOpenDialog(guiHost.getParentComponent());


Ich denke hier sollte man die Javamittel verwenden.

import javax.swing.JOptionPane;

import java.awt.Frame;

comp = null;

for (final Frame frame : Frame.getFrames()) {

     if (frame.isActive()) {
          comp = frame;
          break;
     }
}

if (comp == null) {

     comp = JOptionPane.getRootFrame();

}

i = chooser.showOpenDialog(comp);

View solution in original post

0 Kudos
2 Replies
gockel
Crownpeak employee

aber wie muss dann:

i = chooser.showOpenDialog(guiHost.getParentComponent());


Ich denke hier sollte man die Javamittel verwenden.

import javax.swing.JOptionPane;

import java.awt.Frame;

comp = null;

for (final Frame frame : Frame.getFrames()) {

     if (frame.isActive()) {
          comp = frame;
          break;
     }
}

if (comp == null) {

     comp = JOptionPane.getRootFrame();

}

i = chooser.showOpenDialog(comp);

0 Kudos

Hallo Herr Gockel,

vielen Dank. Damit funktioniert es.

Viele Grüße

M. Weigelt

0 Kudos