mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-06 03:50:02 +02:00
GP-2986 - ComponentProvder and dialog cleanup on dispose
This commit is contained in:
parent
e5a8f26347
commit
c252e3b905
174 changed files with 1418 additions and 1529 deletions
|
@ -24,6 +24,7 @@ import java.util.List;
|
|||
import java.util.Objects;
|
||||
|
||||
import docking.widgets.filechooser.GhidraFileChooser;
|
||||
import docking.widgets.filechooser.GhidraFileChooserMode;
|
||||
import ghidra.bitpatterns.info.ContextRegisterFilter;
|
||||
import ghidra.bitpatterns.info.PatternType;
|
||||
import ghidra.framework.preferences.Preferences;
|
||||
|
@ -88,7 +89,7 @@ public class ExportPatternFileActionListener implements ActionListener {
|
|||
return;
|
||||
}
|
||||
GhidraFileChooser gFileChooser = new GhidraFileChooser(component);
|
||||
gFileChooser.setFileSelectionMode(GhidraFileChooser.FILES_ONLY);
|
||||
gFileChooser.setFileSelectionMode(GhidraFileChooserMode.FILES_ONLY);
|
||||
ExtensionFileFilter xmlFilter = new ExtensionFileFilter("xml", "XML Files");
|
||||
gFileChooser.setFileFilter(xmlFilter);
|
||||
String baseDir = Preferences.getProperty(XML_EXPORT_DIR_PROPERTY);
|
||||
|
@ -97,11 +98,13 @@ public class ExportPatternFileActionListener implements ActionListener {
|
|||
}
|
||||
gFileChooser.setTitle("Select Export File");
|
||||
File outFile = gFileChooser.getSelectedFile();
|
||||
String lastDirPath = gFileChooser.getCurrentDirectory().getAbsolutePath();
|
||||
gFileChooser.dispose();
|
||||
if (gFileChooser.wasCancelled() || outFile == null) {
|
||||
return;
|
||||
}
|
||||
Preferences.setProperty(XML_EXPORT_DIR_PROPERTY,
|
||||
gFileChooser.getCurrentDirectory().getAbsolutePath());
|
||||
|
||||
Preferences.setProperty(XML_EXPORT_DIR_PROPERTY, lastDirPath);
|
||||
Preferences.store();
|
||||
BitsInputDialogComponentProvider bitsProvider =
|
||||
new BitsInputDialogComponentProvider(BITS_PROVIDER_MESSAGE);
|
||||
|
@ -115,7 +118,6 @@ public class ExportPatternFileActionListener implements ActionListener {
|
|||
}
|
||||
catch (IOException e1) {
|
||||
Msg.showError(this, component, "IO Error", "IO error exporting pattern xml file", e1);
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ import docking.action.DockingAction;
|
|||
import docking.action.MenuData;
|
||||
import docking.tool.ToolConstants;
|
||||
import docking.widgets.filechooser.GhidraFileChooser;
|
||||
import docking.widgets.filechooser.GhidraFileChooserMode;
|
||||
import docking.widgets.label.GLabel;
|
||||
import ghidra.bitpatterns.info.*;
|
||||
import ghidra.framework.options.OptionsChangeListener;
|
||||
|
@ -227,13 +228,14 @@ public class FunctionBitPatternsMainProvider extends ComponentProviderAdapter
|
|||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
GhidraFileChooser fileChooser = new GhidraFileChooser(component);
|
||||
fileChooser.setFileSelectionMode(GhidraFileChooser.DIRECTORIES_ONLY);
|
||||
fileChooser.setFileSelectionMode(GhidraFileChooserMode.DIRECTORIES_ONLY);
|
||||
fileChooser.setTitle("Select Directory Containing XML Files");
|
||||
String baseDir = Preferences.getProperty(PATTERN_INFO_DIR);
|
||||
if (baseDir != null) {
|
||||
fileChooser.setCurrentDirectory(new File(baseDir));
|
||||
}
|
||||
File xmlDir = fileChooser.getSelectedFile();
|
||||
fileChooser.dispose();
|
||||
if (xmlDir == null) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ import java.math.BigInteger;
|
|||
import org.xml.sax.SAXException;
|
||||
|
||||
import docking.widgets.filechooser.GhidraFileChooser;
|
||||
import docking.widgets.filechooser.GhidraFileChooserMode;
|
||||
import generic.jar.ResourceFile;
|
||||
import ghidra.app.analyzers.FunctionStartAnalyzer.ContextAction;
|
||||
import ghidra.bitpatterns.info.ContextRegisterFilter;
|
||||
|
@ -59,7 +60,7 @@ public class ImportPatternFileActionListener implements ActionListener {
|
|||
public void actionPerformed(ActionEvent e) {
|
||||
GhidraFileChooser fileChooser = new GhidraFileChooser(component);
|
||||
|
||||
fileChooser.setFileSelectionMode(GhidraFileChooser.FILES_ONLY);
|
||||
fileChooser.setFileSelectionMode(GhidraFileChooserMode.FILES_ONLY);
|
||||
fileChooser.setTitle("Select Pattern File");
|
||||
String baseDir = Preferences.getProperty(XML_IMPORT_DIR_PROPERTY);
|
||||
if (baseDir != null) {
|
||||
|
@ -68,11 +69,13 @@ public class ImportPatternFileActionListener implements ActionListener {
|
|||
ExtensionFileFilter xmlFilter = new ExtensionFileFilter("xml", "XML Files");
|
||||
fileChooser.setFileFilter(xmlFilter);
|
||||
File patternFile = fileChooser.getSelectedFile();
|
||||
String lastDirPath = fileChooser.getCurrentDirectory().getAbsolutePath();
|
||||
fileChooser.dispose();
|
||||
if (fileChooser.wasCancelled() || patternFile == null) {
|
||||
return;
|
||||
}
|
||||
Preferences.setProperty(XML_IMPORT_DIR_PROPERTY,
|
||||
fileChooser.getCurrentDirectory().getAbsolutePath());
|
||||
|
||||
Preferences.setProperty(XML_IMPORT_DIR_PROPERTY, lastDirPath);
|
||||
Preferences.store();
|
||||
//only clear the patterns if new patterns are loaded from a file
|
||||
ResourceFile resource = new ResourceFile(patternFile);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue