@@ -36,9 +36,8 @@ public class MainViewerGUI extends JFrame implements FileChangeNotifier, IPersis
3636 public static final long serialVersionUID = 1851409230530948543L ;
3737 private static final Color COLOR_DESKTOP_BACKGROUND = new Color (58 , 110 , 165 );
3838
39- public final ButtonGroup panelGroup1 = new ButtonGroup ();
40- public final ButtonGroup panelGroup2 = new ButtonGroup ();
41- public final ButtonGroup panelGroup3 = new ButtonGroup ();
39+ public static final int NUM_PANEL_GROUPS = 3 ;
40+ public final ButtonGroup [] panelGroups = new ButtonGroup [NUM_PANEL_GROUPS ];
4241
4342 public JMenuBar menuBar ;
4443 public JMenu viewMenu ;
@@ -58,7 +57,7 @@ public class MainViewerGUI extends JFrame implements FileChangeNotifier, IPersis
5857
5958 public AboutWindow aboutWindow = new AboutWindow ();
6059 public IntroWindow introWindow = new IntroWindow ();
61- public List <ButtonGroup > allPanes = Collections .unmodifiableList (Arrays .asList (panelGroup1 , panelGroup2 , panelGroup3 ));
60+ public List <ButtonGroup > allPanes = Collections .unmodifiableList (Arrays .asList (panelGroups ));
6261 public Map <ButtonGroup , Map <JRadioButtonMenuItem , JDADecompiler >> allDecompilers = new HashMap <>();
6362 public Map <ButtonGroup , Map <JDADecompiler , JRadioButtonMenuItem >> allDecompilersRev = new HashMap <>();
6463 public Map <ButtonGroup , Map <JDADecompiler , JCheckBoxMenuItem >> editButtons = new HashMap <>();
@@ -71,16 +70,13 @@ public class MainViewerGUI extends JFrame implements FileChangeNotifier, IPersis
7170 public MainViewerGUI () {
7271 initializeWindows ();
7372
74- JDADecompiler .ensureInitted ();
75- allDecompilers .put (panelGroup1 , new HashMap <>());
76- allDecompilers .put (panelGroup2 , new HashMap <>());
77- allDecompilers .put (panelGroup3 , new HashMap <>());
78- allDecompilersRev .put (panelGroup1 , new HashMap <>());
79- allDecompilersRev .put (panelGroup2 , new HashMap <>());
80- allDecompilersRev .put (panelGroup3 , new HashMap <>());
81- editButtons .put (panelGroup1 , new HashMap <>());
82- editButtons .put (panelGroup2 , new HashMap <>());
83- editButtons .put (panelGroup3 , new HashMap <>());
73+ for (int i = 0 ; i < panelGroups .length ; i ++) {
74+ ButtonGroup panelGroup = new ButtonGroup ();
75+ allDecompilers .put (panelGroup , new HashMap <>());
76+ allDecompilersRev .put (panelGroup , new HashMap <>());
77+ editButtons .put (panelGroup , new HashMap <>());
78+ panelGroups [i ] = panelGroup ;
79+ }
8480 KeyboardFocusManager .getCurrentKeyboardFocusManager ().addKeyEventDispatcher (new JDAKeybindManager ());
8581 this .addWindowStateListener (new WindowAdapter () {
8682 @ Override
@@ -282,9 +278,8 @@ private void initializeMenubar() {
282278 // View menu
283279 // ===========================================================================================
284280 menuBar .add (viewMenu );
285- viewMenu .add (generatePane (0 ));
286- viewMenu .add (generatePane (1 ));
287- viewMenu .add (generatePane (2 ));
281+ for (int i = 0 ; i < NUM_PANEL_GROUPS ; i ++)
282+ viewMenu .add (generatePane (i ));
288283
289284 // ===========================================================================================
290285 // Windows menu
@@ -329,9 +324,10 @@ private void initializeMenubar() {
329324 }
330325
331326 private void initializePanelGroup () {
332- panelGroup1 .setSelected (allDecompilersRev .get (panelGroup1 ).get (Decompilers .FERNFLOWER ).getModel (), true );
333- panelGroup2 .setSelected (allDecompilersRev .get (panelGroup2 ).get (Decompilers .BYTECODE ).getModel (), true );
334- panelGroup3 .setSelected (allDecompilersRev .get (panelGroup3 ).get (null ).getModel (), true );
327+ for (int i = 0 ; i < panelGroups .length ; i ++) {
328+ String decompilerName = Settings .PANE_DECOMPILERS [i ].getString ();
329+ panelGroups [i ].setSelected (allDecompilersRev .get (panelGroups [i ]).get (Decompilers .getByName (decompilerName )).getModel (), true );
330+ }
335331 }
336332
337333 public static <T > T getComponent (final Class <T > clazz ) {
@@ -404,6 +400,7 @@ private JMenu generatePane(int id) {
404400
405401 for (JDADecompiler decompiler : Decompilers .getAllDecompilers ()) {
406402 JRadioButtonMenuItem button = new JRadioButtonMenuItem (decompiler .getName ());
403+ button .addActionListener ((e ) -> Settings .PANE_DECOMPILERS [id ].set (decompiler .getName ()));
407404 allDecompilers .get (group ).put (button , decompiler );
408405 allDecompilersRev .get (group ).put (decompiler , button );
409406 group .add (button );
0 commit comments