diff options
| author | 2016-10-30 23:37:29 +0100 | |
|---|---|---|
| committer | 2016-10-30 23:37:29 +0100 | |
| commit | 6235bfc5ab85cdd471e315c52c413991fb9dbddf (patch) | |
| tree | f8d726850a60786176f999952c2e9f7c83e5ccbd /src/main/java/cuchaz/enigma/gui/Gui.java | |
| parent | Fix order of packages, hanging of Enigma and classes nodes not renamed when p... (diff) | |
| download | enigma-fork-6235bfc5ab85cdd471e315c52c413991fb9dbddf.tar.gz enigma-fork-6235bfc5ab85cdd471e315c52c413991fb9dbddf.tar.xz enigma-fork-6235bfc5ab85cdd471e315c52c413991fb9dbddf.zip | |
BREAKING CHANGE: Implement modifier transformer
Known Bugs:
- Inner class modifier isn't saved to mapping
- Inner class modifier isn't applied to bytecode
Diffstat (limited to 'src/main/java/cuchaz/enigma/gui/Gui.java')
| -rw-r--r-- | src/main/java/cuchaz/enigma/gui/Gui.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java index 6d9ea1d..ed18777 100644 --- a/src/main/java/cuchaz/enigma/gui/Gui.java +++ b/src/main/java/cuchaz/enigma/gui/Gui.java | |||
| @@ -461,24 +461,29 @@ public class Gui { | |||
| 461 | 461 | ||
| 462 | private void showClassEntry(ClassEntry entry) { | 462 | private void showClassEntry(ClassEntry entry) { |
| 463 | addNameValue(m_infoPanel, "Class", entry.getName()); | 463 | addNameValue(m_infoPanel, "Class", entry.getName()); |
| 464 | addModifierComboBox(m_infoPanel, "Modifier", entry); | ||
| 464 | } | 465 | } |
| 465 | 466 | ||
| 466 | private void showFieldEntry(FieldEntry entry) { | 467 | private void showFieldEntry(FieldEntry entry) { |
| 467 | addNameValue(m_infoPanel, "Field", entry.getName()); | 468 | addNameValue(m_infoPanel, "Field", entry.getName()); |
| 468 | addNameValue(m_infoPanel, "Class", entry.getClassEntry().getName()); | 469 | addNameValue(m_infoPanel, "Class", entry.getClassEntry().getName()); |
| 469 | addNameValue(m_infoPanel, "Type", entry.getType().toString()); | 470 | addNameValue(m_infoPanel, "Type", entry.getType().toString()); |
| 471 | addModifierComboBox(m_infoPanel, "Modifier", entry); | ||
| 470 | } | 472 | } |
| 471 | 473 | ||
| 472 | private void showMethodEntry(MethodEntry entry) { | 474 | private void showMethodEntry(MethodEntry entry) { |
| 473 | addNameValue(m_infoPanel, "Method", entry.getName()); | 475 | addNameValue(m_infoPanel, "Method", entry.getName()); |
| 474 | addNameValue(m_infoPanel, "Class", entry.getClassEntry().getName()); | 476 | addNameValue(m_infoPanel, "Class", entry.getClassEntry().getName()); |
| 475 | addNameValue(m_infoPanel, "Signature", entry.getSignature().toString()); | 477 | addNameValue(m_infoPanel, "Signature", entry.getSignature().toString()); |
| 478 | addModifierComboBox(m_infoPanel, "Modifier", entry); | ||
| 479 | |||
| 476 | } | 480 | } |
| 477 | 481 | ||
| 478 | private void showConstructorEntry(ConstructorEntry entry) { | 482 | private void showConstructorEntry(ConstructorEntry entry) { |
| 479 | addNameValue(m_infoPanel, "Constructor", entry.getClassEntry().getName()); | 483 | addNameValue(m_infoPanel, "Constructor", entry.getClassEntry().getName()); |
| 480 | if (!entry.isStatic()) { | 484 | if (!entry.isStatic()) { |
| 481 | addNameValue(m_infoPanel, "Signature", entry.getSignature().toString()); | 485 | addNameValue(m_infoPanel, "Signature", entry.getSignature().toString()); |
| 486 | addModifierComboBox(m_infoPanel, "Modifier", entry); | ||
| 482 | } | 487 | } |
| 483 | } | 488 | } |
| 484 | 489 | ||
| @@ -501,6 +506,25 @@ public class Gui { | |||
| 501 | panel.add(Utils.unboldLabel(new JLabel(value, JLabel.LEFT))); | 506 | panel.add(Utils.unboldLabel(new JLabel(value, JLabel.LEFT))); |
| 502 | } | 507 | } |
| 503 | 508 | ||
| 509 | private JComboBox<Mappings.EntryModifier> addModifierComboBox(JPanel container, String name, Entry entry) | ||
| 510 | { | ||
| 511 | if (!getController().entryIsInJar(entry)) | ||
| 512 | return null; | ||
| 513 | JPanel panel = new JPanel(); | ||
| 514 | panel.setLayout(new FlowLayout(FlowLayout.LEFT, 6, 0)); | ||
| 515 | container.add(panel); | ||
| 516 | JLabel label = new JLabel(name + ":", JLabel.RIGHT); | ||
| 517 | label.setPreferredSize(new Dimension(100, label.getPreferredSize().height)); | ||
| 518 | panel.add(label); | ||
| 519 | JComboBox<Mappings.EntryModifier> combo = new JComboBox<>(Mappings.EntryModifier.values()); | ||
| 520 | ((JLabel)combo.getRenderer()).setHorizontalAlignment(JLabel.LEFT); | ||
| 521 | combo.setPreferredSize(new Dimension(100, label.getPreferredSize().height)); | ||
| 522 | combo.setSelectedIndex(getController().getDeobfuscator().getModifier(entry).ordinal()); | ||
| 523 | combo.addItemListener(getController()::modifierChange); | ||
| 524 | panel.add(combo); | ||
| 525 | return combo; | ||
| 526 | } | ||
| 527 | |||
| 504 | public void onCaretMove(int pos) { | 528 | public void onCaretMove(int pos) { |
| 505 | 529 | ||
| 506 | Token token = this.controller.getToken(pos); | 530 | Token token = this.controller.getToken(pos); |