From cfca80c409a9b540123c522d4bdaaec0d280f4a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Mon, 14 Nov 2022 08:31:47 +0100 Subject: [PATCH] Added Search in the advanced settings --- CHANGELOG.md | 1 + .../flash/gui/AdvancedSettingsDialog.java | 351 ++++++++++-------- .../flash/gui/ConfigurationFileSelection.java | 105 ++++++ .../locales/AdvancedSettingsDialog.properties | 1 + .../AdvancedSettingsDialog_cs.properties | 2 + .../flash/gui/AdvancedSettingsTest.java | 4 +- 6 files changed, 311 insertions(+), 153 deletions(-) create mode 100644 src/com/jpexs/decompiler/flash/gui/ConfigurationFileSelection.java diff --git a/CHANGELOG.md b/CHANGELOG.md index ffe667cd2..cb17ac957 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ All notable changes to this project will be documented in this file. - Show in Hex dump for BUTTONCONDACTION, BUTTONRECORD, CLIPACTIONRECORD - Alpha and Erase blend modes support - Raw editor - Edit blend modes as enum +- Search in the advanced settings ### Fixed - Exception when bundle selected diff --git a/src/com/jpexs/decompiler/flash/gui/AdvancedSettingsDialog.java b/src/com/jpexs/decompiler/flash/gui/AdvancedSettingsDialog.java index 193ba48b4..6df4de127 100644 --- a/src/com/jpexs/decompiler/flash/gui/AdvancedSettingsDialog.java +++ b/src/com/jpexs/decompiler/flash/gui/AdvancedSettingsDialog.java @@ -35,6 +35,8 @@ import java.awt.Insets; import java.awt.RenderingHints; import java.awt.Window; import java.awt.event.ActionEvent; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; import java.io.File; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; @@ -48,12 +50,14 @@ import java.util.Collections; import java.util.Comparator; import java.util.EnumSet; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.ResourceBundle; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.regex.Pattern; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JCheckBox; @@ -66,6 +70,7 @@ import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.JTextField; import javax.swing.SpringLayout; +import javax.swing.UIManager; import javax.swing.WindowConstants; import javax.swing.filechooser.FileFilter; import javax.swing.table.DefaultTableModel; @@ -83,7 +88,15 @@ import org.pushingpixels.substance.api.skin.SkinInfo; */ public class AdvancedSettingsDialog extends AppDialog { + private final Map labelsMap = new HashMap<>(); private final Map componentsMap = new HashMap<>(); + private final Map titleToNameMap = new HashMap<>(); + private final Map categoryCounts = new HashMap<>(); + private final JTextField searchTextField = new JTextField(30); + + private final Map allComponentsMap = new HashMap<>(); + + private Map tabs = new HashMap<>(); private JButton cancelButton; @@ -91,6 +104,11 @@ public class AdvancedSettingsDialog extends AppDialog { private JButton resetButton; + private JTabbedPane tabPane = new JTabbedPane(); + + private String hilightBackgroundColorHex; + private String hilightForegroundColorHex; + public AdvancedSettingsDialog(Window owner, String selectedCategory) { super(owner); initComponents(selectedCategory); @@ -99,6 +117,13 @@ public class AdvancedSettingsDialog extends AppDialog { //configurationTable.setCellEditor(configurationTable.getDefaultEditor(null)); pack(); + + Color c; + c = UIManager.getColor("List.selectionBackground"); + hilightBackgroundColorHex = String.format("#%02x%02x%02x", c.getRed(), c.getGreen(), c.getBlue()); + + c = UIManager.getColor("List.selectionForeground"); + hilightForegroundColorHex = String.format("#%02x%02x%02x", c.getRed(), c.getGreen(), c.getBlue()); } private DefaultTableModel getModel() { @@ -151,45 +176,8 @@ public class AdvancedSettingsDialog extends AppDialog { } } - private void initComponents(String selectedCategory) { - okButton = new JButton(); - cancelButton = new JButton(); - resetButton = new JButton(); - - setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); - setTitle(translate("advancedSettings.dialog.title")); - setModal(true); - setPreferredSize(new Dimension(800, 500)); - - okButton.setText(AppStrings.translate("button.ok")); - okButton.addActionListener(this::okButtonActionPerformed); - - cancelButton.setText(AppStrings.translate("button.cancel")); - cancelButton.addActionListener(this::cancelButtonActionPerformed); - - resetButton.setText(AppStrings.translate("button.reset")); - resetButton.addActionListener(this::resetButtonActionPerformed); - - Container cnt = getContentPane(); - cnt.setLayout(new BorderLayout()); - //cnt.add(new FasterScrollPane(configurationTable),BorderLayout.CENTER); - - JPanel buttonsPanel = new JPanel(new BorderLayout()); - - JPanel buttonsLeftPanel = new JPanel(new FlowLayout()); - buttonsLeftPanel.add(resetButton, BorderLayout.WEST); - - buttonsPanel.add(buttonsLeftPanel, BorderLayout.WEST); - - JPanel buttonsRightPanel = new JPanel(new FlowLayout()); - buttonsRightPanel.add(okButton); - buttonsRightPanel.add(cancelButton); - buttonsPanel.add(buttonsRightPanel, BorderLayout.EAST); - - cnt.add(buttonsPanel, BorderLayout.SOUTH); - - JTabbedPane tabPane = new JTabbedPane(); - + private void initTabPane(String filter, String selectedCategory) { + tabPane.removeAll(); JComboBox skinComboBox = new JComboBox<>(); skinComboBox.setRenderer(new SubstanceDefaultListCellRenderer() { @Override @@ -245,8 +233,9 @@ public class AdvancedSettingsDialog extends AppDialog { } } - Map tabs = new HashMap<>(); - getCategories(componentsMap, tabs, skinComboBox, getResourceBundle()); + tabs = new LinkedHashMap<>(); + + getCategories(hilightBackgroundColorHex, hilightForegroundColorHex, allComponentsMap, categoryCounts, filter, titleToNameMap, labelsMap, componentsMap, tabs, skinComboBox, getResourceBundle()); String[] catOrder = new String[]{"ui", "display", "decompilation", "script", "format", "export", "import", "paths", "limit", "update", "debug", "other"}; @@ -255,50 +244,92 @@ public class AdvancedSettingsDialog extends AppDialog { continue; } - tabPane.add(translate("config.group.name." + cat), tabs.get(cat)); - tabPane.setToolTipTextAt(tabPane.getTabCount() - 1, translate("config.group.description." + cat)); + int count = categoryCounts.get(cat); + String countAdd = ""; + if (!filter.trim().equals("")) { + countAdd = " (" + count + ")"; + } + + if (count > 0) { + tabPane.add(translate("config.group.name." + cat) + countAdd, tabs.get(cat)); + tabPane.setToolTipTextAt(tabPane.getTabCount() - 1, translate("config.group.description." + cat)); + } else { + if (cat.equals(selectedCategory)) { + selectedCategory = null; + } + } } if (selectedCategory != null && tabs.containsKey(selectedCategory)) { tabPane.setSelectedComponent(tabs.get(selectedCategory)); } + } + private void initComponents(String selectedCategory) { + okButton = new JButton(); + cancelButton = new JButton(); + resetButton = new JButton(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + setTitle(translate("advancedSettings.dialog.title")); + setModal(true); + setPreferredSize(new Dimension(800, 500)); + + okButton.setText(AppStrings.translate("button.ok")); + okButton.addActionListener(this::okButtonActionPerformed); + + cancelButton.setText(AppStrings.translate("button.cancel")); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + resetButton.setText(AppStrings.translate("button.reset")); + resetButton.addActionListener(this::resetButtonActionPerformed); + + Container cnt = getContentPane(); + cnt.setLayout(new BorderLayout()); + //cnt.add(new FasterScrollPane(configurationTable),BorderLayout.CENTER); + + JPanel buttonsPanel = new JPanel(new BorderLayout()); + + JPanel buttonsLeftPanel = new JPanel(new FlowLayout()); + buttonsLeftPanel.add(resetButton, BorderLayout.WEST); + + buttonsPanel.add(buttonsLeftPanel, BorderLayout.WEST); + + JPanel buttonsRightPanel = new JPanel(new FlowLayout()); + buttonsRightPanel.add(okButton); + buttonsRightPanel.add(cancelButton); + buttonsPanel.add(buttonsRightPanel, BorderLayout.EAST); + + searchTextField.addKeyListener(new KeyAdapter() { + @Override + public void keyReleased(KeyEvent e) { + String val = searchTextField.getText(); + Component selComponent = tabPane.getSelectedComponent(); + String selCategory = null; + for (String cat : tabs.keySet()) { + if (tabs.get(cat) == selComponent) { + selCategory = cat; + break; + } + } + + initTabPane(val, selCategory); + } + }); + + JPanel searchPanel = new JPanel(new FlowLayout()); + searchPanel.add(new JLabel(translate("advancedSettings.search"))); + searchPanel.add(searchTextField); + + buttonsPanel.add(searchPanel, BorderLayout.CENTER); + + cnt.add(buttonsPanel, BorderLayout.SOUTH); + initTabPane("", selectedCategory); cnt.add(tabPane, BorderLayout.CENTER); pack(); + searchTextField.requestFocusInWindow(); } - public static String selectConfigFile(ConfigurationItem config, String current, String pattern) { - JFileChooser fc = new JFileChooser(); - fc.setSelectedFile(new File(current)); - fc.setMultiSelectionEnabled(false); - fc.setCurrentDirectory(new File((String) config.get())); - FileFilter allSupportedFilter = new FileFilter() { - private final String[] supportedExtensions = new String[]{".swf", ".gfx", ".swc", ".zip", ".iggy"}; - - @Override - public boolean accept(File f) { - if (f.isDirectory()) { - return true; - } - return f.getName().matches(pattern); - } - - @Override - public String getDescription() { - return ""; - } - }; - fc.setFileFilter(allSupportedFilter); - - fc.setAcceptAllFileFilterUsed(false); - int returnVal = fc.showOpenDialog(Main.getDefaultMessagesComponent()); - if (returnVal == JFileChooser.APPROVE_OPTION) { - return Helper.fixDialogFile(fc.getSelectedFile()).getAbsolutePath(); - } else { - return (String) config.get(); - } - } - - public static void getCategories(Map componentsMap, Map tabs, JComboBox skinComboBox, ResourceBundle resourceBundle) { + public static void getCategories(String hilightBackgroundColorHex, String hilightForegroundColorHex, Map allComponentsMap, Map categoryCounts, String filter, Map titleToNameMap, Map labelsMap, Map componentsMap, Map tabs, JComboBox skinComboBox, ResourceBundle resourceBundle) { Map> categorized = new HashMap<>(); Map fields = Configuration.getConfigurationFields(); @@ -351,6 +382,17 @@ public class AdvancedSettingsDialog extends AppDialog { String locName = locNames.get(name); + String description = ""; + if (resourceBundle.containsKey("config.description." + name)) { + description = resourceBundle.getString("config.description." + name); + } + + if (!"".equals(filter.trim()) + && !(locName.toLowerCase().contains(filter.toLowerCase()) + || description.toLowerCase().contains(filter.toLowerCase()))) { + continue; + } + try { field.setAccessible(true); ConfigurationItem item = (ConfigurationItem) field.get(null); @@ -363,11 +405,6 @@ public class AdvancedSettingsDialog extends AppDialog { Class itemType = (Class) itemType2; - String description = ""; - if (resourceBundle.containsKey("config.description." + name)) { - description = resourceBundle.getString("config.description." + name); - } - Object defaultValue = Configuration.getDefaultValue(field); if (name.equals("gui.skin")) { Class c; @@ -378,85 +415,91 @@ public class AdvancedSettingsDialog extends AppDialog { Logger.getLogger(AdvancedSettingsDialog.class.getName()).log(Level.SEVERE, null, ex); } } - + String locNameHtml = locName; + if (!filter.trim().equals("")) { + locNameHtml = locNameHtml.replaceAll("(?i)" + Pattern.quote(filter), "{bold}$0{/bold}"); + } + locNameHtml = "" + locNameHtml.replace("&", "&").replace("<", "<").replace(">", ">")+ ""; + locNameHtml = locNameHtml.replace("{bold}", "").replace("{/bold}", ""); + if (defaultValue != null) { description += " (" + resourceBundle.getString("default") + ": " + defaultValue + ")"; } - JLabel l = new JLabel(locName, JLabel.TRAILING); + JLabel l = new JLabel(locNameHtml, JLabel.TRAILING); + titleToNameMap.put(locName, name); l.setToolTipText(description); configPanel.add(l); + Component c = null; - Component addComponent = null; - if (name.equals("gui.skin")) { - skinComboBox.setToolTipText(description); - skinComboBox.setMaximumSize(new Dimension(Integer.MAX_VALUE, skinComboBox.getPreferredSize().height)); - c = skinComboBox; - } else if ((itemType == String.class) || (itemType == Integer.class) || (itemType == Long.class) || (itemType == Double.class) || (itemType == Float.class) || (itemType == Calendar.class)) { - ConfigurationFile confFile = field.getAnnotation(ConfigurationFile.class); - ConfigurationDirectory confDirectory = field.getAnnotation(ConfigurationDirectory.class); - - JTextField tf = new JTextField(); - Object val = item.get(); - if (val == null) { - val = ""; - } - if (itemType == Calendar.class) { - tf.setText(new SimpleDateFormat().format(((Calendar) val).getTime())); - } else { - tf.setText(val.toString()); - } - tf.setToolTipText(description); - tf.setMaximumSize(new Dimension(Integer.MAX_VALUE, tf.getPreferredSize().height)); - - c = tf; - if (confFile != null) { //|| confDirectory != null) { - JPanel p = new JPanel(new BorderLayout()); - p.setMaximumSize(new Dimension(Integer.MAX_VALUE, tf.getPreferredSize().height)); - p.add(tf, BorderLayout.CENTER); - JButton butSelect = new JButton(View.getIcon("folderopen16")); - butSelect.setToolTipText(ResourceBundle.getBundle(AppStrings.getResourcePath(MainFrame.class)).getString("FileChooser.openButtonText")); - butSelect.setMargin(new Insets(2, 2, 2, 2)); - butSelect.addActionListener((ActionEvent e) -> { - tf.setText(selectConfigFile(item, tf.getText(), confFile.value())); - }); - p.add(butSelect, BorderLayout.EAST); - addComponent = p; - } - } else if (itemType == Boolean.class) { - JCheckBox cb = new JCheckBox(); - cb.setSelected((Boolean) item.get()); - cb.setToolTipText(description); - c = cb; - } else if (itemType.isEnum()) { - JComboBox cb = new JComboBox<>(); - @SuppressWarnings("unchecked") - EnumSet enumValues = EnumSet.allOf(itemType); - String stringValue = null; - for (Object enumValue : enumValues) { - String enumValueStr = enumValue.toString(); - if (stringValue == null) { - stringValue = enumValueStr; - } - cb.addItem(enumValueStr); - } - if (item.get() != null) { - stringValue = item.get().toString(); - } - cb.setToolTipText(description); - cb.setSelectedItem(stringValue); - cb.setMaximumSize(new Dimension(Integer.MAX_VALUE, cb.getPreferredSize().height)); - c = cb; + + if (allComponentsMap.containsKey(name)) { + c = allComponentsMap.get(name); } else { - throw new UnsupportedOperationException("Configuration ttem type '" + itemType.getName() + "' is not supported"); - } - componentsMap.put(name, c); - if (addComponent == null) { - addComponent = c; + if (name.equals("gui.skin")) { + skinComboBox.setToolTipText(description); + skinComboBox.setMaximumSize(new Dimension(Integer.MAX_VALUE, skinComboBox.getPreferredSize().height)); + c = skinComboBox; + } else if ((itemType == String.class) || (itemType == Integer.class) || (itemType == Long.class) || (itemType == Double.class) || (itemType == Float.class) || (itemType == Calendar.class)) { + ConfigurationFile confFile = field.getAnnotation(ConfigurationFile.class); + ConfigurationDirectory confDirectory = field.getAnnotation(ConfigurationDirectory.class); + + JTextField tf = new JTextField(); + Object val = item.get(); + if (val == null) { + val = ""; + } + if (itemType == Calendar.class) { + tf.setText(new SimpleDateFormat().format(((Calendar) val).getTime())); + } else { + tf.setText(val.toString()); + } + tf.setToolTipText(description); + tf.setMaximumSize(new Dimension(Integer.MAX_VALUE, tf.getPreferredSize().height)); + + c = tf; + if (confFile != null) { //|| confDirectory != null) { + c = new ConfigurationFileSelection(item, confFile, val.toString(), description); + } + } else if (itemType == Boolean.class) { + JCheckBox cb = new JCheckBox(); + cb.setSelected((Boolean) item.get()); + cb.setToolTipText(description); + c = cb; + } else if (itemType.isEnum()) { + JComboBox cb = new JComboBox<>(); + @SuppressWarnings("unchecked") + EnumSet enumValues = EnumSet.allOf(itemType); + String stringValue = null; + for (Object enumValue : enumValues) { + String enumValueStr = enumValue.toString(); + if (stringValue == null) { + stringValue = enumValueStr; + } + cb.addItem(enumValueStr); + } + if (item.get() != null) { + stringValue = item.get().toString(); + } + cb.setToolTipText(description); + cb.setSelectedItem(stringValue); + cb.setMaximumSize(new Dimension(Integer.MAX_VALUE, cb.getPreferredSize().height)); + c = cb; + } else { + throw new UnsupportedOperationException("Configuration ttem type '" + itemType.getName() + "' is not supported"); + } + + labelsMap.put(name, l); + componentsMap.put(name, c); + allComponentsMap.put(name, c); } - l.setLabelFor(c); - configPanel.add(addComponent); + Component toLabelComponent = c; + if (toLabelComponent instanceof ConfigurationFileSelection) { + toLabelComponent = ((ConfigurationFileSelection) toLabelComponent).getTextField(); + } + l.setLabelFor(toLabelComponent); + configPanel.add(c); } catch (IllegalArgumentException | IllegalAccessException ex) { // Reflection exceptions. This should never happen throw new Error(ex.getMessage()); @@ -465,6 +508,8 @@ public class AdvancedSettingsDialog extends AppDialog { itemCount++; } + categoryCounts.put(cat, itemCount); + SpringUtilities.makeCompactGrid(configPanel, itemCount, 2, //rows, cols 6, 6, //initX, initY @@ -508,7 +553,7 @@ public class AdvancedSettingsDialog extends AppDialog { Map fields = Configuration.getConfigurationFields(); Map values = new HashMap<>(); for (String name : fields.keySet()) { - Component c = componentsMap.get(name); + Component c = allComponentsMap.get(name); Object value = null; ParameterizedType listType = (ParameterizedType) fields.get(name).getGenericType(); @@ -518,7 +563,9 @@ public class AdvancedSettingsDialog extends AppDialog { } Class itemType = (Class) itemType2; - if (name.equals("gui.skin")) { + if (c instanceof ConfigurationFileSelection) { + value = ((ConfigurationFileSelection) c).getValue(); + } else if (name.equals("gui.skin")) { value = ((SkinSelect) ((JComboBox) c).getSelectedItem()).className; } else if (itemType == String.class) { value = ((JTextField) c).getText(); diff --git a/src/com/jpexs/decompiler/flash/gui/ConfigurationFileSelection.java b/src/com/jpexs/decompiler/flash/gui/ConfigurationFileSelection.java new file mode 100644 index 000000000..d89d9bec4 --- /dev/null +++ b/src/com/jpexs/decompiler/flash/gui/ConfigurationFileSelection.java @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2022 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui; + +import com.jpexs.decompiler.flash.configuration.ConfigurationFile; +import com.jpexs.decompiler.flash.configuration.ConfigurationItem; +import com.jpexs.helpers.Helper; +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.ResourceBundle; +import javax.swing.JButton; +import javax.swing.JFileChooser; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.filechooser.FileFilter; + +/** + * + * @author JPEXS + */ +public class ConfigurationFileSelection extends JPanel { + + private JTextField textField; + + public ConfigurationFileSelection(ConfigurationItem item,ConfigurationFile confFile, String value, String description) { + setLayout(new BorderLayout()); + + textField = new JTextField(); + textField.setText(value); + textField.setToolTipText(description); + textField.setMaximumSize(new Dimension(Integer.MAX_VALUE, textField.getPreferredSize().height)); + + setMaximumSize(new Dimension(Integer.MAX_VALUE, textField.getPreferredSize().height)); + add(textField, BorderLayout.CENTER); + JButton butSelect = new JButton(View.getIcon("folderopen16")); + butSelect.setToolTipText(ResourceBundle.getBundle(AppStrings.getResourcePath(MainFrame.class)).getString("FileChooser.openButtonText")); + butSelect.setMargin(new Insets(2, 2, 2, 2)); + butSelect.addActionListener((ActionEvent e) -> { + textField.setText(selectConfigFile(item, textField.getText(), confFile.value())); + }); + add(butSelect, BorderLayout.EAST); + } + + private static String selectConfigFile(ConfigurationItem config, String current, String pattern) { + JFileChooser fc = new JFileChooser(); + fc.setSelectedFile(new File(current)); + fc.setMultiSelectionEnabled(false); + fc.setCurrentDirectory(new File((String) config.get())); + FileFilter allSupportedFilter = new FileFilter() { + private final String[] supportedExtensions = new String[]{".swf", ".gfx", ".swc", ".zip", ".iggy"}; + + @Override + public boolean accept(File f) { + if (f.isDirectory()) { + return true; + } + return f.getName().matches(pattern); + } + + @Override + public String getDescription() { + return ""; + } + }; + fc.setFileFilter(allSupportedFilter); + + fc.setAcceptAllFileFilterUsed(false); + int returnVal = fc.showOpenDialog(Main.getDefaultMessagesComponent()); + if (returnVal == JFileChooser.APPROVE_OPTION) { + return Helper.fixDialogFile(fc.getSelectedFile()).getAbsolutePath(); + } else { + return (String) config.get(); + } + } + + public String getValue() { + return textField.getText(); + } + + public JTextField getTextField() { + return textField; + } + + + +} diff --git a/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog.properties b/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog.properties index 59d5a7d0c..34f53baf4 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog.properties @@ -594,3 +594,4 @@ config.description.allowDragAndDropInTagListTree = Allows moving / copying tags config.name.allowMiterClipLinestyle = Allow miter clip line styles (SLOW) config.description.allowMiterClipLinestyle = Allow using custom renderer which supports miter clip line styles, but is slow. +advancedSettings.search = Search: \ No newline at end of file diff --git a/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog_cs.properties b/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog_cs.properties index c9991a988..da2d5f078 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog_cs.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog_cs.properties @@ -580,3 +580,5 @@ config.description.allowDragAndDropInTagListTree = Povol\u00ed p\u0159esouv\u00e config.name.allowMiterClipLinestyle = Povolit styl \u010d\u00e1ry miter clip (POMAL\u00c9) config.description.allowMiterClipLinestyle = Povol\u00ed pou\u017e\u00edv\u00e1n\u00ed vlastn\u00edho vykreslov\u00e1n\u00ed kter\u00e9 podporuje \u010d\u00e1ry se stylem miter clip, ale je pomal\u00e9. + +advancedSettings.search = Hledat: \ No newline at end of file diff --git a/test/com/jpexs/decompiler/flash/gui/AdvancedSettingsTest.java b/test/com/jpexs/decompiler/flash/gui/AdvancedSettingsTest.java index 9e1e7453a..f6bc2f180 100644 --- a/test/com/jpexs/decompiler/flash/gui/AdvancedSettingsTest.java +++ b/test/com/jpexs/decompiler/flash/gui/AdvancedSettingsTest.java @@ -16,9 +16,11 @@ */ package com.jpexs.decompiler.flash.gui; +import java.awt.Component; import java.util.HashMap; import java.util.ResourceBundle; import javax.swing.JComboBox; +import javax.swing.JLabel; import org.testng.annotations.Test; /** @@ -30,6 +32,6 @@ public class AdvancedSettingsTest { @Test public void testAdvancedSettginsDialog() { ResourceBundle resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(AdvancedSettingsDialog.class)); - AdvancedSettingsDialog.getCategories(new HashMap<>(), new HashMap<>(), new JComboBox<>(), resourceBundle); + AdvancedSettingsDialog.getCategories("", "", new HashMap<>(), new HashMap<>(), "", new HashMap<>(), new HashMap<>(), new HashMap<>(), new HashMap<>(), new JComboBox<>(), resourceBundle); } }