summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java
blob: 3e0374e7b2b00a68267cf3ad4e71ffc3ec8f4492 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package cuchaz.enigma.gui.panels;

import java.awt.BorderLayout;
import java.util.Comparator;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

import cuchaz.enigma.gui.ClassSelector;
import cuchaz.enigma.gui.Gui;
import cuchaz.enigma.mapping.ClassEntry;

public class PanelObf extends JPanel {

    private final Gui gui;
    public final ClassSelector obfClasses;

    public PanelObf(Gui gui) {
        this.gui = gui;

        Comparator<ClassEntry>  obfClassComparator = (a, b) -> {
            String aname = a.getName();
            String bname = b.getName();
            if (aname.length() != bname.length()) {
                return aname.length() - bname.length();
            }
            return aname.compareTo(bname);
        };

        this.obfClasses = new ClassSelector(obfClassComparator);
        this.obfClasses.setListener(gui::navigateTo);

        this.setLayout(new BorderLayout());
        this.add(new JLabel("Obfuscated Classes"), BorderLayout.NORTH);
        this.add(new JScrollPane(this.obfClasses), BorderLayout.CENTER);
    }
}