From 85b3ea9beb5934012280dc0efa475f334dd9a93a Mon Sep 17 00:00:00 2001 From: jeff Date: Tue, 29 Jul 2014 23:12:30 -0400 Subject: added gui/cli loading of jars/mappings gui can save mappings too --- src/cuchaz/enigma/Controller.java | 114 -------------------------------------- 1 file changed, 114 deletions(-) delete mode 100644 src/cuchaz/enigma/Controller.java (limited to 'src/cuchaz/enigma/Controller.java') diff --git a/src/cuchaz/enigma/Controller.java b/src/cuchaz/enigma/Controller.java deleted file mode 100644 index 3af139e..0000000 --- a/src/cuchaz/enigma/Controller.java +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 Jeff Martin. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - * - * Contributors: - * Jeff Martin - initial API and implementation - ******************************************************************************/ -package cuchaz.enigma; - -import javax.swing.event.CaretEvent; -import javax.swing.event.CaretListener; - -import cuchaz.enigma.analysis.Analyzer; -import cuchaz.enigma.analysis.SourceIndex; -import cuchaz.enigma.gui.ClassSelectionListener; -import cuchaz.enigma.gui.Gui; -import cuchaz.enigma.gui.RenameListener; -import cuchaz.enigma.mapping.ClassEntry; -import cuchaz.enigma.mapping.Entry; -import cuchaz.enigma.mapping.EntryPair; - -public class Controller implements ClassSelectionListener, CaretListener, RenameListener -{ - private Deobfuscator m_deobfuscator; - private Gui m_gui; - private SourceIndex m_index; - private ClassFile m_currentFile; - - public Controller( Deobfuscator deobfuscator, Gui gui ) - { - m_deobfuscator = deobfuscator; - m_gui = gui; - m_index = null; - m_currentFile = null; - - // update GUI - gui.setTitle( deobfuscator.getJarName() ); - gui.setObfClasses( deobfuscator.getObfuscatedClasses() ); - - // handle events - gui.setClassSelectionListener( this ); - gui.setCaretListener( this ); - gui.setRenameListener( this ); - } - - @Override - public void classSelected( ClassFile classFile ) - { - m_currentFile = classFile; - deobfuscate( m_currentFile ); - } - - @Override - public void caretUpdate( CaretEvent event ) - { - if( m_index != null ) - { - int pos = event.getDot(); - Entry deobfEntry = m_index.getEntry( pos ); - if( deobfEntry != null ) - { - m_gui.showEntryPair( new EntryPair( m_deobfuscator.obfuscate( deobfEntry ), deobfEntry ) ); - } - else - { - m_gui.clearEntryPair(); - } - } - } - - @Override - public void rename( Entry obfsEntry, String newName ) - { - m_deobfuscator.rename( obfsEntry, newName ); - - // did we rename the current file? - if( obfsEntry instanceof ClassEntry ) - { - ClassEntry classEntry = (ClassEntry)obfsEntry; - - // update the current file - if( classEntry.getName().equals( m_currentFile.getName() ) ) - { - m_currentFile = new ClassFile( newName ); - } - } - - deobfuscate( m_currentFile ); - } - - private void deobfuscate( final ClassFile classFile ) - { - m_gui.setSource( "(deobfuscating...)" ); - - // run the deobfuscator in a separate thread so we don't block the GUI event queue - new Thread( ) - { - @Override - public void run( ) - { - // deobfuscate the bytecode - String source = m_deobfuscator.getSource( classFile ); - m_gui.setSource( source ); - - // index the source file - m_index = Analyzer.analyze( classFile.getName(), source ); - m_gui.highlightTokens( m_index.tokens() ); - } - }.start(); - } -} -- cgit v1.2.3