summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/gui/Gui.java
diff options
context:
space:
mode:
authorGravatar Thog2016-10-30 23:37:29 +0100
committerGravatar Thog2016-10-30 23:37:29 +0100
commit6235bfc5ab85cdd471e315c52c413991fb9dbddf (patch)
treef8d726850a60786176f999952c2e9f7c83e5ccbd /src/main/java/cuchaz/enigma/gui/Gui.java
parentFix order of packages, hanging of Enigma and classes nodes not renamed when p... (diff)
downloadenigma-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.java24
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);