Test fixes

This commit is contained in:
dragonmacher
2023-02-06 13:23:15 -05:00
parent ba70679ee8
commit f3d64fcc3a
7 changed files with 50 additions and 42 deletions
@@ -69,6 +69,7 @@ public abstract class AbstractSettingsDialog extends DialogComponentProvider {
super(title, true, false, true, false);
this.settingsDefinitions = settingDefinitions;
settings = new SettingsImpl(originalSettings) {
@Override
public boolean isChangeAllowed(SettingsDefinition settingsDefinition) {
return originalSettings == null ||
originalSettings.isChangeAllowed(settingsDefinition);
@@ -118,7 +119,7 @@ public abstract class AbstractSettingsDialog extends DialogComponentProvider {
@Override
public void dispose() {
close();
super.dispose();
settingsDefinitions = null;
defaultSettings = null;
settings = null;
@@ -150,23 +151,23 @@ public abstract class AbstractSettingsDialog extends DialogComponentProvider {
private void readHexModePreferences() {
intHexModeMap = new HashMap<>();
for (int i = 0; i < settingsDefinitions.length; i++) {
if (settingsDefinitions[i] instanceof NumberSettingsDefinition) {
String propertyName = getHexModePropertyName(settingsDefinitions[i]);
for (SettingsDefinition settingsDefinition : settingsDefinitions) {
if (settingsDefinition instanceof NumberSettingsDefinition) {
String propertyName = getHexModePropertyName(settingsDefinition);
boolean hexMode = Boolean
.valueOf(
Preferences.getProperty(propertyName, Boolean.FALSE.toString()));
intHexModeMap.put(settingsDefinitions[i].getName(), hexMode);
Preferences.getProperty(propertyName, Boolean.FALSE.toString()));
intHexModeMap.put(settingsDefinition.getName(), hexMode);
}
}
}
private void writeHexModePreferences() {
boolean save = false;
for (int i = 0; i < settingsDefinitions.length; i++) {
if (settingsDefinitions[i] instanceof NumberSettingsDefinition) {
boolean hexMode = intHexModeMap.get(settingsDefinitions[i].getName());
String propertyName = getHexModePropertyName(settingsDefinitions[i]);
for (SettingsDefinition settingsDefinition : settingsDefinitions) {
if (settingsDefinition instanceof NumberSettingsDefinition) {
boolean hexMode = intHexModeMap.get(settingsDefinition.getName());
String propertyName = getHexModePropertyName(settingsDefinition);
if (hexMode != Boolean
.valueOf(Preferences.getProperty(propertyName, Boolean.FALSE.toString()))) {
Preferences.setProperty(propertyName, Boolean.toString(hexMode));
@@ -596,7 +597,6 @@ public abstract class AbstractSettingsDialog extends DialogComponentProvider {
return sign + "0x" + signedValue.toString(16);
}
private class SettingsRenderer extends GTableCellRenderer {
private Font originalFont;
@@ -634,7 +634,7 @@ public abstract class AbstractSettingsDialog extends DialogComponentProvider {
return renderer;
}
}
private class NumberWrapper {
final Number value; // may be null
@@ -703,7 +703,7 @@ public abstract class AbstractSettingsDialog extends DialogComponentProvider {
GhidraComboBox<String> getComboBox() {
return comboBox; // used for testing
}
@Override
public Object getCellEditorValue() {
switch (mode) {
@@ -86,7 +86,7 @@ public class DataTypeManagerPlugin extends ProgramPlugin
private static final String EXTENSIONS_PATH_PREFIX = Path.GHIDRA_HOME + "/Extensions";
private static final String SEACH_PROVIDER_NAME = "Search DataTypes Provider";
private static final String SEARCH_PROVIDER_NAME = "Search DataTypes Provider";
private static final int RECENTLY_USED_CACHE_SIZE = 10;
private static final String STANDARD_ARCHIVE_MENU = "Standard Archive";
@@ -360,11 +360,10 @@ public class DataTypeManagerPlugin extends ProgramPlugin
public DataTypesProvider createProvider() {
DataTypesProvider newProvider = new DataTypesProvider(this, SEACH_PROVIDER_NAME);
DataTypesProvider newProvider = new DataTypesProvider(this, SEARCH_PROVIDER_NAME, true);
newProvider.setIncludeDataTypeMembersInFilter(provider.includeDataMembersInSearch());
newProvider.setFilteringArrays(provider.isFilteringArrays());
newProvider.setFilteringPointers(provider.isFilteringPointers());
newProvider.setTransient();
return newProvider;
}
@@ -99,9 +99,18 @@ public class DataTypesProvider extends ComponentProviderAdapter {
private boolean includeDataMembersInFilter;
public DataTypesProvider(DataTypeManagerPlugin plugin, String providerName) {
this(plugin, providerName, false);
}
public DataTypesProvider(DataTypeManagerPlugin plugin, String providerName,
boolean isTransient) {
super(plugin.getTool(), providerName, plugin.getName(), DataTypesActionContext.class);
this.plugin = plugin;
if (isTransient) {
setTransient();
}
setTitle(TITLE);
setIcon(new GIcon("icon.plugin.datatypes.provider"));
addToToolbar();
@@ -114,11 +123,6 @@ public class DataTypesProvider extends ComponentProviderAdapter {
createLocalActions();
}
@Override // overridden to open access
protected void setTransient() {
super.setTransient();
}
/**
* This creates all the actions for opening/creating data type archives.
* It also creates the action for refreshing the built-in data types
@@ -71,7 +71,7 @@ class AddBlockDialog extends DialogComponentProvider implements ChangeListener {
private AddressInput baseAddrField; // used for Bit and Byte mapped blocks
private IntegerTextField schemeDestByteCountField; // used for Byte mapped blocks
private IntegerTextField schemeSrcByteCountField; // used for Byte mapped blocks
private AddBlockModel model;
private GhidraComboBox<MemoryBlockType> comboBox;
private boolean updatingInitializedRB;
@@ -325,8 +325,9 @@ class AddBlockDialog extends DialogComponentProvider implements ChangeListener {
tool.showDialog(this, tool.getComponentProvider(PluginConstants.MEMORY_MAP));
}
@Override
public void dispose() {
close();
super.dispose();
model.dispose();
}
@@ -427,7 +428,7 @@ class AddBlockDialog extends DialogComponentProvider implements ChangeListener {
}
model.setBaseAddress(addr);
}
private void schemeSrcByteCountChanged() {
int value = schemeSrcByteCountField.getIntValue();
model.setSchemeSrcByteCount(value);
@@ -466,21 +467,21 @@ class AddBlockDialog extends DialogComponentProvider implements ChangeListener {
baseAddrField.setAddressFactory(addrFactory);
baseAddrField.setName("Source Addr");
baseAddrField.addChangeListener(ev -> baseAddressChanged());
JPanel schemePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
schemeDestByteCountField = new IntegerTextField(4, 1);
schemeDestByteCountField.setAllowNegativeValues(false);
schemeDestByteCountField.setAllowsHexPrefix(false);
schemeDestByteCountField.setDecimalMode();
schemeDestByteCountField.addChangeListener(ev -> schemeDestByteCountChanged());
schemeSrcByteCountField = new IntegerTextField(4, 1);
schemeSrcByteCountField.setAllowNegativeValues(false);
schemeSrcByteCountField.setAllowsHexPrefix(false);
schemeSrcByteCountField.setDecimalMode();
schemeSrcByteCountField.addChangeListener(ev -> schemeSrcByteCountChanged());
schemePanel.add(schemeDestByteCountField.getComponent());
schemePanel.add(new GLabel(" : "));
schemePanel.add(schemeSrcByteCountField.getComponent());
@@ -494,10 +495,10 @@ class AddBlockDialog extends DialogComponentProvider implements ChangeListener {
model.setBaseAddress(minAddr);
panel.add(new GLabel("Source Address:"));
panel.add(baseAddrField);
panel.add(new GLabel("Mapping Ratio:"));
panel.add(schemePanel);
panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
return panel;
}
@@ -94,8 +94,9 @@ public class EditExternalLocationDialog extends DialogComponentProvider {
/**
* Dispose of this dialog.
*/
@Override
public void dispose() {
close();
super.dispose();
cleanup();
}
@@ -16,7 +16,8 @@
package docking.widgets;
import java.awt.Toolkit;
import java.awt.event.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Arrays;
import javax.swing.*;
@@ -63,12 +64,7 @@ public class PasswordChangeDialog extends DialogComponentProvider {
wp.add(new GLabel("Repeat Password:"));
passwordField2 = new JPasswordField(16);
passwordField2.setName("PASSWORD-ENTRY2-COMPONENT");
passwordField2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
okCallback();
}
});
passwordField2.addActionListener(e -> okCallback());
wp.add(passwordField2);
wp.add(new GLabel());
@@ -146,8 +142,15 @@ public class PasswordChangeDialog extends DialogComponentProvider {
close();
}
@Override
public void close() {
// overridden to not call dispose, since this class does special cleanup on close
closeDialog();
}
@Override
public void dispose() {
close();
super.dispose();
if (newPassword != null) {
Arrays.fill(newPassword, ' ');
newPassword = null;
@@ -91,11 +91,11 @@ public class DefaultClientAuthenticator extends PopupKeyStorePasswordProvider
@Override
public char[] getNewPassword(final Component parent, String serverInfo, String username) {
final PasswordChangeDialog dlg =
PasswordChangeDialog dlg =
new PasswordChangeDialog("Change Password", "Repository Server", serverInfo, username);
Runnable r = () -> DockingWindowManager.showDialog(parent, dlg);
try {
SystemUtilities.runSwingNow(r);
DockingWindowManager.showDialog(parent, dlg);
return dlg.getPassword();
}
finally {