From 4863d9e001e3073a51e63351828c09df39cef393 Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 6 Aug 2014 22:28:17 -0400 Subject: added open entry function to popup menu --- src/cuchaz/enigma/gui/Gui.java | 52 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/src/cuchaz/enigma/gui/Gui.java b/src/cuchaz/enigma/gui/Gui.java index e2ccb7d2..57c6ef7b 100644 --- a/src/cuchaz/enigma/gui/Gui.java +++ b/src/cuchaz/enigma/gui/Gui.java @@ -116,6 +116,7 @@ public class Gui private JMenuItem m_closeMappingsMenu; private JMenuItem m_renameMenu; private JMenuItem m_inheritanceMenu; + private JMenuItem m_openEntryMenu; // state private EntryPair m_selectedEntryPair; @@ -258,6 +259,19 @@ public class Gui popupMenu.add( menu ); m_inheritanceMenu = menu; } + { + JMenuItem menu = new JMenuItem( "Open Class" ); + menu.addActionListener( new ActionListener( ) + { + @Override + public void actionPerformed( ActionEvent event ) + { + openEntry(); + } + } ); + popupMenu.add( menu ); + m_openEntryMenu = menu; + } // init inheritance panel m_inheritanceTree = new JTree(); @@ -693,22 +707,23 @@ public class Gui private void onCaretMove( int pos ) { m_selectedEntryPair = m_controller.getEntryPair( pos ); - if( m_selectedEntryPair != null ) + + boolean isEntry = m_selectedEntryPair != null; + boolean isClassEntry = isEntry && m_selectedEntryPair.obf instanceof ClassEntry; + boolean isMethodEntry = isEntry && m_selectedEntryPair.obf instanceof MethodEntry; + + if( isEntry ) { showEntryPair( m_selectedEntryPair ); - - boolean isClassEntry = m_selectedEntryPair.obf instanceof ClassEntry; - boolean isMethodEntry = m_selectedEntryPair.obf instanceof MethodEntry; - - m_renameMenu.setEnabled( true ); - m_inheritanceMenu.setEnabled( isClassEntry || isMethodEntry ); } else { clearEntryPair(); - m_renameMenu.setEnabled( false ); - m_inheritanceMenu.setEnabled( false ); } + + m_renameMenu.setEnabled( isEntry ); + m_inheritanceMenu.setEnabled( isClassEntry || isMethodEntry ); + m_openEntryMenu.setEnabled( isClassEntry ); } private void startRename( ) @@ -775,6 +790,11 @@ public class Gui private void showInheritance( ) { + if( m_selectedEntryPair == null ) + { + return; + } + // get the current class if( m_selectedEntryPair.obf instanceof ClassEntry ) { @@ -800,6 +820,20 @@ public class Gui redraw(); } + private void openEntry( ) + { + if( m_selectedEntryPair == null ) + { + return; + } + + // get the current class + if( m_selectedEntryPair.obf instanceof ClassEntry ) + { + m_controller.deobfuscateClass( new ClassFile( m_selectedEntryPair.obf.getName() ) ); + } + } + private void close( ) { if( !m_controller.isDirty() ) -- cgit v1.2.3