Test fixes

This commit is contained in:
dragonmacher 2024-11-26 14:26:05 -05:00
parent 6a818106fd
commit 47500148ce
4 changed files with 34 additions and 20 deletions

View File

@ -4,9 +4,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@ -163,7 +163,12 @@ public abstract class AbstractDataTreeDialog extends DialogComponentProvider
// must have been closed; some kind of timing issue
return super.getActionContext(event);
}
return treePanel.getActionContext(null, event);
ActionContext actionContext = treePanel.getActionContext(null, event);
if (actionContext instanceof DialogActionContext dac) {
dac.setDialogComponentProvider(this);
}
return actionContext;
}
public void show() {

View File

@ -76,7 +76,7 @@ public class DualProgramTest extends DiffTestAdapter {
}
@Test
public void testEscapeOpenSecondProgram() throws Exception {
public void testOpenSecondProgram_Escape() throws Exception {
restoreProgram(diffTestP2);
loadProgram(diffTestP1);

View File

@ -16,25 +16,30 @@
package docking;
import java.awt.Component;
import ghidra.util.Msg;
import java.util.Objects;
/**
* Action context for {@link DialogComponentProvider}s.
*/
public class DialogActionContext extends DefaultActionContext {
private DialogComponentProvider dialogProvider;
public DialogActionContext(DialogComponentProvider dialogProvider, Component sourceComponent) {
super(null, dialogProvider, sourceComponent);
this.dialogProvider = Objects.requireNonNull(dialogProvider);
}
// this constructor allows clients to set the dialog later
public DialogActionContext(Object contextObject, Component sourceComponent) {
super(null, contextObject, sourceComponent);
}
public void setDialogComponentProvider(DialogComponentProvider dialogProvider) {
this.dialogProvider = dialogProvider;
}
public DialogComponentProvider getDialogComponentProvider() {
Object contextObject = getContextObject();
if (contextObject instanceof DialogComponentProvider dcp) {
return dcp;
}
Msg.warn(this, "Found dialog context without a DialogComponentProvider context object");
return null;
return dialogProvider;
}
}

View File

@ -4,9 +4,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@ -20,15 +20,19 @@ import java.util.List;
import javax.swing.tree.TreePath;
import docking.DefaultActionContext;
import docking.DialogActionContext;
import docking.widgets.tree.GTreeNode;
import ghidra.framework.main.datatable.ProjectTreeContext;
import ghidra.framework.model.*;
/**
* Context specific to the DataTreeDialog.
*
* Note: this context is used from by the {@link ProjectDataTreePanel}. This class may or may not
* be in a dialog. For convenience, this class extends a dialog action context, but may not always
* be associated with a dialog.
*/
public class DialogProjectTreeContext extends DefaultActionContext implements ProjectTreeContext {
public class DialogProjectTreeContext extends DialogActionContext implements ProjectTreeContext {
private TreePath[] selectionPaths;
private DataTree tree;
@ -36,9 +40,9 @@ public class DialogProjectTreeContext extends DefaultActionContext implements Pr
private List<DomainFile> selectedFiles;
public DialogProjectTreeContext(ProjectData projectData,
TreePath[] selectionPaths,
List<DomainFolder> folderList, List<DomainFile> fileList, DataTree tree) {
super(null, getContextObject(selectionPaths), tree);
TreePath[] selectionPaths, List<DomainFolder> folderList, List<DomainFile> fileList,
DataTree tree) {
super(getContextObject(selectionPaths), tree);
this.selectionPaths = selectionPaths;
this.selectedFolders = folderList;
this.selectedFiles = fileList;