Optimize the preferences panel
emmanue1
5 years ago
+58
-0
0 | /* | |
1 | * Copyright (c) 2008-2019 Emmanuel Dupuy. | |
2 | * This project is distributed under the GPLv3 license. | |
3 | * This is a Copyleft license that gives the user the right to use, | |
4 | * copy and modify the code freely for non-commercial purposes. | |
5 | */ | |
6 | ||
7 | package org.jd.gui.service.preferencespanel; | |
8 | ||
9 | import org.jd.gui.spi.PreferencesPanel; | |
10 | ||
11 | import javax.swing.*; | |
12 | import java.awt.*; | |
13 | import java.util.Map; | |
14 | ||
15 | public class ClassFileDecompilerPreferencesProvider extends JPanel implements PreferencesPanel { | |
16 | protected static final String ESCAPE_UNICODE_CHARACTERS = "ClassFileDecompilerPreferences.escapeUnicodeCharacters"; | |
17 | protected static final String REALIGN_LINE_NUMBERS = "ClassFileDecompilerPreferences.realignLineNumbers"; | |
18 | ||
19 | protected PreferencesPanel.PreferencesPanelChangeListener listener = null; | |
20 | protected JCheckBox escapeUnicodeCharactersCheckBox; | |
21 | protected JCheckBox realignLineNumbersCheckBox; | |
22 | ||
23 | public ClassFileDecompilerPreferencesProvider() { | |
24 | super(new GridLayout(0,1)); | |
25 | ||
26 | escapeUnicodeCharactersCheckBox = new JCheckBox("Escape unicode characters"); | |
27 | realignLineNumbersCheckBox = new JCheckBox("Realign line numbers"); | |
28 | ||
29 | add(escapeUnicodeCharactersCheckBox); | |
30 | add(realignLineNumbersCheckBox); | |
31 | } | |
32 | ||
33 | // --- PreferencesPanel --- // | |
34 | @Override public String getPreferencesGroupTitle() { return "Decompiler"; } | |
35 | @Override public String getPreferencesPanelTitle() { return "Class file"; } | |
36 | @Override public JComponent getPanel() { return this; } | |
37 | ||
38 | @Override public void init(Color errorBackgroundColor) {} | |
39 | ||
40 | @Override public boolean isActivated() { return true; } | |
41 | ||
42 | @Override | |
43 | public void loadPreferences(Map<String, String> preferences) { | |
44 | escapeUnicodeCharactersCheckBox.setSelected("true".equals(preferences.get(ESCAPE_UNICODE_CHARACTERS))); | |
45 | realignLineNumbersCheckBox.setSelected(!"false".equals(preferences.get(REALIGN_LINE_NUMBERS))); | |
46 | } | |
47 | ||
48 | @Override | |
49 | public void savePreferences(Map<String, String> preferences) { | |
50 | preferences.put(ESCAPE_UNICODE_CHARACTERS, Boolean.toString(escapeUnicodeCharactersCheckBox.isSelected())); | |
51 | preferences.put(REALIGN_LINE_NUMBERS, Boolean.toString(realignLineNumbersCheckBox.isSelected())); | |
52 | } | |
53 | ||
54 | @Override public boolean arePreferencesValid() { return true; } | |
55 | ||
56 | @Override public void addPreferencesChangeListener(PreferencesPanel.PreferencesPanelChangeListener listener) {} | |
57 | } |
+0
-12
13 | 13 | import java.util.Map; |
14 | 14 | |
15 | 15 | public class ClassFileSaverPreferencesProvider extends JPanel implements PreferencesPanel { |
16 | protected static final String ESCAPE_UNICODE_CHARACTERS = "ClassFileSaverPreferences.escapeUnicodeCharacters"; | |
17 | protected static final String REALIGN_LINE_NUMBERS = "ClassFileSaverPreferences.realignLineNumbers"; | |
18 | 16 | protected static final String WRITE_LINE_NUMBERS = "ClassFileSaverPreferences.writeLineNumbers"; |
19 | 17 | protected static final String WRITE_METADATA = "ClassFileSaverPreferences.writeMetadata"; |
20 | 18 | |
21 | protected JCheckBox escapeUnicodeCharactersCheckBox; | |
22 | protected JCheckBox realignLineNumbersCheckBox; | |
23 | 19 | protected JCheckBox writeLineNumbersCheckBox; |
24 | 20 | protected JCheckBox writeMetadataCheckBox; |
25 | 21 | |
26 | 22 | public ClassFileSaverPreferencesProvider() { |
27 | 23 | super(new GridLayout(0,1)); |
28 | 24 | |
29 | escapeUnicodeCharactersCheckBox = new JCheckBox("Escape unicode characters"); | |
30 | realignLineNumbersCheckBox = new JCheckBox("Realign line numbers"); | |
31 | 25 | writeLineNumbersCheckBox = new JCheckBox("Write original line numbers"); |
32 | 26 | writeMetadataCheckBox = new JCheckBox("Write metadata"); |
33 | 27 | |
34 | add(escapeUnicodeCharactersCheckBox); | |
35 | add(realignLineNumbersCheckBox); | |
36 | 28 | add(writeLineNumbersCheckBox); |
37 | 29 | add(writeMetadataCheckBox); |
38 | 30 | } |
48 | 40 | |
49 | 41 | @Override |
50 | 42 | public void loadPreferences(Map<String, String> preferences) { |
51 | escapeUnicodeCharactersCheckBox.setSelected("true".equals(preferences.get(ESCAPE_UNICODE_CHARACTERS))); | |
52 | realignLineNumbersCheckBox.setSelected(!"false".equals(preferences.get(REALIGN_LINE_NUMBERS))); | |
53 | 43 | writeLineNumbersCheckBox.setSelected(!"false".equals(preferences.get(WRITE_LINE_NUMBERS))); |
54 | 44 | writeMetadataCheckBox.setSelected(!"false".equals(preferences.get(WRITE_METADATA))); |
55 | 45 | } |
56 | 46 | |
57 | 47 | @Override |
58 | 48 | public void savePreferences(Map<String, String> preferences) { |
59 | preferences.put(ESCAPE_UNICODE_CHARACTERS, Boolean.toString(escapeUnicodeCharactersCheckBox.isSelected())); | |
60 | preferences.put(REALIGN_LINE_NUMBERS, Boolean.toString(realignLineNumbersCheckBox.isSelected())); | |
61 | 49 | preferences.put(WRITE_LINE_NUMBERS, Boolean.toString(writeLineNumbersCheckBox.isSelected())); |
62 | 50 | preferences.put(WRITE_METADATA, Boolean.toString(writeMetadataCheckBox.isSelected())); |
63 | 51 | } |
+0
-58
0 | /* | |
1 | * Copyright (c) 2008-2019 Emmanuel Dupuy. | |
2 | * This project is distributed under the GPLv3 license. | |
3 | * This is a Copyleft license that gives the user the right to use, | |
4 | * copy and modify the code freely for non-commercial purposes. | |
5 | */ | |
6 | ||
7 | package org.jd.gui.service.preferencespanel; | |
8 | ||
9 | import org.jd.gui.spi.PreferencesPanel; | |
10 | ||
11 | import javax.swing.*; | |
12 | import java.awt.*; | |
13 | import java.util.Map; | |
14 | ||
15 | public class ClassFileViewerPreferencesProvider extends JPanel implements PreferencesPanel { | |
16 | protected static final String ESCAPE_UNICODE_CHARACTERS = "ClassFileViewerPreferences.escapeUnicodeCharacters"; | |
17 | protected static final String REALIGN_LINE_NUMBERS = "ClassFileViewerPreferences.realignLineNumbers"; | |
18 | ||
19 | protected PreferencesPanel.PreferencesPanelChangeListener listener = null; | |
20 | protected JCheckBox escapeUnicodeCharactersCheckBox; | |
21 | protected JCheckBox realignLineNumbersCheckBox; | |
22 | ||
23 | public ClassFileViewerPreferencesProvider() { | |
24 | super(new GridLayout(0,1)); | |
25 | ||
26 | escapeUnicodeCharactersCheckBox = new JCheckBox("Escape unicode characters"); | |
27 | realignLineNumbersCheckBox = new JCheckBox("Realign line numbers"); | |
28 | ||
29 | add(escapeUnicodeCharactersCheckBox); | |
30 | add(realignLineNumbersCheckBox); | |
31 | } | |
32 | ||
33 | // --- PreferencesPanel --- // | |
34 | @Override public String getPreferencesGroupTitle() { return "Viewer"; } | |
35 | @Override public String getPreferencesPanelTitle() { return "Class file"; } | |
36 | @Override public JComponent getPanel() { return this; } | |
37 | ||
38 | @Override public void init(Color errorBackgroundColor) {} | |
39 | ||
40 | @Override public boolean isActivated() { return true; } | |
41 | ||
42 | @Override | |
43 | public void loadPreferences(Map<String, String> preferences) { | |
44 | escapeUnicodeCharactersCheckBox.setSelected("true".equals(preferences.get(ESCAPE_UNICODE_CHARACTERS))); | |
45 | realignLineNumbersCheckBox.setSelected(!"false".equals(preferences.get(REALIGN_LINE_NUMBERS))); | |
46 | } | |
47 | ||
48 | @Override | |
49 | public void savePreferences(Map<String, String> preferences) { | |
50 | preferences.put(ESCAPE_UNICODE_CHARACTERS, Boolean.toString(escapeUnicodeCharactersCheckBox.isSelected())); | |
51 | preferences.put(REALIGN_LINE_NUMBERS, Boolean.toString(realignLineNumbersCheckBox.isSelected())); | |
52 | } | |
53 | ||
54 | @Override public boolean arePreferencesValid() { return true; } | |
55 | ||
56 | @Override public void addPreferencesChangeListener(PreferencesPanel.PreferencesPanelChangeListener listener) {} | |
57 | } |
+2
-2
25 | 25 | import java.util.jar.Manifest; |
26 | 26 | |
27 | 27 | public class ClassFileSourceSaverProvider extends AbstractSourceSaverProvider { |
28 | protected static final String ESCAPE_UNICODE_CHARACTERS = "ClassFileSaverPreferences.escapeUnicodeCharacters"; | |
29 | protected static final String REALIGN_LINE_NUMBERS = "ClassFileSaverPreferences.realignLineNumbers"; | |
28 | protected static final String ESCAPE_UNICODE_CHARACTERS = "ClassFileDecompilerPreferences.escapeUnicodeCharacters"; | |
29 | protected static final String REALIGN_LINE_NUMBERS = "ClassFileDecompilerPreferences.realignLineNumbers"; | |
30 | 30 | protected static final String WRITE_LINE_NUMBERS = "ClassFileSaverPreferences.writeLineNumbers"; |
31 | 31 | protected static final String WRITE_METADATA = "ClassFileSaverPreferences.writeMetadata"; |
32 | 32 |
25 | 25 | import java.util.Map; |
26 | 26 | |
27 | 27 | public class ClassFilePage extends TypePage { |
28 | protected static final String ESCAPE_UNICODE_CHARACTERS = "ClassFileViewerPreferences.escapeUnicodeCharacters"; | |
29 | protected static final String REALIGN_LINE_NUMBERS = "ClassFileViewerPreferences.realignLineNumbers"; | |
28 | protected static final String ESCAPE_UNICODE_CHARACTERS = "ClassFileDecompilerPreferences.escapeUnicodeCharacters"; | |
29 | protected static final String REALIGN_LINE_NUMBERS = "ClassFileDecompilerPreferences.realignLineNumbers"; | |
30 | 30 | |
31 | 31 | protected static final ClassFileToJavaSourceDecompiler DECOMPILER = new ClassFileToJavaSourceDecompiler(); |
32 | 32 |
0 | 0 | org.jd.gui.service.preferencespanel.DirectoryIndexerPreferencesProvider |
1 | 1 | org.jd.gui.service.preferencespanel.ClassFileSaverPreferencesProvider |
2 | org.jd.gui.service.preferencespanel.ClassFileViewerPreferencesProvider | |
2 | org.jd.gui.service.preferencespanel.ClassFileDecompilerPreferencesProvider | |
3 | 3 | org.jd.gui.service.preferencespanel.ViewerPreferencesProvider |