diff --git a/codecut-gui/src/main/java/codecutguiv2/CodeCutGUIPlugin.java b/codecut-gui/src/main/java/codecutguiv2/CodeCutGUIPlugin.java index c08ab91..1a96538 100644 --- a/codecut-gui/src/main/java/codecutguiv2/CodeCutGUIPlugin.java +++ b/codecut-gui/src/main/java/codecutguiv2/CodeCutGUIPlugin.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2021 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; @@ -49,6 +53,8 @@ import ghidra.app.events.ProgramActivatedPluginEvent; import ghidra.app.events.ProgramLocationPluginEvent; import ghidra.app.plugin.PluginCategoryNames; import ghidra.app.plugin.core.symboltree.actions.*; +import ghidra.app.script.GhidraScript; +import ghidra.app.script.GhidraState; import ghidra.app.services.BlockModelService; import ghidra.app.services.GoToService; import ghidra.app.util.SymbolInspector; @@ -70,12 +76,14 @@ import ghidra.program.util.DefinedDataIterator; import ghidra.program.util.GhidraProgramUtilities; import ghidra.program.util.ProgramChangeRecord; import ghidra.program.util.ProgramLocation; +import ghidra.python.GhidraPythonInterpreter; +import ghidra.python.PythonScript; +import ghidra.util.HTMLUtilities; import ghidra.util.HelpLocation; import ghidra.util.Msg; import ghidra.util.Swing; import ghidra.util.exception.DuplicateNameException; import ghidra.util.table.GhidraTable; -import ghidra.util.table.SelectionNavigationAction; import ghidra.util.task.SwingUpdateManager; import ghidra.util.task.*; import ghidra.util.datastruct.*; @@ -109,6 +117,7 @@ public class CodeCutGUIPlugin extends Plugin implements DomainObjectListener { private final static String OPTION_NAME_PYTHON_EXEC = "Python Executable"; private final static String OPTION_DEFAULT_PYTHON_EXEC = "/projects/venv/bin/python3"; + //private final static String OPTION_DEFAULT_PYTHON_EXEC = "/usr/local/bin/python3"; // for testing private String pythonExec = OPTION_DEFAULT_PYTHON_EXEC; private DockingAction openRefsAction; @@ -120,6 +129,7 @@ public class CodeCutGUIPlugin extends Plugin implements DomainObjectListener { private ToggleDockingAction referencesToAction; private ToggleDockingAction instructionsFromAction; private ToggleDockingAction dataFromAction; + private ToggleDockingAction selectionNavigationAction; private SymbolProvider symProvider; private ReferenceProvider refProvider; @@ -131,10 +141,11 @@ public class CodeCutGUIPlugin extends Plugin implements DomainObjectListener { private GoToService gotoService; private BlockModelService blockModelService; private SwingUpdateManager swingMgr; + private DecompileRangeProvider decompProvider; private Map> stringMap; private Map suggestedModuleNames; - + public CodeCutGUIPlugin(PluginTool tool) { super(tool); @@ -160,11 +171,13 @@ public class CodeCutGUIPlugin extends Plugin implements DomainObjectListener { renameProvider = new RenameProvider(this); createProvider = new CreateProvider(this); combineProvider = new CombineProvider(this); + decompProvider = new DecompileRangeProvider(this); createNamespaceActions(); createSymActions(); createRefActions(); createMapActions(); + createOutputActions(); inspector = new SymbolInspector(getTool(), symProvider.getComponent()); } @@ -558,21 +571,27 @@ public class CodeCutGUIPlugin extends Plugin implements DomainObjectListener { tool.addLocalAction(symProvider, setFilterAction); // override the SelectionNavigationAction to handle both tables that this plugin uses - List tableList = symProvider.getAllTables(); - Iterator it = tableList.iterator(); - while (it.hasNext()) { - GhidraTable t = it.next(); - DockingAction selectionNavigationAction = - new SelectionNavigationAction(this, t) { - - @Override - protected void toggleSelectionListening(boolean listen) { - super.toggleSelectionListening(listen); - refProvider.getTable().setNavigateOnSelectionEnabled(listen); + selectionNavigationAction = new ToggleDockingAction("Set Navigation", getName()) { + private boolean selected = false; + @Override + public void actionPerformed(ActionContext context) { + selected = !selected; + setSelected(selected); + List tableList = symProvider.getAllTables(); + Iterator it = tableList.iterator(); + while (it.hasNext()) { + GhidraTable t = it.next(); + t.setNavigateOnSelectionEnabled(selected); } - }; - tool.addLocalAction(symProvider, selectionNavigationAction); - } + } + }; + icon = Icons.NAVIGATE_ON_INCOMING_EVENT_ICON; + selectionNavigationAction.setToolBarData(new ToolBarData(icon)); + selectionNavigationAction.setDescription(HTMLUtilities.toHTML("Toggle on means to navigate to the location\n" + + "in the program that corresponds to the selected row,\n as the selection changes.")); + selectionNavigationAction.setSelected(true); + tool.addLocalAction(symProvider, selectionNavigationAction); + String pinnedPopupGroup = "2"; // second group DockingAction setPinnedAction = new PinSymbolAction(getName(), pinnedPopupGroup); @@ -710,6 +729,7 @@ public class CodeCutGUIPlugin extends Plugin implements DomainObjectListener { if (stringMap != null) { guessModuleNames(); } + symProvider.reload(); } }; @@ -721,6 +741,25 @@ public class CodeCutGUIPlugin extends Plugin implements DomainObjectListener { tool.addAction(moduleNameGuessingAction); } + private void createOutputActions() { + DockingAction decompileRange = new DockingAction("Decompile Range", getName(), KeyBindingType.SHARED) { + @Override + public void actionPerformed(ActionContext context) { + decompProvider.setFunc(symProvider.getCurrentSymbol().getAddress()); + decompProvider.open(); + } + + @Override + public boolean isEnabledForContext(ActionContext context) { + return symProvider.getCurrentSymbol() != null; + } + }; + decompileRange.setPopupMenuData( + new MenuData(new String[] { "Decompile Range" })); + decompileRange.setDescription("Decompile Range"); + tool.addLocalAction(symProvider, decompileRange); + } + private void guessModuleNames() { Task guessNamesTask = new Task("Guess Module Names", true, true, true) { @Override @@ -1060,7 +1099,7 @@ public class CodeCutGUIPlugin extends Plugin implements DomainObjectListener { return null; } - private File getMapFile() { + protected File getMapFile() { GhidraFileChooser fileChooser = new GhidraFileChooser(this.symProvider.getComponent()); String dir = Preferences.getProperty(Preferences.LAST_EXPORT_DIRECTORY); if (dir != null) { @@ -1120,4 +1159,84 @@ public class CodeCutGUIPlugin extends Plugin implements DomainObjectListener { action.setSelected(false); action.setSelected(true); } + protected File getCFile() { + GhidraFileChooser fileChooser = new GhidraFileChooser(this.symProvider.getComponent()); + String dir = Preferences.getProperty(Preferences.LAST_EXPORT_DIRECTORY); + if (dir != null) { + File file = new File(dir); + fileChooser.setCurrentDirectory(file); + fileChooser.setTitle("Choose Save C File"); + fileChooser.setApproveButtonText("Choose Save C File"); + fileChooser.setApproveButtonToolTipText("Choose filename for C file"); + } + fileChooser.rescanCurrentDirectory(); + File file = fileChooser.getSelectedFile(); + if (file != null) { + File parent = file.getParentFile(); + if (parent != null) { + Preferences.setProperty(Preferences.LAST_EXPORT_DIRECTORY, parent.getAbsolutePath()); + } + String name = file.getName(); + if (!file.getName().endsWith(".c")) { + file = new File(file.getParentFile(), name + ".c"); + } + if (file.exists()) { + if (OptionDialog.showOptionDialog(this.symProvider.getComponent(), "Overwrite Existing File?", + "The file " + file.getAbsolutePath() + " already exists. \nDo you want to overwrite it?", + "Yes", OptionDialog.QUESTION_MESSAGE) != OptionDialog.OPTION_ONE) { + file = null; + } + else { + try { + // delete existing file + deleteFile(file); + } + catch (IOException e) { + Msg.showError(this, this.symProvider.getComponent(), "C File Overwrite Failed", e.getMessage()); + return null; + } + } + } + } + + return file; + } + public void exportC(String startAddr, String endAddr) { + File file = getCFile(); + ExportC ec = new ExportC(startAddr, endAddr, file); + try { + GhidraState state = new GhidraState(tool, tool.getProject(), GhidraProgramUtilities.getCurrentProgram(tool), null, null, null); + ConsoleTaskMonitor monitor = new ConsoleTaskMonitor(); + PrintWriter pw = new PrintWriter(file); + ec.execute(state, monitor, pw); + } catch (Exception e) { + e.printStackTrace(); + } + + } + private class ExportC extends PythonScript{ + Program program = GhidraProgramUtilities.getCurrentProgram(tool); + GhidraState state = new GhidraState(tool, tool.getProject(), program, null, null, null); + String start_addr; + String end_addr; + String outfile; + + public ExportC(String start, String end, File file) { + this.start_addr = start; + this.end_addr = end; + this.outfile = file.getAbsolutePath(); + this.state.addEnvironmentVar("ghidra.python.interpreter", GhidraPythonInterpreter.get()); + + } + @Override + public void run() { + String[] args = {start_addr, end_addr, outfile}; + try { + runScript("range.py", args); + } catch (Exception e) { + e.printStackTrace(); + } + } + + } } diff --git a/codecut-gui/src/main/java/codecutguiv2/CodeCutTransferHandler.java b/codecut-gui/src/main/java/codecutguiv2/CodeCutTransferHandler.java index d262a6a..972ae9a 100644 --- a/codecut-gui/src/main/java/codecutguiv2/CodeCutTransferHandler.java +++ b/codecut-gui/src/main/java/codecutguiv2/CodeCutTransferHandler.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/CodecutUtils.java b/codecut-gui/src/main/java/codecutguiv2/CodecutUtils.java index aab2a8e..9ca5ed6 100644 --- a/codecut-gui/src/main/java/codecutguiv2/CodecutUtils.java +++ b/codecut-gui/src/main/java/codecutguiv2/CodecutUtils.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/CombineProvider.java b/codecut-gui/src/main/java/codecutguiv2/CombineProvider.java index c1a9b9c..8540125 100644 --- a/codecut-gui/src/main/java/codecutguiv2/CombineProvider.java +++ b/codecut-gui/src/main/java/codecutguiv2/CombineProvider.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; @@ -124,7 +128,8 @@ class CombineProvider extends ComponentProviderAdapter implements ActionListener Dimension dim = entryPanel.getPreferredSize(); boxPanel.add(entryPanel); boxPanel.setSize(dim); - + setIntraGroupPosition(WindowPosition.RIGHT); + } public void actionPerformed(ActionEvent e) { diff --git a/codecut-gui/src/main/java/codecutguiv2/CreateProvider.java b/codecut-gui/src/main/java/codecutguiv2/CreateProvider.java index 4494dd5..8fc0a36 100644 --- a/codecut-gui/src/main/java/codecutguiv2/CreateProvider.java +++ b/codecut-gui/src/main/java/codecutguiv2/CreateProvider.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; @@ -100,6 +104,7 @@ class CreateProvider extends ComponentProviderAdapter implements ActionListener Dimension dim = entryPanel.getPreferredSize(); boxPanel.add(entryPanel); boxPanel.setSize(dim); + setIntraGroupPosition(WindowPosition.RIGHT); } diff --git a/codecut-gui/src/main/java/codecutguiv2/FilterDialog.java b/codecut-gui/src/main/java/codecutguiv2/FilterDialog.java index 6ac6d7d..1cd97fb 100644 --- a/codecut-gui/src/main/java/codecutguiv2/FilterDialog.java +++ b/codecut-gui/src/main/java/codecutguiv2/FilterDialog.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/ModNamingPython.java b/codecut-gui/src/main/java/codecutguiv2/ModNamingPython.java index 82ce506..0dc723d 100644 --- a/codecut-gui/src/main/java/codecutguiv2/ModNamingPython.java +++ b/codecut-gui/src/main/java/codecutguiv2/ModNamingPython.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/NamespacePanel.java b/codecut-gui/src/main/java/codecutguiv2/NamespacePanel.java index 4b0d87a..28b144a 100644 --- a/codecut-gui/src/main/java/codecutguiv2/NamespacePanel.java +++ b/codecut-gui/src/main/java/codecutguiv2/NamespacePanel.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; @@ -40,6 +44,7 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; + import ghidra.app.services.GoToService; import ghidra.framework.options.SaveState; import ghidra.framework.plugintool.PluginTool; @@ -60,6 +65,8 @@ class NamespacePanel extends JPanel { private List symPanels; private JPanel boxPanel; private JScrollPane listScroller; + private List tables; + private Boolean textFiltering = false; NamespacePanel(Program program, PluginTool tool, SymbolProvider provider, SymbolRenderer renderer) { BoxLayout layout = new BoxLayout(this, BoxLayout.Y_AXIS); @@ -69,8 +76,10 @@ class NamespacePanel extends JPanel { this.tool = tool; this.symProvider = provider; this.symPanels = new ArrayList<>(); + this.tables = new ArrayList<>(); this.boxPanel = null; this.listScroller = null; + this.renderer = renderer; } @@ -129,15 +138,17 @@ class NamespacePanel extends JPanel { int totalWidth = panel.getPreferredSize().width; panel.setPreferredSize(new Dimension(totalWidth, height)); symPanels.add(symPanel); - + tables.add(symPanel.getTable()); + symPanel.getTable().setNavigateOnSelectionEnabled(true); boxPanel.add(panel); } listScroller = new JScrollPane(boxPanel); - listScroller.setPreferredSize(new Dimension(576, 400)); - this.add(listScroller); - this.setPreferredSize(new Dimension(576, 400)); - + boxPanel.setAutoscrolls(true); + this.add(listScroller, BorderLayout.CENTER); + CCTableFilterPanel filterPanel = new CCTableFilterPanel(tables, symProvider, this); + this.add(filterPanel, BorderLayout.SOUTH); + this.setPreferredSize(new Dimension(576, 400)); revalidate(); } @@ -210,7 +221,7 @@ class NamespacePanel extends JPanel { Iterator it = symPanels.iterator(); while (it.hasNext()) { SymbolPanel panel = it.next(); - count += panel.getActualSymbolCount(); + count += panel.getModel().getRowCount(); } return count; } @@ -257,4 +268,15 @@ class NamespacePanel extends JPanel { return this.symPanels.iterator(); } + SymbolProvider getSymProvider() { + return this.symProvider; + } + public void setTextFiltering(boolean set) { + this.textFiltering = set; + } + + public Boolean isTextFiltering() { + return this.textFiltering; + } + } diff --git a/codecut-gui/src/main/java/codecutguiv2/NewSymbolFilter.java b/codecut-gui/src/main/java/codecutguiv2/NewSymbolFilter.java index 029deb6..ee37a34 100644 --- a/codecut-gui/src/main/java/codecutguiv2/NewSymbolFilter.java +++ b/codecut-gui/src/main/java/codecutguiv2/NewSymbolFilter.java @@ -1,27 +1,26 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. -*/ + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ /* This material is based upon work supported by the Defense Advanced Research * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) diff --git a/codecut-gui/src/main/java/codecutguiv2/ReferencePanel.java b/codecut-gui/src/main/java/codecutguiv2/ReferencePanel.java index 36978b2..924831b 100644 --- a/codecut-gui/src/main/java/codecutguiv2/ReferencePanel.java +++ b/codecut-gui/src/main/java/codecutguiv2/ReferencePanel.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/ReferenceProvider.java b/codecut-gui/src/main/java/codecutguiv2/ReferenceProvider.java index 6a101de..a9c1abf 100644 --- a/codecut-gui/src/main/java/codecutguiv2/ReferenceProvider.java +++ b/codecut-gui/src/main/java/codecutguiv2/ReferenceProvider.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/RenameProvider.java b/codecut-gui/src/main/java/codecutguiv2/RenameProvider.java index a1b8a3e..89b7d29 100644 --- a/codecut-gui/src/main/java/codecutguiv2/RenameProvider.java +++ b/codecut-gui/src/main/java/codecutguiv2/RenameProvider.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; @@ -100,8 +104,7 @@ class RenameProvider extends ComponentProviderAdapter implements ActionListener Dimension dim = entryPanel.getPreferredSize(); boxPanel.add(entryPanel); boxPanel.setSize(dim); - - //addToTool(); + setIntraGroupPosition(WindowPosition.RIGHT); } public void actionPerformed(ActionEvent e) { diff --git a/codecut-gui/src/main/java/codecutguiv2/RowPanel.java b/codecut-gui/src/main/java/codecutguiv2/RowPanel.java index d2428a5..6fe2ab2 100644 --- a/codecut-gui/src/main/java/codecutguiv2/RowPanel.java +++ b/codecut-gui/src/main/java/codecutguiv2/RowPanel.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/SharedListSelectionListener.java b/codecut-gui/src/main/java/codecutguiv2/SharedListSelectionListener.java index 56c7c49..22eb637 100644 --- a/codecut-gui/src/main/java/codecutguiv2/SharedListSelectionListener.java +++ b/codecut-gui/src/main/java/codecutguiv2/SharedListSelectionListener.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/SymbolEditor.java b/codecut-gui/src/main/java/codecutguiv2/SymbolEditor.java index 282be34..b9cbb97 100644 --- a/codecut-gui/src/main/java/codecutguiv2/SymbolEditor.java +++ b/codecut-gui/src/main/java/codecutguiv2/SymbolEditor.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/SymbolFilter.java b/codecut-gui/src/main/java/codecutguiv2/SymbolFilter.java index 1cbaf5a..27f4270 100644 --- a/codecut-gui/src/main/java/codecutguiv2/SymbolFilter.java +++ b/codecut-gui/src/main/java/codecutguiv2/SymbolFilter.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/SymbolPanel.java b/codecut-gui/src/main/java/codecutguiv2/SymbolPanel.java index ec0c3ff..dad1030 100644 --- a/codecut-gui/src/main/java/codecutguiv2/SymbolPanel.java +++ b/codecut-gui/src/main/java/codecutguiv2/SymbolPanel.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; @@ -59,7 +63,6 @@ class SymbolPanel extends JPanel { private TableModelListener listener; private FilterDialog filterDialog; private GhidraThreadedTablePanel threadedTablePanel; - private GhidraTableFilterPanel tableFilterPanel; private Namespace namespace; private ListSelectionListener selectionListener; @@ -108,44 +111,10 @@ class SymbolPanel extends JPanel { } add(threadedTablePanel, BorderLayout.CENTER); - createFilterFieldPanel(); filterDialog = symProvider.filterDialog; } - - private JPanel createFilterFieldPanel() { - tableFilterPanel = new GhidraTableFilterPanel<>(symTable, tableModel); - tableFilterPanel.setToolTipText("Filters the contents of the table on symbol " + - "names that start with the given pattern"); - - tableFilterPanel.add(Box.createHorizontalStrut(5)); - - final JCheckBox nameColumnOnlyCheckbox = new GCheckBox("Name Only"); - nameColumnOnlyCheckbox.setName("NameOnly"); // used by JUnit - nameColumnOnlyCheckbox.setToolTipText( - "Selected causes filter to only consider the symbol's name."); - nameColumnOnlyCheckbox.setFocusable(false); - nameColumnOnlyCheckbox.setSelected(FILTER_NAME_ONLY_DEFAULT); - tableFilterPanel.setFilterRowTransformer( - updateRowDataTransformer(FILTER_NAME_ONLY_DEFAULT)); - nameColumnOnlyCheckbox.addItemListener(e -> { - boolean nameOnly = nameColumnOnlyCheckbox.isSelected(); - tableFilterPanel.setFilterRowTransformer(updateRowDataTransformer(nameOnly)); - }); - - tableFilterPanel.add(nameColumnOnlyCheckbox); - - return tableFilterPanel; - } - - protected RowFilterTransformer updateRowDataTransformer(boolean nameOnly) { - if (nameOnly) { - return new NameOnlyRowTransformer(); - } - - return new DefaultRowFilterTransformer<>(tableModel, symTable.getColumnModel()); - } - + ProgramSelection getProgramSelection() { return symTable.getProgramSelection(); } @@ -154,7 +123,6 @@ class SymbolPanel extends JPanel { symTable.getModel().removeTableModelListener(listener); symTable.dispose(); threadedTablePanel.dispose(); - tableFilterPanel.dispose(); symProvider = null; filterDialog.close(); filterDialog = null; diff --git a/codecut-gui/src/main/java/codecutguiv2/SymbolPlaceholder.java b/codecut-gui/src/main/java/codecutguiv2/SymbolPlaceholder.java index 060aeed..09c7493 100644 --- a/codecut-gui/src/main/java/codecutguiv2/SymbolPlaceholder.java +++ b/codecut-gui/src/main/java/codecutguiv2/SymbolPlaceholder.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/SymbolProvider.java b/codecut-gui/src/main/java/codecutguiv2/SymbolProvider.java index 2fb9d05..56d5e81 100644 --- a/codecut-gui/src/main/java/codecutguiv2/SymbolProvider.java +++ b/codecut-gui/src/main/java/codecutguiv2/SymbolProvider.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; @@ -32,21 +36,23 @@ import java.util.List; import javax.swing.ImageIcon; import javax.swing.JComponent; - +import javax.swing.JTable; import docking.ActionContext; import docking.DockingUtils; import docking.action.KeyBindingData; import ghidra.app.context.ProgramActionContext; import ghidra.app.context.ProgramSymbolActionContext; +import ghidra.app.services.GoToService; import ghidra.app.util.SymbolInspector; import ghidra.framework.options.SaveState; import ghidra.framework.plugintool.ComponentProviderAdapter; +import ghidra.program.model.address.Address; +import ghidra.program.model.address.AddressFactory; import ghidra.program.model.listing.Program; import ghidra.program.model.symbol.Namespace; import ghidra.program.model.symbol.Symbol; import ghidra.util.HelpLocation; -import ghidra.util.Msg; import ghidra.util.table.GhidraTable; import resources.ResourceManager; @@ -59,10 +65,12 @@ class SymbolProvider extends ComponentProviderAdapter { private SymbolTableModel symbolKeyModel; private NamespacePanel namespacePanel; public FilterDialog filterDialog; + private GoToService gotoService; SymbolProvider(CodeCutGUIPlugin plugin) { super(plugin.getTool(), "CodeCut Table", plugin.getName(), ProgramActionContext.class); this.plugin = plugin; + gotoService = plugin.getGoToService(); setIcon(ICON); addToToolbar(); @@ -92,6 +100,20 @@ class SymbolProvider extends ComponentProviderAdapter { } List symbols = namespacePanel.getSelectedSymbols(); + Iterator tables = namespacePanel.getAllTables().iterator(); + AddressFactory af = program.getAddressFactory(); + + // Hack to go to proper function when text filtering + while(tables.hasNext()) { + GhidraTable table = tables.next(); + if (table.getSelectedRow() >= 0 && table.getSelectedRow() <= table.getRowCount()) { + Address addr = af.getAddress(table.getValueAt(table.getSelectedRow(), 1).toString()); + if (addr != null && namespacePanel.isTextFiltering()) { + gotoService.goTo(addr); + } + return new ProgramSymbolActionContext(this, program, symbols, getTable()); + } + } return new ProgramSymbolActionContext(this, program, symbols, getTable()); } @@ -193,11 +215,16 @@ class SymbolProvider extends ComponentProviderAdapter { private String generateSubTitle() { SymbolFilter filter = symbolKeyModel.getFilter(); - - int rowCount = symbolKeyModel.getRowCount(); - int unfilteredCount = symbolKeyModel.getUnfilteredRowCount(); - - if (rowCount != unfilteredCount) { + int rowCount = 0; + int unfilteredCount = 0; + Iterator tables = getAllTables().iterator(); + Iterator panels = getSymPanels(); + while(tables.hasNext() && panels.hasNext()) { + JTable table = tables.next(); + rowCount += table.getRowCount(); + unfilteredCount += panels.next().getModel().getUnfilteredRowCount(); + } + if (namespacePanel.isTextFiltering()) { return " (Text filter matched " + rowCount + " of " + unfilteredCount + " symbols)"; } if (filter.acceptsAll()) { diff --git a/codecut-gui/src/main/java/codecutguiv2/SymbolReferenceModel.java b/codecut-gui/src/main/java/codecutguiv2/SymbolReferenceModel.java index 6513aec..c2abec8 100644 --- a/codecut-gui/src/main/java/codecutguiv2/SymbolReferenceModel.java +++ b/codecut-gui/src/main/java/codecutguiv2/SymbolReferenceModel.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/SymbolRenderer.java b/codecut-gui/src/main/java/codecutguiv2/SymbolRenderer.java index 2d26f26..e1186df 100644 --- a/codecut-gui/src/main/java/codecutguiv2/SymbolRenderer.java +++ b/codecut-gui/src/main/java/codecutguiv2/SymbolRenderer.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/SymbolRowObjectToAddressTableRowMapper.java b/codecut-gui/src/main/java/codecutguiv2/SymbolRowObjectToAddressTableRowMapper.java index be1ba2c..1057817 100644 --- a/codecut-gui/src/main/java/codecutguiv2/SymbolRowObjectToAddressTableRowMapper.java +++ b/codecut-gui/src/main/java/codecutguiv2/SymbolRowObjectToAddressTableRowMapper.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/codecut-gui/src/main/java/codecutguiv2/SymbolRowObjectToProgramLocationTableRowMapper.java b/codecut-gui/src/main/java/codecutguiv2/SymbolRowObjectToProgramLocationTableRowMapper.java index cfda1fb..baa8a00 100644 --- a/codecut-gui/src/main/java/codecutguiv2/SymbolRowObjectToProgramLocationTableRowMapper.java +++ b/codecut-gui/src/main/java/codecutguiv2/SymbolRowObjectToProgramLocationTableRowMapper.java @@ -1,26 +1,30 @@ /* ### -* © 2022 The Johns Hopkins University Applied Physics Laboratory LLC -* (JHU/APL). -* -* NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL -* MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF -* THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL -* VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER -* EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED -* WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR -* PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD -* PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND -* LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE -* TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, -* SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, -* THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST -* PROFITS. -* -* This material is based upon work supported by the Defense Advanced Research -* Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) -* under Contract Number N66001-20-C-4024. -* -* HAVE A NICE DAY. + * © 2022 The Johns Hopkins University Applied Physics Laboratory LLC (JHU/APL). + * All Rights Reserved. + * + * This material may be only be used, modified, or reproduced by or for the U.S. + * Government pursuant to the license rights granted under the clauses at + * DFARS 252.227-7013/7014 or FAR 52.227-14. For any other permission, please + * contact the Office of Technology Transfer at JHU/APL. + * + * NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES + * NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, + * INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS + * ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING + * (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF + * INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL + * ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL + * JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, + * CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO + * USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. + * + * HAVE A NICE DAY. + */ + +/* This material is based upon work supported by the Defense Advanced Research + * Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) + * under Contract Number N66001-20-C-4024. */ package codecutguiv2; diff --git a/deepcut-ghidra/gradlew b/deepcut-ghidra/gradlew old mode 100644 new mode 100755