replace text

This commit is contained in:
honfika@gmail.com
2014-12-21 20:54:42 +01:00
parent 8cf907e3b8
commit 74ba0f14db
15 changed files with 68 additions and 171 deletions

View File

@@ -311,7 +311,7 @@ public final class SWF implements SWFContainerItem, Timelined {
return jtt;
}
public void fixCharactersOrder(boolean checkAll) {
Set<Integer> addedCharacterIds = new HashSet<>();
Set<CharacterTag> movedTags = new HashSet<>();

View File

@@ -86,7 +86,7 @@ public class TextExporter {
if (settings.singleFile) {
String fileName = Configuration.overrideTextExportFileName.get();
if (fileName != null) {
if (fileName != null && !fileName.isEmpty()) {
String swfName = Path.getFileNameWithoutExtension(new File(tags.get(0).getSwf().getShortFileName()));
fileName = fileName.replace("{fileName}", swfName);
} else {
@@ -104,7 +104,10 @@ public class TextExporter {
if (settings.mode == TextExportMode.FORMATTED) {
fos.write(Utf8Helper.getBytes(textTag.getFormattedText()));
} else {
fos.write(Utf8Helper.getBytes(textTag.getText(Configuration.textExportSingleFileRecordSeparator.get())));
String separator = Configuration.textExportSingleFileRecordSeparator.get();
separator = Helper.newLine + separator + Helper.newLine;
List<String> texts = textTag.getTexts();
fos.write(Utf8Helper.getBytes(String.join(separator, texts)));
}
fos.write(Utf8Helper.getBytes(Helper.newLine + Configuration.textExportSingleFileSeparator.get() + Helper.newLine));
}
@@ -125,7 +128,10 @@ public class TextExporter {
if (settings.mode == TextExportMode.FORMATTED) {
fos.write(Utf8Helper.getBytes(textTag.getFormattedText()));
} else {
fos.write(Utf8Helper.getBytes(textTag.getText(Configuration.textExportSingleFileRecordSeparator.get())));
String separator = Configuration.textExportSingleFileRecordSeparator.get();
separator = Helper.newLine + separator + Helper.newLine;
List<String> texts = textTag.getTexts();
fos.write(Utf8Helper.getBytes(String.join(separator, texts)));
}
}
}

View File

@@ -56,6 +56,7 @@ import java.io.IOException;
import java.io.OutputStream;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -191,7 +192,7 @@ public class DefineEditTextTag extends TextTag {
}
@Override
public String getText(String separator) {
public List<String> getTexts() {
String ret = "";
if (hasText) {
ret = initialText;
@@ -200,7 +201,7 @@ public class DefineEditTextTag extends TextTag {
ret = stripTags(ret);
ret = entitiesReplace(ret);
}
return ret;
return Arrays.asList(ret);
}
private List<CharacterWithStyle> getTextWithStyle() {

View File

@@ -85,15 +85,10 @@ public class DefineText2Tag extends TextTag {
}
@Override
public String getText(String separator) {
public List<String> getTexts() {
FontTag fnt = null;
String ret = "";
boolean first = true;
List<String> ret = new ArrayList<>();
for (TEXTRECORD rec : textRecords) {
if (!first) {
ret += Helper.newLine + separator + Helper.newLine;
}
first = false;
if (rec.styleFlagsHasFont) {
for (Tag t : swf.tags) {
if (t instanceof FontTag) {
@@ -109,7 +104,7 @@ public class DefineText2Tag extends TextTag {
ret += "\r\n";
}*/
}
ret += rec.getText(fnt);
ret.add(rec.getText(fnt));
}
return ret;
}

View File

@@ -86,15 +86,10 @@ public class DefineTextTag extends TextTag {
}
@Override
public String getText(String separator) {
public List<String> getTexts() {
FontTag fnt = null;
String ret = "";
boolean first = true;
List<String> ret = new ArrayList<>();
for (TEXTRECORD rec : textRecords) {
if (!first) {
ret += Helper.newLine + separator + Helper.newLine;
}
first = false;
if (rec.styleFlagsHasFont) {
for (Tag t : swf.tags) {
if (t instanceof FontTag) {
@@ -110,7 +105,7 @@ public class DefineTextTag extends TextTag {
ret += "\r\n";
}*/
}
ret += rec.getText(fnt);
ret.add(rec.getText(fnt));
}
return ret;
}

View File

@@ -77,7 +77,7 @@ public abstract class TextTag extends CharacterTag implements DrawableTag {
public abstract MATRIX getTextMatrix();
public abstract String getText(String separator);
public abstract List<String> getTexts();
public abstract List<Integer> getFontIds();