package comeon.ui.actions;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import comeon.core.UploaderReporter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
@Singleton
public class BrowseToReportAction extends BaseAction {
private static final Logger LOGGER = LoggerFactory.getLogger(BrowseToReportAction.class);
private final UploaderReporter reporter;
@Inject
public BrowseToReportAction(final UploaderReporter reporter) {
super("report");
this.reporter = reporter;
this.setEnabled(reporter.findLoggingFileLocation().isPresent());
}
@Override
public void actionPerformed(final ActionEvent e) {
reporter.findLoggingFileLocation().ifPresent(location -> {
if (Desktop.isDesktopSupported()) {
final Desktop desktop = Desktop.getDesktop();
final Path report = Paths.get(location);
try {
desktop.open(report.getParent().toFile());
} catch (final IOException ex) {
LOGGER.warn("Could not open report directory", e);
}
}
});
}
}