Added: Generator Templates (.swt) files support and related tags (Flash 3-5)

(CharacterSet, GenCommand, NameCharacter, DefineTextFormat, FontRef)
DefineVideo tag support (Flash 4)
SerialNumber tag support (before Flash 7)
This commit is contained in:
Jindra Petřík
2025-08-29 00:02:38 +02:00
parent d7665cf093
commit 1e9bf6be88
29 changed files with 1243 additions and 53 deletions

View File

@@ -1346,7 +1346,7 @@ public class Main {
JFileChooser fc = new JFileChooser();
fc.setCurrentDirectory(new File(Configuration.lastOpenDir.get()));
FileFilter allSupportedFilter = new FileFilter() {
private final String[] supportedExtensions = new String[]{".swf", ".spl", ".gfx"};
private final String[] supportedExtensions = new String[]{".swf", ".spl", ".swt", ".gfx"};
@Override
public boolean accept(File f) {
@@ -1371,16 +1371,31 @@ public class Main {
public boolean accept(File f) {
return (f.getName().toLowerCase(Locale.ENGLISH).endsWith(".swf"))
|| (f.getName().toLowerCase(Locale.ENGLISH).endsWith(".spl"))
|| (f.getName().toLowerCase(Locale.ENGLISH).endsWith(".swt"))
|| (f.isDirectory());
}
@Override
public String getDescription() {
return AppStrings.translate("filter.swf_spl");
return AppStrings.translate("filter.swf_spl_swt");
}
};
fc.addChoosableFileFilter(swfFilter);
FileFilter swtFilter = new FileFilter() {
@Override
public boolean accept(File f) {
return (f.getName().toLowerCase(Locale.ENGLISH).endsWith(".swt"))
|| f.isDirectory();
}
@Override
public String getDescription() {
return AppStrings.translate("filter.swt");
}
};
fc.addChoosableFileFilter(swtFilter);
FileFilter gfxFilter = new FileFilter() {
@Override
public boolean accept(File f) {
@@ -2235,6 +2250,18 @@ public class Main {
}
};
FileFilter swtFilter = new FileFilter() {
@Override
public boolean accept(File f) {
return (f.getName().toLowerCase(Locale.ENGLISH).endsWith(".swt")) || (f.isDirectory());
}
@Override
public String getDescription() {
return AppStrings.translate("filter.swt");
}
};
FileFilter gfxFilter = new FileFilter() {
@Override
public boolean accept(File f) {
@@ -2337,8 +2364,16 @@ public class Main {
fc.addChoosableFileFilter(swfFilter);
fc.setFileFilter(gfxFilter);
} else if (openable instanceof SWF) {
fc.setFileFilter(swfFilter);
SWF swf = (SWF) openable;
if (swf.getFile() != null && swf.getFile().toLowerCase(Locale.ENGLISH).endsWith(".swt")) {
fc.setFileFilter(swtFilter);
fc.addChoosableFileFilter(swfFilter);
} else {
fc.setFileFilter(swfFilter);
fc.addChoosableFileFilter(swtFilter);
}
fc.addChoosableFileFilter(gfxFilter);
} else if (openable instanceof ABC) {
fc.setFileFilter(abcFilter);
}
@@ -2362,6 +2397,12 @@ public class Main {
}
((SWF) openable).gfx = true;
}
if (selFilter == swtFilter) {
if (!fileName.toLowerCase(Locale.ENGLISH).endsWith(".swt")) {
fileName += ".swt";
}
}
if (selFilter == abcFilter) {
if (!fileName.toLowerCase(Locale.ENGLISH).endsWith(".abc")) {
@@ -2446,7 +2487,7 @@ public class Main {
}
fc.setCurrentDirectory(new File(Configuration.lastOpenDir.get()));
FileFilter allSupportedFilter = new FileFilter() {
private final String[] supportedExtensions = new String[]{".swf", ".spl", ".gfx", ".swc", ".zip", ".iggy", ".abc"};
private final String[] supportedExtensions = new String[]{".swf", ".spl", ".swt", ".gfx", ".swc", ".zip", ".iggy", ".abc"};
@Override
public boolean accept(File f) {
@@ -2471,16 +2512,31 @@ public class Main {
public boolean accept(File f) {
return (f.getName().toLowerCase(Locale.ENGLISH).endsWith(".swf"))
|| (f.getName().toLowerCase(Locale.ENGLISH).endsWith(".spl"))
|| (f.getName().toLowerCase(Locale.ENGLISH).endsWith(".swt"))
|| (f.isDirectory());
}
@Override
public String getDescription() {
return AppStrings.translate("filter.swf_spl");
return AppStrings.translate("filter.swf_spl_swt");
}
};
fc.addChoosableFileFilter(swfFilter);
FileFilter swtFilter = new FileFilter() {
@Override
public boolean accept(File f) {
return f.getName().toLowerCase(Locale.ENGLISH).endsWith(".swt")
|| f.isDirectory();
}
@Override
public String getDescription() {
return AppStrings.translate("filter.swt");
}
};
fc.addChoosableFileFilter(swtFilter);
FileFilter swcFilter = new FileFilter() {
@Override
public boolean accept(File f) {