Skip to content

Commit

Permalink
Export file dialog shows directories. Small refactoring.
Browse files Browse the repository at this point in the history
  • Loading branch information
OndroMih committed Apr 15, 2016
1 parent 4b50773 commit c98856a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 26 deletions.
50 changes: 25 additions & 25 deletions src/main/java/com/tagtraum/perf/gcviewer/ctrl/action/Export.java
Expand Up @@ -19,6 +19,7 @@
import com.tagtraum.perf.gcviewer.view.ChartPanelView; import com.tagtraum.perf.gcviewer.view.ChartPanelView;
import com.tagtraum.perf.gcviewer.view.GCDocument; import com.tagtraum.perf.gcviewer.view.GCDocument;
import com.tagtraum.perf.gcviewer.view.GCViewerGui; import com.tagtraum.perf.gcviewer.view.GCViewerGui;
import com.tagtraum.perf.gcviewer.view.util.ExtensionFileFilter;
import com.tagtraum.perf.gcviewer.view.util.ImageHelper; import com.tagtraum.perf.gcviewer.view.util.ImageHelper;


/** /**
Expand All @@ -27,6 +28,7 @@
* Time: 2:01:07 PM * Time: 2:01:07 PM
*/ */
public class Export extends AbstractAction { public class Export extends AbstractAction {

private GCViewerGui gcViewer; private GCViewerGui gcViewer;
private JFileChooser saveDialog; private JFileChooser saveDialog;


Expand All @@ -43,14 +45,12 @@ public Export(final GCViewerGui gcViewer) {
saveDialog = new JFileChooser(); saveDialog = new JFileChooser();
saveDialog.setDialogTitle(LocalisationHelper.getString("fileexport_dialog_title")); saveDialog.setDialogTitle(LocalisationHelper.getString("fileexport_dialog_title"));
saveDialog.removeChoosableFileFilter(saveDialog.getAcceptAllFileFilter()); saveDialog.removeChoosableFileFilter(saveDialog.getAcceptAllFileFilter());
saveDialog.addChoosableFileFilter(new ExtensionFileFilter(".csv", LocalisationHelper.getString("fileexport_dialog_csv"), DataWriterType.CSV)); for (ExportExtensionFileFilter filter : ExportExtensionFileFilter.EXT_FILE_FILTERS) {
saveDialog.addChoosableFileFilter(new ExtensionFileFilter(".csv", LocalisationHelper.getString("fileexport_dialog_csv_ts"), DataWriterType.CSV_TS)); saveDialog.addChoosableFileFilter(filter);
saveDialog.addChoosableFileFilter(new ExtensionFileFilter(".txt", LocalisationHelper.getString("fileexport_dialog_txt"), DataWriterType.PLAIN));
saveDialog.addChoosableFileFilter(new ExtensionFileFilter(".simple.log", LocalisationHelper.getString("fileexport_dialog_simplelog"), DataWriterType.SIMPLE));
saveDialog.addChoosableFileFilter(new ExtensionFileFilter(".csv", LocalisationHelper.getString("fileexport_dialog_summarylog"), DataWriterType.SUMMARY));
saveDialog.addChoosableFileFilter(new ExtensionFileFilter(".png", LocalisationHelper.getString("fileexport_dialog_png"), DataWriterType.PNG));
} }
}


@Override
public void actionPerformed(final ActionEvent e) { public void actionPerformed(final ActionEvent e) {
final GCDocument gcDocument = gcViewer.getSelectedGCDocument(); final GCDocument gcDocument = gcViewer.getSelectedGCDocument();
for (int i=0; i<gcDocument.getChartPanelViewCount(); i++) { for (int i=0; i<gcDocument.getChartPanelViewCount(); i++) {
Expand All @@ -60,10 +60,10 @@ public void actionPerformed(final ActionEvent e) {
saveDialog.setSelectedFile(file); saveDialog.setSelectedFile(file);
final int val = saveDialog.showSaveDialog(gcViewer); final int val = saveDialog.showSaveDialog(gcViewer);
if (val == JFileChooser.APPROVE_OPTION) { if (val == JFileChooser.APPROVE_OPTION) {
ExtensionFileFilter fileFilter = (ExtensionFileFilter) saveDialog.getFileFilter(); ExportExtensionFileFilter fileFilter = (ExportExtensionFileFilter) saveDialog.getFileFilter();
// On OS/X if you don't select one of the filters and just press "Save" the filter may be null. Use the CSV one then // On OS/X if you don't select one of the filters and just press "Save" the filter may be null. Use the CSV one then
if (fileFilter==null) { if (fileFilter==null) {
fileFilter = (ExtensionFileFilter) saveDialog.getChoosableFileFilters()[0]; fileFilter = (ExportExtensionFileFilter) saveDialog.getChoosableFileFilters()[0];
} }
exportFile(chartPanelView.getGCResource().getModel(), exportFile(chartPanelView.getGCResource().getModel(),
saveDialog.getSelectedFile(), saveDialog.getSelectedFile(),
Expand Down Expand Up @@ -96,31 +96,31 @@ public void exportFile(final GCModel model, File file, final String extension, f
} }
} }


private static class ExtensionFileFilter extends FileFilter { private static class ExportExtensionFileFilter extends ExtensionFileFilter {
private String extension;
private String description; public static final ExportExtensionFileFilter[] EXT_FILE_FILTERS = {
private DataWriterType dataWriterType; new ExportExtensionFileFilter(".csv", LocalisationHelper.getString("fileexport_dialog_csv"), DataWriterType.CSV),
new ExportExtensionFileFilter(".csv", LocalisationHelper.getString("fileexport_dialog_csv_ts"), DataWriterType.CSV_TS),
new ExportExtensionFileFilter(".txt", LocalisationHelper.getString("fileexport_dialog_txt"), DataWriterType.PLAIN),
new ExportExtensionFileFilter(".simple.log", LocalisationHelper.getString("fileexport_dialog_simplelog"), DataWriterType.SIMPLE),
new ExportExtensionFileFilter(".csv", LocalisationHelper.getString("fileexport_dialog_summarylog"), DataWriterType.SUMMARY),
new ExportExtensionFileFilter(".png", LocalisationHelper.getString("fileexport_dialog_png"), DataWriterType.PNG)
};

private final String description;
private final DataWriterType dataWriterType;


public ExtensionFileFilter(final String extension, final String description, final DataWriterType dataWriterType) { public ExportExtensionFileFilter(final String extension, final String description, final DataWriterType dataWriterType) {
this.extension = extension.toLowerCase(); super(extension.toLowerCase());
this.description = description; this.description = description;
this.dataWriterType = dataWriterType; this.dataWriterType = dataWriterType;
} }


public boolean accept(final File file) {
// TODO refactor
try {
return file.toString().toLowerCase().endsWith(extension);
}
catch (NullPointerException e) {
return false;
}
}

public String getExtension() { public String getExtension() {
return extension; return super.extension;
} }


@Override
public String getDescription() { public String getDescription() {
return description; return description;
} }
Expand Down
Expand Up @@ -15,7 +15,7 @@ public class ExtensionFileFilter extends FileFilter {
new ExtensionFileFilter("txt.gz"), new ExtensionFileFilter("gc.gz"), new ExtensionFileFilter("log.gz") new ExtensionFileFilter("txt.gz"), new ExtensionFileFilter("gc.gz"), new ExtensionFileFilter("log.gz")
}; };


private final String extension; protected final String extension;


public ExtensionFileFilter(String extension) { public ExtensionFileFilter(String extension) {
this.extension = extension; this.extension = extension;
Expand Down

0 comments on commit c98856a

Please sign in to comment.