mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-25 09:31:09 +00:00
Fixed AS3 - Select the trait after adding new
Fixed #1955 AS3 - Exception during removing trait
This commit is contained in:
@@ -122,6 +122,7 @@ import java.util.logging.Logger;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.BoxLayout;
|
||||
import javax.swing.DefaultListModel;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JCheckBoxMenuItem;
|
||||
import javax.swing.JComboBox;
|
||||
@@ -1781,7 +1782,7 @@ public class ABCPanel extends JPanel implements ItemListener, SearchListener<Scr
|
||||
}
|
||||
|
||||
if (ViewMessages.showConfirmDialog(this, AppStrings.translate("message.confirm.removetrait"), AppStrings.translate("message.warning"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE) == JOptionPane.OK_OPTION) {
|
||||
|
||||
navigator.setModel(new DefaultListModel<>());
|
||||
if (scriptTraitsUsed) {
|
||||
final int fTraitIndex = traitIndex;
|
||||
final Traits fTraits = traits;
|
||||
@@ -1802,7 +1803,7 @@ public class ABCPanel extends JPanel implements ItemListener, SearchListener<Scr
|
||||
((Tag) abc.parentTag).setModified(true);
|
||||
reload();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1857,6 +1858,7 @@ public class ABCPanel extends JPanel implements ItemListener, SearchListener<Scr
|
||||
}
|
||||
}
|
||||
} while (again);
|
||||
navigator.setModel(new DefaultListModel<>());
|
||||
switch (kind) {
|
||||
case Trait.TRAIT_GETTER:
|
||||
case Trait.TRAIT_SETTER:
|
||||
@@ -1906,8 +1908,14 @@ public class ABCPanel extends JPanel implements ItemListener, SearchListener<Scr
|
||||
abc.script_info.get(scriptIndex).setModified(true);
|
||||
}
|
||||
((Tag) abc.parentTag).setModified(true);
|
||||
reload();
|
||||
decompiledTextArea.gotoTrait(traitId);
|
||||
decompiledTextArea.addScriptListener(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
decompiledTextArea.gotoTrait(traitId);
|
||||
decompiledTextArea.removeScriptListener(this);
|
||||
}
|
||||
});
|
||||
reload();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,12 +20,14 @@ import com.jpexs.decompiler.flash.abc.ABC;
|
||||
import com.jpexs.decompiler.flash.abc.types.ConvertData;
|
||||
import com.jpexs.decompiler.flash.abc.types.traits.Trait;
|
||||
import com.jpexs.decompiler.flash.abc.types.traits.TraitType;
|
||||
import com.jpexs.decompiler.flash.abc.types.traits.Traits;
|
||||
import com.jpexs.decompiler.flash.configuration.Configuration;
|
||||
import com.jpexs.decompiler.flash.exporters.modes.ScriptExportMode;
|
||||
import com.jpexs.decompiler.flash.helpers.HighlightedTextWriter;
|
||||
import com.jpexs.decompiler.flash.helpers.NulWriter;
|
||||
import com.jpexs.decompiler.flash.search.ABCSearchResult;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@@ -99,14 +101,22 @@ public class TraitsListItem {
|
||||
}
|
||||
} else if (isStatic) {
|
||||
ConvertData convertData = new ConvertData();
|
||||
Trait trait = abc.class_info.get(classIndex).static_traits.traits.get(index);
|
||||
List<Trait> traits = abc.class_info.get(classIndex).static_traits.traits;
|
||||
if (index >= traits.size()) {
|
||||
return "";
|
||||
}
|
||||
Trait trait = traits.get(index);
|
||||
trait.convertHeader(null, convertData, "", abc, true, ScriptExportMode.AS, scriptIndex, classIndex, new NulWriter(), new ArrayList<>(), false);
|
||||
HighlightedTextWriter writer = new HighlightedTextWriter(Configuration.getCodeFormatting(), false);
|
||||
trait.toStringHeader(null, convertData, "", abc, true, ScriptExportMode.AS, scriptIndex, classIndex, writer, new ArrayList<>(), false);
|
||||
s = writer.toString();
|
||||
} else {
|
||||
ConvertData convertData = new ConvertData();
|
||||
Trait trait = abc.instance_info.get(classIndex).instance_traits.traits.get(index);
|
||||
List<Trait> traits = abc.instance_info.get(classIndex).instance_traits.traits;
|
||||
if (index >= traits.size()) {
|
||||
return "";
|
||||
}
|
||||
Trait trait = traits.get(index);
|
||||
trait.convertHeader(null, convertData, "", abc, false, ScriptExportMode.AS, scriptIndex, classIndex, new NulWriter(), new ArrayList<>(), false);
|
||||
HighlightedTextWriter writer = new HighlightedTextWriter(Configuration.getCodeFormatting(), false);
|
||||
trait.toStringHeader(null, convertData, "", abc, false, ScriptExportMode.AS, scriptIndex, classIndex, writer, new ArrayList<>(), false);
|
||||
|
||||
Reference in New Issue
Block a user