1616
1717package cn .enaium .joe .gui .panel .file .tabbed .tab .classes ;
1818
19+ import cn .enaium .joe .JavaOctetEditor ;
20+ import cn .enaium .joe .event .Event ;
1921import cn .enaium .joe .util .LangUtil ;
2022import org .objectweb .asm .tree .ClassNode ;
2123
2224import javax .swing .*;
25+ import javax .swing .event .ChangeEvent ;
26+ import javax .swing .event .ChangeListener ;
2327import java .awt .*;
28+ import java .util .function .Consumer ;
2429
2530/**
2631 * @author Enaium
@@ -35,9 +40,19 @@ public ClassTabPanel(ClassNode classNode) {
3540 JTabbedPane jTabbedPane = new JTabbedPane ();
3641 jTabbedPane .setTabPlacement (JTabbedPane .BOTTOM );
3742 jTabbedPane .addTab (LangUtil .i18n ("class.tab.bytecodeView" ), new TraceBytecodeTabPanel (classNode ));
38- jTabbedPane .addTab (LangUtil .i18n ("class.tab.decompileView " ), new DecompileTabPanel (classNode ));
43+ jTabbedPane .addTab (LangUtil .i18n ("class.tab.decompileEdit " ), new DecompileTabPanel (classNode ));
3944 jTabbedPane .addTab (LangUtil .i18n ("class.tab.visitorEdit" ), new ASMifierTablePanel (classNode ));
4045 jTabbedPane .addTab (LangUtil .i18n ("class.tab.infoEdit" ), new ClassInfoTabPanel (classNode ));
46+ jTabbedPane .addChangeListener (e -> JavaOctetEditor .getInstance ().event .call (new Change (jTabbedPane .getSelectedIndex ())));
47+ JavaOctetEditor .getInstance ().event .register (Change .class , (Consumer <Change >) event -> jTabbedPane .setSelectedIndex (event .index ));
4148 add (jTabbedPane );
4249 }
50+
51+ private static class Change implements Event {
52+ private final int index ;
53+
54+ public Change (int index ) {
55+ this .index = index ;
56+ }
57+ }
4358}
0 commit comments