(String name, String extension)
| 92 | } |
| 93 | |
| 94 | @AstroImageJ(reason = "Handle case of double extension for save dialog", modified = true) |
| 95 | public static String setExtension(String name, String extension) { |
| 96 | if (name==null || extension==null || extension.length()==0) |
| 97 | return name; |
| 98 | if (name.endsWith(extension)) { |
| 99 | var i = name.lastIndexOf(extension); |
| 100 | if (i >= 0) { |
| 101 | name = name.substring(0, i); |
| 102 | } |
| 103 | } |
| 104 | int dotIndex = name.lastIndexOf("."); |
| 105 | if (dotIndex>=0 && (name.length()-dotIndex)<=5) { |
| 106 | if (dotIndex+1<name.length() && Character.isDigit(name.charAt(dotIndex+1))) |
| 107 | name += extension; |
| 108 | else |
| 109 | name = name.substring(0, dotIndex) + extension; |
| 110 | } else if (!name.endsWith(extension)) |
| 111 | name += extension; |
| 112 | return name; |
| 113 | } |
| 114 | |
| 115 | // Save using JFileChooser. |
| 116 | void jSave(String title, String defaultDir, String defaultName) { |
no test coverage detected