Marking parent nodes as modified (bold) too - TreeItem now has isModified method

This commit is contained in:
Jindra Petřík
2015-04-06 06:04:24 +02:00
parent ad72c34f36
commit 721431e45c
15 changed files with 163 additions and 6 deletions

View File

@@ -243,4 +243,11 @@ public class ScriptPack extends AS3ClassTreeItem {
}
return true;
}
@Override
public boolean isModified() {
return abc.script_info.get(scriptIndex).isModified();
}
}

View File

@@ -128,4 +128,15 @@ public class DefineBinaryDataTag extends CharacterTag {
return false;
}
@Override
public boolean isModified() {
if(super.isModified()){
return true;
}
if(innerSwf!=null){
return innerSwf.isModified();
}
return false;
}
}

View File

@@ -113,4 +113,21 @@ public class AS2Package implements TreeItem {
public String toString() {
return name;
}
@Override
public boolean isModified() {
for(ASMSource s:scripts.values()){
if(s.isModified()){
return true;
}
}
for(AS2Package p:subPackages.values()){
if(p.isModified()){
return true;
}
}
return false;
}
}

View File

@@ -147,4 +147,23 @@ public class AS3Package extends AS3ClassTreeItem {
public String toString() {
return packageName;
}
@Override
public boolean isModified() {
List<ScriptPack> sps=getScriptPacks();
for(ScriptPack sp:sps){
if(sp.isModified()){
return true;
}
}
List<AS3Package> ps=getSubPackages();
for(AS3Package p:ps){
if(p.isModified()){
return true;
}
}
return false;
}
}

View File

@@ -87,4 +87,29 @@ public class Frame implements TreeItem, Exportable {
public String getExportFileName() {
return "frame_" + (frame + 1);
}
@Override
public boolean isModified() {
for(Tag t:innerTags){
if(t.isModified()){
return true;
}
}
for(Tag t:actions){
if(t.isModified()){
return true;
}
}
for(ASMSourceContainer t:actionContainers){
if(t.isModified()){
return true;
}
}
if(showFrameTag!=null && showFrameTag.isModified()){
return true;
}
return false;
}
}

View File

@@ -53,4 +53,11 @@ public class FrameScript implements TreeItem, Exportable {
public String getExportFileName() {
return frame.getExportFileName();
}
@Override
public boolean isModified() {
return frame.isModified();
}
}

View File

@@ -76,4 +76,16 @@ public class TagScript implements TreeItem, Exportable {
public int hashCode() {
return tag.hashCode();
}
@Override
public boolean isModified() {
for(TreeItem f:frames){
if(f.isModified()){
return true;
}
}
return tag.isModified();
}
}

View File

@@ -53,4 +53,15 @@ public class FolderItem implements TreeItem {
public String toString() {
return str;
}
@Override
public boolean isModified() {
for(TreeItem ti:subItems){
if(ti.isModified()){
return true;
}
}
return false;
}
}

View File

@@ -42,4 +42,11 @@ public class HeaderItem implements TreeItem {
public String toString() {
return name;
}
@Override
public boolean isModified() {
return false; //??
}
}

View File

@@ -172,4 +172,16 @@ public class SWFList implements List<SWF>, SWFContainerItem {
public List<SWF> subList(int i, int i1) {
return swfs.subList(i, i1);
}
@Override
public boolean isModified() {
for(SWF s:swfs){
if(s.isModified()){
return true;
}
}
return false;
}
}

View File

@@ -25,4 +25,6 @@ import com.jpexs.decompiler.flash.SWF;
public interface TreeItem {
public SWF getSwf();
public boolean isModified();
}

View File

@@ -145,7 +145,7 @@ public class BUTTONCONDACTION implements ASMSource, Serializable {
*/
@Internal
public ByteArrayRange actionBytes;
/**
* Sets actions associated with this object
*
@@ -239,6 +239,16 @@ public class BUTTONCONDACTION implements ASMSource, Serializable {
}
}
@Override
public boolean isModified() {
if (tag != null) {
return tag.isModified();
}
return false;
}
@Override
public GraphTextWriter getActionBytesAsHex(GraphTextWriter writer) {
return Helper.byteArrayToHexWithHeader(writer, actionBytes.getRangeData());

View File

@@ -43,7 +43,7 @@ import java.util.logging.Logger;
* @author JPEXS
*/
public class CLIPACTIONRECORD implements ASMSource, Serializable {
public static String keyToString(int key) {
if ((key < CLIPACTIONRECORD.KEYNAMES.length) && (key > 0) && (CLIPACTIONRECORD.KEYNAMES[key] != null)) {
return CLIPACTIONRECORD.KEYNAMES[key];
@@ -229,9 +229,19 @@ public class CLIPACTIONRECORD implements ASMSource, Serializable {
public void setModified() {
if (tag != null) {
tag.setModified(true);
}
}
}
@Override
public boolean isModified() {
if (tag != null) {
return tag.isModified();
}
return false;
}
@Override
public GraphTextWriter getActionBytesAsHex(GraphTextWriter writer) {
return Helper.byteArrayToHexWithHeader(writer, actionBytes.getRangeData());