Skip to content
Snippets Groups Projects
Commit 2e07f581 authored by Tim Molter's avatar Tim Molter
Browse files

improved FileFilter code as Benedikt Bünz's PR #85 demonstrated

parent 13bf0bd8
No related branches found
No related tags found
No related merge requests found
...@@ -113,11 +113,11 @@ public class XChartPanel extends JPanel { ...@@ -113,11 +113,11 @@ public class XChartPanel extends JPanel {
private void showSaveAsDialog() { private void showSaveAsDialog() {
JFileChooser fileChooser = new JFileChooser(); JFileChooser fileChooser = new JFileChooser();
fileChooser.addChoosableFileFilter(new JPGSaveFilter()); fileChooser.addChoosableFileFilter(new SuffixSaveFilter("jpg"));
FileFilter pngFileFilter = new PNGSaveFilter(); FileFilter pngFileFilter = new SuffixSaveFilter("png");
fileChooser.addChoosableFileFilter(pngFileFilter); fileChooser.addChoosableFileFilter(pngFileFilter);
fileChooser.addChoosableFileFilter(new BMPSaveFilter()); fileChooser.addChoosableFileFilter(new SuffixSaveFilter("bmp"));
fileChooser.addChoosableFileFilter(new GIFSaveFilter()); fileChooser.addChoosableFileFilter(new SuffixSaveFilter("gif"));
fileChooser.setAcceptAllFileFilterUsed(false); fileChooser.setAcceptAllFileFilterUsed(false);
fileChooser.setFileFilter(pngFileFilter); fileChooser.setFileFilter(pngFileFilter);
...@@ -130,7 +130,8 @@ public class XChartPanel extends JPanel { ...@@ -130,7 +130,8 @@ public class XChartPanel extends JPanel {
if (fileChooser.getFileFilter() == null) { if (fileChooser.getFileFilter() == null) {
BitmapEncoder.saveBitmap(chart, theFileToSave.getCanonicalPath().toString(), BitmapFormat.PNG); BitmapEncoder.saveBitmap(chart, theFileToSave.getCanonicalPath().toString(), BitmapFormat.PNG);
} else if (fileChooser.getFileFilter().getDescription().equals("*.jpg,*.JPG")) { } else if (fileChooser.getFileFilter().getDescription().equals("*.jpg,*.JPG")) {
BitmapEncoder.saveJPGWithQuality(chart, BitmapEncoder.addFileExtension(theFileToSave.getCanonicalPath().toString(), BitmapFormat.JPG), 1.0f); BitmapEncoder.saveJPGWithQuality(chart, BitmapEncoder.addFileExtension(theFileToSave.getCanonicalPath().toString(), BitmapFormat.JPG),
1.0f);
} else if (fileChooser.getFileFilter().getDescription().equals("*.png,*.PNG")) { } else if (fileChooser.getFileFilter().getDescription().equals("*.png,*.PNG")) {
BitmapEncoder.saveBitmap(chart, theFileToSave.getCanonicalPath().toString(), BitmapFormat.PNG); BitmapEncoder.saveBitmap(chart, theFileToSave.getCanonicalPath().toString(), BitmapFormat.PNG);
} else if (fileChooser.getFileFilter().getDescription().equals("*.bmp,*.BMP")) { } else if (fileChooser.getFileFilter().getDescription().equals("*.bmp,*.BMP")) {
...@@ -146,92 +147,38 @@ public class XChartPanel extends JPanel { ...@@ -146,92 +147,38 @@ public class XChartPanel extends JPanel {
} }
} }
private class JPGSaveFilter extends FileFilter { /**
* File filter based on the suffix of a file. This file filter accepts all files that end with .suffix or the capitalized suffix.
@Override *
public boolean accept(File f) { * @author Benedikt Bünz
*/
if (f.isDirectory()) { private class SuffixSaveFilter extends FileFilter {
return true; private final String suffix;
}
String s = f.getName();
return s.endsWith(".jpg") || s.endsWith(".JPG");
}
@Override
public String getDescription() {
return "*.jpg,*.JPG";
}
}
private class BMPSaveFilter extends FileFilter {
@Override
public boolean accept(File f) {
if (f.isDirectory()) {
return true;
}
String s = f.getName();
return s.endsWith(".bmp") || s.endsWith(".BMP");
}
@Override
public String getDescription() {
return "*.bmp,*.BMP";
}
}
private class GIFSaveFilter extends FileFilter {
@Override
public boolean accept(File f) {
if (f.isDirectory()) {
return true;
}
String s = f.getName();
return s.endsWith(".gif") || s.endsWith(".GIF");
}
@Override
public String getDescription() {
return "*.gif,*.GIF";
}
/**
* @param suffix This file filter accepts all files that end with .suffix or the capitalized suffix.
*/
public SuffixSaveFilter(String suffix) {
this.suffix = suffix;
} }
private class PNGSaveFilter extends FileFilter {
@Override @Override
public boolean accept(File f) { public boolean accept(File f) {
if (f.isDirectory()) { if (f.isDirectory()) {
return true; return false;
} }
String s = f.getName(); String s = f.getName();
return s.endsWith(".png") || s.endsWith(".PNG"); return s.endsWith("." + suffix) || s.endsWith("." + suffix.toUpperCase());
} }
@Override @Override
public String getDescription() { public String getDescription() {
return "*.png,*.PNG"; return "*." + suffix + ",*." + suffix.toUpperCase();
} }
} }
private class PopUpMenuClickListener extends MouseAdapter { private class PopUpMenuClickListener extends MouseAdapter {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment