mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-28 17:11:11 -09:00
GP-6922 - Fixed Enter and Escape in the Create Typedef dialog
This commit is contained in:
@@ -15,9 +15,6 @@
|
||||
*/
|
||||
package ghidra.app.plugin.core.datamgr.actions;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.CellEditorListener;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
@@ -26,8 +23,6 @@ import javax.swing.tree.TreePath;
|
||||
import docking.DialogComponentProvider;
|
||||
import docking.widgets.label.GLabel;
|
||||
import ghidra.app.plugin.core.datamgr.DataTypeManagerPlugin;
|
||||
import ghidra.app.plugin.core.datamgr.tree.ArchiveNode;
|
||||
import ghidra.app.plugin.core.datamgr.tree.DataTypeTreeNode;
|
||||
import ghidra.app.util.datatype.DataTypeSelectionEditor;
|
||||
import ghidra.program.model.data.*;
|
||||
import ghidra.util.MessageType;
|
||||
@@ -57,10 +52,6 @@ public class CreateTypeDefDialog extends DialogComponentProvider {
|
||||
}
|
||||
|
||||
private JComponent createWorkPanel() {
|
||||
List<DataTypeManager> managers = Arrays.stream(plugin.getDataTypeManagers())
|
||||
.filter(dtm -> !(dtm instanceof BuiltInDataTypeManager))
|
||||
.toList();
|
||||
DataTypeManager defaultDTM = getDefaultDataTypeManager(managers);
|
||||
|
||||
JPanel panel = new JPanel(new PairLayout());
|
||||
|
||||
@@ -74,9 +65,10 @@ public class CreateTypeDefDialog extends DialogComponentProvider {
|
||||
panel.add(nameTextField);
|
||||
|
||||
// data type info
|
||||
dataTypeEditor = new DataTypeSelectionEditor(
|
||||
null, /* TODO: can't set default dtm for the data type selection field because the dialog allows switching between destination DTMs */
|
||||
plugin.getTool(), AllowedDataTypes.ALL);
|
||||
// Note: can't set default DTM for the data type selection field because the dialog allows
|
||||
// switching between destination DTMs
|
||||
DataTypeManager dtm = null;
|
||||
dataTypeEditor = new DataTypeSelectionEditor(dtm, plugin.getTool(), AllowedDataTypes.ALL);
|
||||
panel.add(new GLabel("Data type:"));
|
||||
panel.add(dataTypeEditor.getEditorComponent());
|
||||
|
||||
@@ -84,11 +76,13 @@ public class CreateTypeDefDialog extends DialogComponentProvider {
|
||||
@Override
|
||||
public void editingStopped(ChangeEvent e) {
|
||||
setStatusText("");
|
||||
okCallback();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editingCanceled(ChangeEvent e) {
|
||||
setStatusText("");
|
||||
cancelCallback();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -109,19 +103,6 @@ public class CreateTypeDefDialog extends DialogComponentProvider {
|
||||
return panel;
|
||||
}
|
||||
|
||||
private DataTypeManager getDefaultDataTypeManager(List<DataTypeManager> mgrs) {
|
||||
// select the manager from where the dialog was created
|
||||
Object lastPathComponent = selectedTreePath.getLastPathComponent();
|
||||
if (lastPathComponent instanceof DataTypeTreeNode dataTypeTreeNode) {
|
||||
ArchiveNode archiveNode = dataTypeTreeNode.getArchiveNode();
|
||||
DataTypeManager manager = archiveNode.getArchive().getDataTypeManager();
|
||||
if (mgrs.contains(manager)) {
|
||||
return manager;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void okCallback() {
|
||||
// are we valid?
|
||||
|
||||
Reference in New Issue
Block a user