mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-14 15:26:52 -04:00
fixed a bug in the suffix handling
This commit is contained in:
parent
e0b8254f54
commit
17354d9de5
@ -5,6 +5,7 @@
|
||||
*/
|
||||
package de.neemann.digital.gui;
|
||||
|
||||
import de.neemann.digital.analyse.quinemc.TableRows;
|
||||
import de.neemann.digital.lang.Lang;
|
||||
import de.neemann.gui.ErrorMessage;
|
||||
|
||||
@ -12,12 +13,27 @@ import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.HashSet;
|
||||
|
||||
/**
|
||||
* Helper to handle the overwrite conformation
|
||||
* <p>
|
||||
*/
|
||||
public final class SaveAsHelper {
|
||||
private static final HashSet<String> KNOWN = new HashSet<>();
|
||||
|
||||
static {
|
||||
KNOWN.add("dig");
|
||||
KNOWN.add("svg");
|
||||
KNOWN.add("vhdl");
|
||||
KNOWN.add("v");
|
||||
KNOWN.add("hex");
|
||||
KNOWN.add("tru");
|
||||
KNOWN.add("csv");
|
||||
KNOWN.add("gif");
|
||||
KNOWN.add("png");
|
||||
}
|
||||
|
||||
private final Component parent;
|
||||
private final JFileChooser fc;
|
||||
private final String suffix;
|
||||
@ -102,8 +118,13 @@ public final class SaveAsHelper {
|
||||
|
||||
String name = filename.getName();
|
||||
int p = name.lastIndexOf('.');
|
||||
if (p >= 0 && p == name.length() - 4)
|
||||
if (p >= 0) {
|
||||
String suf = name.substring(p + 1).toLowerCase();
|
||||
if (KNOWN.contains(suf))
|
||||
name = name.substring(0, p);
|
||||
while (name.length() > 0 && name.charAt(name.length() - 1) == '.')
|
||||
name = name.substring(0, name.length() - 1);
|
||||
}
|
||||
return new File(filename.getParentFile(), name + "." + suffix);
|
||||
}
|
||||
|
||||
|
@ -12,10 +12,17 @@ import java.io.File;
|
||||
public class SaveAsHelperTest extends TestCase {
|
||||
|
||||
public void testCheckSuffix() {
|
||||
assertEquals("test.dig", SaveAsHelper.checkSuffix(new File("test."), "dig").getName());
|
||||
assertEquals("test.dig", SaveAsHelper.checkSuffix(new File("test"), "dig").getName());
|
||||
|
||||
assertEquals("test.dig", SaveAsHelper.checkSuffix(new File("test.dig"), "dig").getName());
|
||||
assertEquals("test.dig", SaveAsHelper.checkSuffix(new File("test.svg"), "dig").getName());
|
||||
assertEquals("test.main.dig", SaveAsHelper.checkSuffix(new File("test.main"), "dig").getName());
|
||||
assertEquals("test.main.dig", SaveAsHelper.checkSuffix(new File("test.main.dig"), "dig").getName());
|
||||
assertEquals("test.dig", SaveAsHelper.checkSuffix(new File("test.mai"), "dig").getName());
|
||||
assertEquals("test.mai.dig", SaveAsHelper.checkSuffix(new File("test.mai"), "dig").getName());
|
||||
|
||||
assertEquals("test.dig", SaveAsHelper.checkSuffix(new File("test.v"), "dig").getName());
|
||||
assertEquals("test.dig", SaveAsHelper.checkSuffix(new File("test.vhdl"), "dig").getName());
|
||||
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user