Skip to content

Commit 3c4ce10

Browse files
committed
improve tab select
1 parent 8f14b96 commit 3c4ce10

File tree

2 files changed

+9
-16
lines changed

2 files changed

+9
-16
lines changed

src/main/java/cn/enaium/joe/Instance.java

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/main/java/cn/enaium/joe/gui/panel/file/tabbed/tab/classes/ClassTabPanel.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,19 @@
1717
package cn.enaium.joe.gui.panel.file.tabbed.tab.classes;
1818

1919
import cn.enaium.joe.JavaOctetEditor;
20-
import cn.enaium.joe.Instance;
2120
import cn.enaium.joe.event.events.EditSaveSuccessEvent;
2221
import cn.enaium.joe.util.LangUtil;
2322
import org.objectweb.asm.tree.ClassNode;
2423

2524
import javax.swing.*;
2625
import java.awt.*;
27-
import java.util.Arrays;
2826
import java.util.WeakHashMap;
2927

3028
/**
3129
* @author Enaium
3230
*/
3331
public class ClassTabPanel extends JPanel {
32+
public static int classTabIndex = 0;
3433

3534
protected TraceBytecodeTabPanel traceBytecodeTabPanel;
3635
protected DecompileTabPanel decompileTabPanel;
@@ -51,31 +50,31 @@ public ClassTabPanel(ClassNode classNode) {
5150
jTabbedPane.addTab(LangUtil.i18n("class.tab.decompileEdit"), decompileTabPanel = new DecompileTabPanel(classNode));
5251
jTabbedPane.addTab(LangUtil.i18n("class.tab.visitorEdit"), asmTablePanel = new ASMifierTablePanel(classNode));
5352
jTabbedPane.addTab(LangUtil.i18n("class.tab.infoEdit"), classInfoTabPanel = new ClassInfoTabPanel(classNode));
54-
jTabbedPane.setSelectedIndex(Instance.INSTANCE.classTabIndex);
53+
jTabbedPane.setSelectedIndex(classTabIndex);
5554
internalName2panel.put(classNode.name, this);
5655
jTabbedPane.addChangeListener(e -> {
57-
Instance.INSTANCE.classTabIndex = jTabbedPane.getSelectedIndex();
56+
classTabIndex = jTabbedPane.getSelectedIndex();
5857
for (ClassTabPanel panel : internalName2panel.values()){
5958
if (panel != null){
60-
panel.jTabbedPane.setSelectedIndex(Instance.INSTANCE.classTabIndex);
59+
panel.jTabbedPane.setSelectedIndex(classTabIndex);
6160
}
6261
}
6362
});
6463
add(this.jTabbedPane = jTabbedPane);
6564
}
6665

67-
public void update(){
68-
traceBytecodeTabPanel.update();
69-
decompileTabPanel.update();
70-
asmTablePanel.update();
66+
public void update(boolean forced){
67+
if (forced || classTabIndex != 0) traceBytecodeTabPanel.update();
68+
if (forced || classTabIndex != 1) decompileTabPanel.update();
69+
if (forced || cclassTabIndex != 2) asmTablePanel.update();
7170
}
7271

7372
static {
7473
JavaOctetEditor.getInstance().event.register(EditSaveSuccessEvent.class, event -> {
7574
if (internalName2panel.containsKey(event.classInternalName())){
7675
ClassTabPanel panel = internalName2panel.get(event.classInternalName());
7776
if (panel != null){
78-
panel.update();
77+
panel.update(false);
7978
}
8079
}
8180
});

0 commit comments

Comments
 (0)