From 0e8c083f411e8d508ae11fa4cb7cc7791ca70348 Mon Sep 17 00:00:00 2001 From: dev747368 <48332326+dev747368@users.noreply.github.com> Date: Wed, 8 May 2019 12:58:48 -0400 Subject: [PATCH] GT-2853 - remove docking ToolTipManager --- .../Base/src/main/java/ghidra/GhidraRun.java | 8 +- .../core/compositeeditor/CompEditorPanel.java | 31 ++-- .../compositeeditor/CompositeEditorPanel.java | 5 +- .../core/disassembler/AddressTableDialog.java | 24 ++- .../core/fallthrough/FallThroughDialog.java | 7 +- .../plugin/core/flowarrow/FlowArrowPanel.java | 2 +- .../core/hover/AbstractHoverProvider.java | 4 +- .../app/plugin/core/marker/MarkerPanel.java | 4 +- .../core/overview/OverviewColorComponent.java | 4 +- .../processors/ShowInstructionInfoPlugin.java | 17 +- .../core/progmgr/TransactionMonitor.java | 18 +- .../core/programtree/DnDTreeCellRenderer.java | 5 +- .../core/programtree/DragNDropTree.java | 3 +- .../EditExternalReferencePanel.java | 5 +- .../references/EditReferencesProvider.java | 2 +- .../ExternalReferencesProvider.java | 2 +- .../plugin/core/reloc/RelocationProvider.java | 2 +- .../symboltree/EditExternalLocationPanel.java | 5 +- .../AddressFieldOptionsPropertyEditor.java | 26 +-- .../field/ArrayElementPropertyEditor.java | 5 +- .../viewer/field/NamespacePropertyEditor.java | 9 +- .../util/ManualViewerCommandEditor.java | 7 +- .../plugin/core/diff/ExecuteDiffDialog.java | 25 ++- .../VTFunctionAssociationProvider.java | 5 +- .../java/docking/DialogComponentProvider.java | 12 +- .../src/main/java/docking/DockingUtils.java | 10 ++ .../java/docking/EmptyBorderToggleButton.java | 2 +- .../src/main/java/docking/GenericHeader.java | 2 +- .../src/main/java/docking/ToolTipManager.java | 161 ------------------ .../editor/DefaultOptionComponent.java | 5 +- .../docking/widgets/EmptyBorderButton.java | 3 +- .../widgets/fieldpanel/HoverHandler.java | 4 +- .../java/docking/widgets/table/GTable.java | 4 +- .../docking/widgets/table/GTableHeader.java | 5 +- .../widgets/textfield/IntegerTextField.java | 4 +- .../main/java/docking/widgets/tree/GTree.java | 2 +- .../util/task/TaskMonitorComponent.java | 3 +- .../ghidra/graph/viewer/GraphComponent.java | 8 +- ...lGraphEventForwardingGraphMousePlugin.java | 3 +- .../framework/main/EditPluginPathDialog.java | 5 +- .../java/ghidra/framework/main/LogPanel.java | 5 +- .../framework/main/ServerInfoComponent.java | 3 +- .../framework/main/datatree/DataTree.java | 5 +- .../framework/task/gui/GProgressBar.java | 1 - 44 files changed, 144 insertions(+), 328 deletions(-) delete mode 100644 Ghidra/Framework/Docking/src/main/java/docking/ToolTipManager.java diff --git a/Ghidra/Features/Base/src/main/java/ghidra/GhidraRun.java b/Ghidra/Features/Base/src/main/java/ghidra/GhidraRun.java index 09caefd6f0..11977c6713 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/GhidraRun.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/GhidraRun.java @@ -17,11 +17,12 @@ package ghidra; import java.io.File; +import javax.swing.ToolTipManager; + import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import docking.DockingWindowManager; -import docking.ToolTipManager; import docking.framework.SplashScreen; import ghidra.base.help.GhidraHelpService; import ghidra.framework.Application; @@ -131,9 +132,8 @@ public class GhidraRun implements GhidraLaunchable { } private void initializeTooltips() { - ToolTipManager toolTipManager = ToolTipManager.sharedInstance(); - int currentDelay = toolTipManager.getDismissDelay(); - toolTipManager.setDismissDelay(currentDelay * 2); + int currentDelay = ToolTipManager.sharedInstance().getDismissDelay(); + ToolTipManager.sharedInstance().setDismissDelay(currentDelay * 2); } /** diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/CompEditorPanel.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/CompEditorPanel.java index 9e0f360ed9..01c74a299a 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/CompEditorPanel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/CompEditorPanel.java @@ -25,7 +25,6 @@ import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.Document; -import docking.ToolTipManager; import docking.widgets.OptionDialog; import docking.widgets.button.GRadioButton; import docking.widgets.checkbox.GCheckBox; @@ -198,7 +197,7 @@ public class CompEditorPanel extends CompositeEditorPanel { infoPanel.add(nameLabel, gridBagConstraints); nameTextField = new JTextField(""); - ToolTipManager.setToolTipText(nameTextField, "Structure Name"); + nameTextField.setToolTipText("Structure Name"); nameTextField.setEditable(true); nameTextField.setMargin(TEXTFIELD_INSETS); gridBagConstraints.insets = VERTICAL_INSETS; @@ -230,7 +229,7 @@ public class CompEditorPanel extends CompositeEditorPanel { descriptionTextField = new JTextField(""); descriptionTextField.setMargin(TEXTFIELD_INSETS); - ToolTipManager.setToolTipText(descriptionTextField, "Structure Description"); + descriptionTextField.setToolTipText("Structure Description"); descriptionTextField.setEditable(true); gridBagConstraints.insets = VERTICAL_INSETS; gridBagConstraints.anchor = GridBagConstraints.LINE_START; @@ -261,7 +260,7 @@ public class CompEditorPanel extends CompositeEditorPanel { categoryStatusTextField = new JTextField(" "); categoryStatusTextField.setEditable(false); - ToolTipManager.setToolTipText(categoryStatusTextField, + categoryStatusTextField.setToolTipText( "Category of this composite data type."); categoryStatusTextField.setMargin(TEXTFIELD_INSETS); gridBagConstraints.insets = VERTICAL_INSETS; @@ -283,7 +282,7 @@ public class CompEditorPanel extends CompositeEditorPanel { gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 3; internalAlignmentCheckBox.setSelected(model.viewComposite.isInternallyAligned()); - ToolTipManager.setToolTipText(internalAlignmentCheckBox, + internalAlignmentCheckBox.setToolTipText( "Whether or not the internal components of this structure are aligned."); internalAlignmentCheckBox.setEnabled(true); if (helpManager != null) { @@ -401,7 +400,7 @@ public class CompEditorPanel extends CompositeEditorPanel { "" + "Sets this data type to have no minimum alignment
" + "when aligning this data type inside another data type.
" + "Align this data type based only on its components." + ""; - ToolTipManager.setToolTipText(defaultMinAlignButton, alignmentToolTip); + defaultMinAlignButton.setToolTipText(alignmentToolTip); if (helpManager != null) { helpManager.registerHelp(defaultMinAlignButton, new HelpLocation( provider.getHelpTopic(), provider.getHelpName() + "_" + "AlignMinimum")); @@ -413,7 +412,7 @@ public class CompEditorPanel extends CompositeEditorPanel { String alignmentToolTip = "" + "Sets this data type to have a minimum alignment
" + "that is a multiple of the machine alignment
" + "when aligning this data type inside another data type." + ""; - ToolTipManager.setToolTipText(machineMinAlignButton, alignmentToolTip); + machineMinAlignButton.setToolTipText(alignmentToolTip); if (helpManager != null) { helpManager.registerHelp(machineMinAlignButton, new HelpLocation( provider.getHelpTopic(), provider.getHelpName() + "_" + "AlignMinimum")); @@ -425,7 +424,7 @@ public class CompEditorPanel extends CompositeEditorPanel { String alignmentToolTip = "" + "Sets this data type to have a minimum alignment
" + "that is a multiple of the specified value
" + "when aligning this data type inside another data type." + ""; - ToolTipManager.setToolTipText(byValueMinAlignButton, alignmentToolTip); + byValueMinAlignButton.setToolTipText(alignmentToolTip); if (helpManager != null) { helpManager.registerHelp(byValueMinAlignButton, new HelpLocation( provider.getHelpTopic(), provider.getHelpName() + "_" + "AlignMinimum")); @@ -434,7 +433,7 @@ public class CompEditorPanel extends CompositeEditorPanel { minAlignValueTextField.setName("Minimum Alignment Value"); minAlignValueTextField.setEditable(true); minAlignValueTextField.setMargin(TEXTFIELD_INSETS); - ToolTipManager.setToolTipText(minAlignValueTextField, alignmentToolTip); + minAlignValueTextField.setToolTipText(alignmentToolTip); if (helpManager != null) { helpManager.registerHelp(minAlignValueTextField, new HelpLocation( provider.getHelpTopic(), provider.getHelpName() + "_" + "AlignMinimum")); @@ -495,13 +494,13 @@ public class CompEditorPanel extends CompositeEditorPanel { gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 3; - ToolTipManager.setToolTipText(actualAlignmentLabel, actualAlignmentToolTip); + actualAlignmentLabel.setToolTipText(actualAlignmentToolTip); actualAlignmentPanel.add(actualAlignmentLabel, BorderLayout.EAST); infoPanel.add(actualAlignmentPanel, gridBagConstraints); actualAlignmentValueTextField = new JTextField(8); actualAlignmentValueTextField.setText("" + ((CompEditorModel) model).getMinimumAlignment()); - ToolTipManager.setToolTipText(actualAlignmentValueTextField, actualAlignmentToolTip); + actualAlignmentValueTextField.setToolTipText(actualAlignmentToolTip); actualAlignmentValueTextField.setEditable(false); if (helpManager != null) { helpManager.registerHelp(actualAlignmentValueTextField, new HelpLocation( @@ -587,7 +586,7 @@ public class CompEditorPanel extends CompositeEditorPanel { } }); - ToolTipManager.setToolTipText(noPackingButton, packingToolTipText); + noPackingButton.setToolTipText(packingToolTipText); if (helpManager != null) { helpManager.registerHelp(noPackingButton, new HelpLocation(provider.getHelpTopic(), provider.getHelpName() + "_" + "PackMaximum")); @@ -602,7 +601,7 @@ public class CompEditorPanel extends CompositeEditorPanel { "Note: An individual data type's alignment may override this value."; byValuePackingButton.addActionListener(e -> chooseByValuePacking()); - ToolTipManager.setToolTipText(byValuePackingButton, packingToolTipText); + byValuePackingButton.setToolTipText(packingToolTipText); if (helpManager != null) { helpManager.registerHelp(byValuePackingButton, new HelpLocation(provider.getHelpTopic(), provider.getHelpName() + "_" + "PackMaximum")); @@ -630,7 +629,7 @@ public class CompEditorPanel extends CompositeEditorPanel { } }); - ToolTipManager.setToolTipText(packingValueTextField, packingToolTipText); + packingValueTextField.setToolTipText(packingToolTipText); if (helpManager != null) { helpManager.registerHelp(packingValueTextField, new HelpLocation( provider.getHelpTopic(), provider.getHelpName() + "_" + "PackMaximum")); @@ -722,7 +721,7 @@ public class CompEditorPanel extends CompositeEditorPanel { GridBagConstraints gridBagConstraints = new GridBagConstraints(); sizeLabel = new GDLabel("Size:"); - ToolTipManager.setToolTipText(sizeLabel, "The current size in bytes."); + sizeLabel.setToolTipText("The current size in bytes."); gridBagConstraints.anchor = GridBagConstraints.LINE_END; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.gridx = 0; @@ -732,7 +731,7 @@ public class CompEditorPanel extends CompositeEditorPanel { sizeStatusTextField = new JTextField(10); sizeStatusTextField.setName("Total Length"); sizeStatusTextField.setEditable(false); - ToolTipManager.setToolTipText(sizeStatusTextField, "The current size in bytes."); + sizeStatusTextField.setToolTipText("The current size in bytes."); sizeStatusTextField.setMargin(TEXTFIELD_INSETS); gridBagConstraints.ipadx = 60; gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/CompositeEditorPanel.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/CompositeEditorPanel.java index a633a9a407..b5ff867d5a 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/CompositeEditorPanel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/CompositeEditorPanel.java @@ -32,7 +32,6 @@ import javax.swing.event.ChangeEvent; import javax.swing.table.*; import javax.swing.text.JTextComponent; -import docking.ToolTipManager; import docking.action.DockingActionIf; import docking.dnd.*; import docking.help.Help; @@ -647,10 +646,10 @@ public abstract class CompositeEditorPanel extends JPanel messageWidth = fm.stringWidth(text); } if (messageWidth > statusLabel.getWidth()) { - ToolTipManager.setToolTipText(statusLabel, text); + statusLabel.setToolTipText(text); } else { - ToolTipManager.setToolTipText(statusLabel, "Editor messages appear here."); + statusLabel.setToolTipText("Editor messages appear here."); } } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/disassembler/AddressTableDialog.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/disassembler/AddressTableDialog.java index 9acbd77902..192f958ce8 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/disassembler/AddressTableDialog.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/disassembler/AddressTableDialog.java @@ -25,7 +25,6 @@ import javax.swing.event.DocumentListener; import docking.ActionContext; import docking.DialogComponentProvider; -import docking.ToolTipManager; import docking.action.*; import docking.widgets.checkbox.GCheckBox; import docking.widgets.label.GDLabel; @@ -126,7 +125,7 @@ public class AddressTableDialog extends DialogComponentProvider { JPanel makeTablePanel = new JPanel(new FlowLayout()); makeTableButton = new JButton("Make Table"); - ToolTipManager.setToolTipText(makeTableButton, + makeTableButton.setToolTipText( "Make a table of addresses at the selected location(s)."); makeTablePanel.add(makeTableButton); makeTableButton.setEnabled(false); @@ -134,7 +133,7 @@ public class AddressTableDialog extends DialogComponentProvider { JPanel disassemblePanel = new JPanel(new FlowLayout()); disassembleTableButton = new JButton("Disassemble"); - ToolTipManager.setToolTipText(disassembleTableButton, + disassembleTableButton.setToolTipText( "Disassemble at all locations pointed to by the selected address table(s) members."); disassembleTableButton.setEnabled(false); disassemblePanel.add(disassembleTableButton); @@ -152,7 +151,7 @@ public class AddressTableDialog extends DialogComponentProvider { searchOptionsPanel.setBorder(BorderFactory.createTitledBorder("Search Options")); JLabel minLengthLabel = new GLabel("Minimum Length: "); - ToolTipManager.setToolTipText(minLengthLabel, + minLengthLabel.setToolTipText( "The minimum number of consecutive addresses that will make an address table."); minLengthField = new JTextField(5); minLengthField.setName("Minimum Length"); @@ -165,7 +164,7 @@ public class AddressTableDialog extends DialogComponentProvider { alignLabel = new GDLabel("Alignment: "); alignField = new JTextField(5); alignField.setName("Alignment"); - ToolTipManager.setToolTipText(alignLabel, + alignLabel.setToolTipText( "Alignment that address tables and what they are pointing to must satisfy."); int align = plugin.getProgram().getLanguage().getInstructionAlignment(); if (PseudoDisassembler.hasLowBitCodeModeInAddrValues(plugin.getProgram())) { @@ -176,7 +175,7 @@ public class AddressTableDialog extends DialogComponentProvider { skipLabel = new GDLabel("Skip Length: "); skipField = new JTextField(5); skipField.setName("Skip"); - ToolTipManager.setToolTipText(skipLabel, + skipLabel.setToolTipText( "Number of bytes to skip between found addresses in a table."); skipField.setText("0"); @@ -195,7 +194,7 @@ public class AddressTableDialog extends DialogComponentProvider { selectionButton = new GCheckBox("Search Selection"); selectionButton.setSelected(false); - ToolTipManager.setToolTipText(selectionButton, + selectionButton.setToolTipText( "If checked, search only the current selection."); JPanel searchOptionsWestPanel = new JPanel(new GridLayout(2, 1)); searchOptionsWestPanel.add(selectionButton); @@ -213,7 +212,7 @@ public class AddressTableDialog extends DialogComponentProvider { shiftedAddressButton.setVisible(false); } - ToolTipManager.setToolTipText(shiftedAddressButton, + shiftedAddressButton.setToolTipText( "Search for tables of four byte values that when shifted left by two, are valid " + "addresses in the current program."); searchOptionsWestPanel.add(shiftedAddressButton); @@ -230,11 +229,11 @@ public class AddressTableDialog extends DialogComponentProvider { autoLabelCB = new GCheckBox("Auto Label"); autoLabelCB.setSelected(true); autoLabelCB.setEnabled(false); - ToolTipManager.setToolTipText(autoLabelCB, + autoLabelCB.setToolTipText( "Label the top of the address table and all members of the table."); offsetLabel = new GDLabel("Offset: "); - ToolTipManager.setToolTipText(offsetLabel, + offsetLabel.setToolTipText( "Offset from the beginning of the selected table(s)"); offsetLabel.setEnabled(false); @@ -243,7 +242,7 @@ public class AddressTableDialog extends DialogComponentProvider { viewOffset = new HintTextField(20); viewOffset.setName("viewOffset"); - ToolTipManager.setToolTipText(viewOffset, + viewOffset.setToolTipText( "Address of the selected table starting at the given offset"); viewOffset.setHintText("table start address"); viewOffset.showHint(); @@ -257,8 +256,7 @@ public class AddressTableDialog extends DialogComponentProvider { offsetField = new JTextField(2); offsetField.setName("offset"); - ToolTipManager.setToolTipText(offsetField, - "Offset from the beginning of the selected table(s)"); + offsetField.setToolTipText("Offset from the beginning of the selected table(s)"); offsetField.setText("0"); offsetField.setEnabled(false); offsetField.addActionListener( diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/fallthrough/FallThroughDialog.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/fallthrough/FallThroughDialog.java index 489f2966a2..74d62df7c1 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/fallthrough/FallThroughDialog.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/fallthrough/FallThroughDialog.java @@ -26,7 +26,6 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import docking.DialogComponentProvider; -import docking.ToolTipManager; import docking.widgets.button.GRadioButton; import docking.widgets.label.GDLabel; import ghidra.app.util.AddressInput; @@ -239,7 +238,7 @@ class FallThroughDialog extends DialogComponentProvider implements ChangeListene model.defaultSelected(); } }); - ToolTipManager.setToolTipText(defaultRB, "Use default fallthrough address"); + defaultRB.setToolTipText("Use default fallthrough address"); userRB = new GRadioButton("User", false); userRB.addActionListener(new ActionListener() { @@ -248,7 +247,7 @@ class FallThroughDialog extends DialogComponentProvider implements ChangeListene model.userSelected(); } }); - ToolTipManager.setToolTipText(userRB, "Override default fallthrough address"); + userRB.setToolTipText("Override default fallthrough address"); group.add(defaultRB); group.add(userRB); @@ -273,7 +272,7 @@ class FallThroughDialog extends DialogComponentProvider implements ChangeListene else { button = new JButton(altText); } - ToolTipManager.setToolTipText(button, "Go back to home address"); + button.setToolTipText("Go back to home address"); return button; } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/flowarrow/FlowArrowPanel.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/flowarrow/FlowArrowPanel.java index 1e23238a94..a929669206 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/flowarrow/FlowArrowPanel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/flowarrow/FlowArrowPanel.java @@ -20,11 +20,11 @@ import java.awt.event.*; import java.util.Iterator; import javax.swing.JPanel; +import javax.swing.ToolTipManager; import org.jdesktop.animation.timing.Animator; import docking.DockingWindowManager; -import docking.ToolTipManager; import docking.util.AnimationUtils; import docking.util.SwingAnimationCallback; import ghidra.program.model.address.*; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/hover/AbstractHoverProvider.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/hover/AbstractHoverProvider.java index a0b2d1c7e5..3979a6e2a4 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/hover/AbstractHoverProvider.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/hover/AbstractHoverProvider.java @@ -22,7 +22,7 @@ import java.util.List; import javax.swing.*; -import docking.ToolTipManager; +import docking.DockingUtils; import docking.widgets.PopupWindow; import docking.widgets.fieldpanel.field.Field; import docking.widgets.fieldpanel.support.FieldLocation; @@ -104,7 +104,7 @@ public abstract class AbstractHoverProvider implements HoverProvider { activeHoverService = null; lastField = null; - ToolTipManager.sharedInstance().hideTipWindow(); + DockingUtils.hideTipWindow(); if (popupWindow != null) { popupWindow.dispose(); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/marker/MarkerPanel.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/marker/MarkerPanel.java index 2d4d06923f..95af6d1ae5 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/marker/MarkerPanel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/marker/MarkerPanel.java @@ -1,6 +1,5 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +19,7 @@ import java.awt.Graphics; import java.awt.event.MouseEvent; import javax.swing.JPanel; +import javax.swing.ToolTipManager; /** * Panel to display markers. Normally placed to the left hand side @@ -33,7 +33,7 @@ public class MarkerPanel extends JPanel { super(); this.manager = manager; - docking.ToolTipManager.sharedInstance().registerComponent(this); + ToolTipManager.sharedInstance().registerComponent(this); } @Override diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/overview/OverviewColorComponent.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/overview/OverviewColorComponent.java index 785d019084..2130af99e8 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/overview/OverviewColorComponent.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/overview/OverviewColorComponent.java @@ -22,10 +22,8 @@ import java.math.BigInteger; import java.util.Arrays; import java.util.List; -import javax.swing.JComponent; -import javax.swing.JPanel; +import javax.swing.*; -import docking.ToolTipManager; import docking.action.DockingActionIf; import docking.help.Help; import ghidra.app.services.GoToService; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/processors/ShowInstructionInfoPlugin.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/processors/ShowInstructionInfoPlugin.java index 13a4625620..baca88bc12 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/processors/ShowInstructionInfoPlugin.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/processors/ShowInstructionInfoPlugin.java @@ -28,7 +28,6 @@ import javax.swing.JLabel; import javax.swing.JPanel; import docking.ActionContext; -import docking.ToolTipManager; import docking.action.DockingAction; import docking.action.MenuData; import docking.widgets.label.GDLabel; @@ -99,7 +98,7 @@ public class ShowInstructionInfoPlugin extends ProgramPlugin { instructionLabel = new GDLabel(" "); instructionPanel.setPreferredSize( new Dimension(200, instructionLabel.getPreferredSize().height)); - ToolTipManager.setToolTipText(instructionLabel, CURRENT_INSTRUCTION_PREPEND_STRING); + instructionLabel.setToolTipText(CURRENT_INSTRUCTION_PREPEND_STRING); instructionPanel.add(instructionLabel); instructionPanel.setName("Current Instruction"); tool.addStatusComponent(instructionPanel, true, false); @@ -117,7 +116,7 @@ public class ShowInstructionInfoPlugin extends ProgramPlugin { } }); functionPanel.setPreferredSize(new Dimension(130, functionLabel.getPreferredSize().height)); - ToolTipManager.setToolTipText(functionLabel, "Current Function"); + functionLabel.setToolTipText("Current Function"); functionPanel.add(functionLabel); functionPanel.setName("Current Function"); tool.addStatusComponent(functionPanel, true, false); @@ -125,7 +124,7 @@ public class ShowInstructionInfoPlugin extends ProgramPlugin { addressPanel = new JPanel(new BorderLayout()); addressLabel = new GDLabel(" "); addressPanel.setPreferredSize(new Dimension(95, addressLabel.getPreferredSize().height)); - ToolTipManager.setToolTipText(addressLabel, "Current Address"); + addressLabel.setToolTipText("Current Address"); addressPanel.add(addressLabel); addressPanel.setName("Current Address"); tool.addStatusComponent(addressPanel, true, false); @@ -338,25 +337,25 @@ public class ShowInstructionInfoPlugin extends ProgramPlugin { boolean insideFunction = currentFunction != null; if (insideFunction) { functionLabel.setText(" " + currentFunction.getName() + " "); - ToolTipManager.setToolTipText(functionLabel, + functionLabel.setToolTipText( currentFunction.getName() + CURRENT_FUNCTION_APPEND_STRING); } else { functionLabel.setText(""); - ToolTipManager.setToolTipText(functionLabel, ""); + functionLabel.setToolTipText(""); } /// code added // Instruction instr = getInstructionForCurrentProgram(); if (instr == null) { instructionLabel.setText(""); - ToolTipManager.setToolTipText(instructionLabel, ""); + instructionLabel.setToolTipText(""); return; } String representation = instr.toString(); instructionLabel.setText(" " + representation + " "); - ToolTipManager.setToolTipText(instructionLabel, + instructionLabel.setToolTipText( CURRENT_INSTRUCTION_PREPEND_STRING + representation); // end code added /// @@ -381,7 +380,7 @@ public class ShowInstructionInfoPlugin extends ProgramPlugin { @Override protected void programDeactivated(Program program) { instructionLabel.setText(""); - ToolTipManager.setToolTipText(instructionLabel, ""); + instructionLabel.setToolTipText(""); if (connectedProvider != null) { connectedProvider.setProgram(null); } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/progmgr/TransactionMonitor.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/progmgr/TransactionMonitor.java index 6676640558..eda5259631 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/progmgr/TransactionMonitor.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/progmgr/TransactionMonitor.java @@ -15,21 +15,19 @@ */ package ghidra.app.plugin.core.progmgr; +import java.awt.Dimension; +import java.awt.Graphics; +import java.util.Iterator; +import java.util.List; + +import javax.swing.*; + import ghidra.framework.data.DomainObjectAdapterDB; import ghidra.framework.model.Transaction; import ghidra.framework.model.TransactionListener; import ghidra.program.database.ProgramDB; import ghidra.program.model.listing.Program; import ghidra.util.HTMLUtilities; - -import java.awt.Dimension; -import java.awt.Graphics; -import java.util.Iterator; -import java.util.List; - -import javax.swing.ImageIcon; -import javax.swing.JComponent; - import resources.ResourceManager; class TransactionMonitor extends JComponent implements TransactionListener { @@ -44,7 +42,7 @@ class TransactionMonitor extends JComponent implements TransactionListener { super(); busyIcon = ResourceManager.loadImage("images/editbytes.gif"); prefSize = new Dimension(busyIcon.getIconWidth(), busyIcon.getIconHeight()); - docking.ToolTipManager.sharedInstance().registerComponent(this); + ToolTipManager.sharedInstance().registerComponent(this); } void setProgram(Program p) { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/programtree/DnDTreeCellRenderer.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/programtree/DnDTreeCellRenderer.java index e4d2bf9ea3..bc28bf23ab 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/programtree/DnDTreeCellRenderer.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/programtree/DnDTreeCellRenderer.java @@ -22,7 +22,6 @@ import java.util.*; import javax.swing.*; import javax.swing.tree.DefaultTreeCellRenderer; -import docking.ToolTipManager; import docking.widgets.GComponent; import ghidra.program.model.listing.Group; import resources.ResourceManager; @@ -163,12 +162,12 @@ class DnDTreeCellRenderer extends DefaultTreeCellRenderer { setBackgroundSelectionColor(defaultSelectionColor); setBackgroundNonSelectionColor(defaultNonSelectionColor); } - ToolTipManager.setToolTipText(this, null); + setToolTipText(null); } else { setBackgroundSelectionColor(defaultSelectionColor); setBackgroundNonSelectionColor(defaultNonSelectionColor); - ToolTipManager.setToolTipText(this, dtree.getToolTipText(node)); + setToolTipText(dtree.getToolTipText(node)); } } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/programtree/DragNDropTree.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/programtree/DragNDropTree.java index 9b8aa1663b..8f719016f8 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/programtree/DragNDropTree.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/programtree/DragNDropTree.java @@ -1,6 +1,5 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -85,7 +84,7 @@ public abstract class DragNDropTree extends JTree implements Draggable, Droppabl plafSelectionColor = dndCellRenderer.getBackgroundSelectionColor(); nonSelectionDragColor = new Color(204, 204, 255); initDragNDrop(); - docking.ToolTipManager.sharedInstance().registerComponent(this); + ToolTipManager.sharedInstance().registerComponent(this); autoscroller = new AutoscrollAdapter(this, getRowHeight()); disableJTreeTransferActions(); } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/references/EditExternalReferencePanel.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/references/EditExternalReferencePanel.java index 59c371d648..1e4a5ca069 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/references/EditExternalReferencePanel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/references/EditExternalReferencePanel.java @@ -25,7 +25,6 @@ import javax.swing.border.*; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import docking.ToolTipManager; import docking.widgets.combobox.GhidraComboBox; import docking.widgets.label.GLabel; import ghidra.app.util.AddressInput; @@ -103,7 +102,7 @@ class EditExternalReferencePanel extends EditReferencePanel { extLibPath.setFocusable(false); clearButton = new JButton("Clear"); - ToolTipManager.setToolTipText(clearButton, "Remove Link to External Program"); + clearButton.setToolTipText("Remove Link to External Program"); clearButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -112,7 +111,7 @@ class EditExternalReferencePanel extends EditReferencePanel { }); editButton = new JButton("Edit"); - ToolTipManager.setToolTipText(editButton, "Edit Link to External Program"); + editButton.setToolTipText("Edit Link to External Program"); editButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/references/EditReferencesProvider.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/references/EditReferencesProvider.java index 29e06b5a6d..c9b8cafe75 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/references/EditReferencesProvider.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/references/EditReferencesProvider.java @@ -668,7 +668,7 @@ public class EditReferencesProvider extends ComponentProviderAdapter col.setMaxWidth(80); col.setResizable(false); - docking.ToolTipManager.sharedInstance().registerComponent(refsTable); + ToolTipManager.sharedInstance().registerComponent(refsTable); dropTargetAdapter = new DropTgtAdapter(dropHandler, DnDConstants.ACTION_COPY_OR_MOVE, ACCEPTABLE_DROP_FLAVORS); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/references/ExternalReferencesProvider.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/references/ExternalReferencesProvider.java index d2e760ae4e..f9cea1b307 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/references/ExternalReferencesProvider.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/references/ExternalReferencesProvider.java @@ -146,7 +146,7 @@ public class ExternalReferencesProvider extends ComponentProviderAdapter { JScrollPane sp = new JScrollPane(table); table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); - docking.ToolTipManager.sharedInstance().registerComponent(table); + ToolTipManager.sharedInstance().registerComponent(table); panel.add(sp, BorderLayout.CENTER); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/reloc/RelocationProvider.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/reloc/RelocationProvider.java index 032ac59df7..86e3a8cf40 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/reloc/RelocationProvider.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/reloc/RelocationProvider.java @@ -86,7 +86,7 @@ class RelocationProvider extends ComponentProviderAdapter { table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); table.setAutoResizeMode(JTable.AUTO_RESIZE_NEXT_COLUMN); - docking.ToolTipManager.sharedInstance().registerComponent(table); + ToolTipManager.sharedInstance().registerComponent(table); panel.add(threadedPanel, BorderLayout.CENTER); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/symboltree/EditExternalLocationPanel.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/symboltree/EditExternalLocationPanel.java index 6770d1ba47..22ec6f7d04 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/symboltree/EditExternalLocationPanel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/symboltree/EditExternalLocationPanel.java @@ -26,7 +26,6 @@ import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import docking.DockingWindowManager; -import docking.ToolTipManager; import docking.widgets.OptionDialog; import docking.widgets.checkbox.GCheckBox; import docking.widgets.combobox.GhidraComboBox; @@ -155,11 +154,11 @@ class EditExternalLocationPanel extends JPanel { extLibPathTextField.setFocusable(false); clearButton = new JButton("Clear"); - ToolTipManager.setToolTipText(clearButton, "Remove Link to External Program"); + clearButton.setToolTipText("Remove Link to External Program"); clearButton.addActionListener(e -> extLibPathTextField.setText(null)); editButton = new JButton("Edit"); - ToolTipManager.setToolTipText(editButton, "Edit Link to External Program"); + editButton.setToolTipText("Edit Link to External Program"); editButton.addActionListener(e -> popupProgramChooser()); JPanel pathPanel = new JPanel(new BorderLayout()); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/AddressFieldOptionsPropertyEditor.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/AddressFieldOptionsPropertyEditor.java index a445d37095..ba597aaad8 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/AddressFieldOptionsPropertyEditor.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/AddressFieldOptionsPropertyEditor.java @@ -19,9 +19,9 @@ import java.awt.Component; import java.beans.PropertyEditorSupport; import java.math.BigInteger; -import javax.swing.*; +import javax.swing.JPanel; +import javax.swing.SwingConstants; -import docking.ToolTipManager; import docking.widgets.checkbox.GCheckBox; import docking.widgets.combobox.GhidraComboBox; import docking.widgets.label.GDLabel; @@ -63,9 +63,9 @@ public class AddressFieldOptionsPropertyEditor extends PropertyEditorSupport private AddressFieldOptionsWrappedOption addressFieldOptionsWrappedOption; private Component editorComponent; - private JCheckBox padCheckBox; + private GCheckBox padCheckBox; private IntegerTextField minDigitsField; - private JCheckBox showBlocknameCheckbox; + private GCheckBox showBlocknameCheckbox; private GhidraComboBox justificationCombobox; public AddressFieldOptionsPropertyEditor() { @@ -76,38 +76,38 @@ public class AddressFieldOptionsPropertyEditor extends PropertyEditorSupport // we want to have a panel with our options so that we may group them together JPanel panel = new JPanel(new PairLayout(6, 10)); - JLabel label = new GDLabel(SHOW_BLOCK_NAME_LABEL, SwingConstants.RIGHT); - ToolTipManager.setToolTipText(label, SHOW_BLOCKNAME_TOOLTIP); + GDLabel label = new GDLabel(SHOW_BLOCK_NAME_LABEL, SwingConstants.RIGHT); + label.setToolTipText(SHOW_BLOCKNAME_TOOLTIP); panel.add(label); showBlocknameCheckbox = new GCheckBox(); - ToolTipManager.setToolTipText(showBlocknameCheckbox, SHOW_BLOCKNAME_TOOLTIP); + showBlocknameCheckbox.setToolTipText(SHOW_BLOCKNAME_TOOLTIP); panel.add(showBlocknameCheckbox); // the namespace checkbox will disable the text field options when it is not used label = new GDLabel(PADDING_LABEL, SwingConstants.RIGHT); - ToolTipManager.setToolTipText(label, ADDRESS_PADDING_TOOLTIP); + label.setToolTipText(ADDRESS_PADDING_TOOLTIP); panel.add(label); padCheckBox = new GCheckBox(); panel.add(padCheckBox); padCheckBox.setSelected(false); - ToolTipManager.setToolTipText(padCheckBox, ADDRESS_PADDING_TOOLTIP); + padCheckBox.setToolTipText(ADDRESS_PADDING_TOOLTIP); label = new GDLabel(ADDRESS_DIGITS_LABEL, SwingConstants.RIGHT); - ToolTipManager.setToolTipText(label, MIN_HEX_DIGITS_TOOLTIP); + label.setToolTipText(MIN_HEX_DIGITS_TOOLTIP); panel.add(label); minDigitsField = new IntegerTextField(2); minDigitsField.setAllowNegativeValues(false); minDigitsField.setDecimalMode(); minDigitsField.setMaxValue(BigInteger.valueOf(32)); - ToolTipManager.setToolTipText(minDigitsField.getComponent(), MIN_HEX_DIGITS_TOOLTIP); + minDigitsField.getComponent().setToolTipText(MIN_HEX_DIGITS_TOOLTIP); panel.add(minDigitsField.getComponent()); label = new GDLabel(JUSTIFICATION_LABEL, SwingConstants.RIGHT); - ToolTipManager.setToolTipText(label, RIGHT_JUSTIFY_TOOLTIP); + label.setToolTipText(RIGHT_JUSTIFY_TOOLTIP); panel.add(label); justificationCombobox = new GhidraComboBox<>(new String[] { "Left", "Right" }); - ToolTipManager.setToolTipText(justificationCombobox, RIGHT_JUSTIFY_TOOLTIP); + justificationCombobox.setToolTipText(RIGHT_JUSTIFY_TOOLTIP); panel.add(justificationCombobox); showBlocknameCheckbox.addItemListener(evt -> firePropertyChange()); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/ArrayElementPropertyEditor.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/ArrayElementPropertyEditor.java index e2993f191d..e3c636dcf9 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/ArrayElementPropertyEditor.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/ArrayElementPropertyEditor.java @@ -26,7 +26,6 @@ import javax.swing.border.TitledBorder; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import docking.ToolTipManager; import docking.widgets.checkbox.GCheckBox; import docking.widgets.label.GDLabel; import docking.widgets.textfield.IntegerTextField; @@ -69,13 +68,13 @@ public class ArrayElementPropertyEditor extends PropertyEditorSupport // the namespace checkbox will disable the text field options when it is not used groupElementsCheckBox = new GCheckBox(SHOW_MULTI_ELEMENTS_LABEL); groupElementsCheckBox.setSelected(true); - ToolTipManager.setToolTipText(groupElementsCheckBox, SHOW_MULTI_ELEMENTS_TOOLTIP); + groupElementsCheckBox.setToolTipText(SHOW_MULTI_ELEMENTS_TOOLTIP); panel.add(groupElementsCheckBox); elementsPerLineField = createLocalPrefixTextField(GROUP_SIZE_LABEL, GROUP_SIZE_LABEL_TOOLTIP, panel); - ToolTipManager.setToolTipText(elementsLabel, GROUP_SIZE_LABEL_TOOLTIP); + elementsLabel.setToolTipText(GROUP_SIZE_LABEL_TOOLTIP); groupElementsCheckBox.addItemListener(new ItemListener() { @Override diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/NamespacePropertyEditor.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/NamespacePropertyEditor.java index 62db359cc6..6b4741d4b7 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/NamespacePropertyEditor.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/NamespacePropertyEditor.java @@ -24,7 +24,6 @@ import javax.swing.border.TitledBorder; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import docking.ToolTipManager; import docking.widgets.checkbox.GCheckBox; import ghidra.framework.options.CustomOptionsEditor; import ghidra.util.HTMLUtilities; @@ -76,15 +75,15 @@ public class NamespacePropertyEditor extends PropertyEditorSupport implements Cu // the namespace checkbox will disable the text field options when it is not used showNonLocalCheckBox = new GCheckBox(DISPLAY_NON_LOCAL_NAMESPACE_LABEL); showNonLocalCheckBox.setSelected(false); - ToolTipManager.setToolTipText(showNonLocalCheckBox, SHOW_NON_LOCAL_NAMESPACE_TOOLTIP); + showNonLocalCheckBox.setToolTipText(SHOW_NON_LOCAL_NAMESPACE_TOOLTIP); showLocalCheckBox = new GCheckBox(DISPLAY_LOCAL_NAMESPACE_LABEL); showLocalCheckBox.setSelected(false); - ToolTipManager.setToolTipText(showLocalCheckBox, SHOW_LOCAL_NAMESPACE_TOOLTIP); + showLocalCheckBox.setToolTipText(SHOW_LOCAL_NAMESPACE_TOOLTIP); showLibraryInNamespaceCheckBox = new GCheckBox(DISPLAY_LIBRARY_IN_NAMESPACE_LABEL); showLibraryInNamespaceCheckBox.setSelected(true); - ToolTipManager.setToolTipText(showLocalCheckBox, SHOW_LIBRARY_IN_NAMESPACE_TOOLTIP); + showLocalCheckBox.setToolTipText(SHOW_LIBRARY_IN_NAMESPACE_TOOLTIP); panel.add(showNonLocalCheckBox); panel.add(showLocalCheckBox); @@ -118,7 +117,7 @@ public class NamespacePropertyEditor extends PropertyEditorSupport implements Cu textFieldPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0)); useLocalPrefixCheckBox = new GCheckBox("Use Local Namespace Override"); - ToolTipManager.setToolTipText(useLocalPrefixCheckBox, tooltipText); + useLocalPrefixCheckBox.setToolTipText(tooltipText); useLocalPrefixCheckBox.addItemListener(e -> { textField.setEnabled(useLocalPrefixCheckBox.isSelected()); firePropertyChange(); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/util/ManualViewerCommandEditor.java b/Ghidra/Features/Base/src/main/java/ghidra/util/ManualViewerCommandEditor.java index 1946d36664..06540942bc 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/util/ManualViewerCommandEditor.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/util/ManualViewerCommandEditor.java @@ -27,7 +27,6 @@ import javax.swing.border.BevelBorder; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import docking.ToolTipManager; import docking.widgets.combobox.GComboBox; import docking.widgets.label.GDLabel; import ghidra.framework.options.CustomOptionsEditor; @@ -206,15 +205,15 @@ public class ManualViewerCommandEditor extends PropertyEditorSupport workPanel.setLayout(new PairLayout()); JLabel commandLabel = new GDLabel(COMMAND_STRING_LABEL); - ToolTipManager.setToolTipText(commandLabel, COMMAND_STRING_DESCRIPTION); + commandLabel.setToolTipText(COMMAND_STRING_DESCRIPTION); commandField = new JTextField(30); JLabel argumentsLabel = new GDLabel(COMMAND_ARGUMENTS_LABEL); - ToolTipManager.setToolTipText(argumentsLabel, COMMAND_ARGUMENTS_DESCRIPTION); + argumentsLabel.setToolTipText(COMMAND_ARGUMENTS_DESCRIPTION); argumentsField = new JTextField(20); JLabel formatLabel = new GDLabel(FILE_FORMAT_LABEL); - ToolTipManager.setToolTipText(formatLabel, FILE_FORMAT_DESCRIPTION); + formatLabel.setToolTipText(FILE_FORMAT_DESCRIPTION); fileFormatComboBox = new GComboBox<>(); fileFormatComboBox.addItem( ManualViewerCommandWrappedOption.HTTP_URL_REPLACEMENT_STRING); diff --git a/Ghidra/Features/ProgramDiff/src/main/java/ghidra/app/plugin/core/diff/ExecuteDiffDialog.java b/Ghidra/Features/ProgramDiff/src/main/java/ghidra/app/plugin/core/diff/ExecuteDiffDialog.java index ce9e39eefc..744f4d4f3f 100644 --- a/Ghidra/Features/ProgramDiff/src/main/java/ghidra/app/plugin/core/diff/ExecuteDiffDialog.java +++ b/Ghidra/Features/ProgramDiff/src/main/java/ghidra/app/plugin/core/diff/ExecuteDiffDialog.java @@ -25,7 +25,6 @@ import javax.swing.border.TitledBorder; import docking.DialogComponentProvider; import docking.DockingUtils; -import docking.ToolTipManager; import docking.widgets.checkbox.GCheckBox; import ghidra.program.model.address.*; import ghidra.program.model.listing.Program; @@ -180,7 +179,7 @@ public class ExecuteDiffDialog extends DialogComponentProvider { limitToSelectionCB = new GCheckBox("Limit To Selection"); limitToSelectionCB.setName("LimitToSelectionDiffCB"); - ToolTipManager.setToolTipText(limitToSelectionCB, "Limits the Diff to the selection."); + limitToSelectionCB.setToolTipText("Limits the Diff to the selection."); limitToSelectionCB.addActionListener(ev -> { limitToSelection = limitToSelectionCB.isSelected(); updateDiffSetText(); @@ -197,7 +196,7 @@ public class ExecuteDiffDialog extends DialogComponentProvider { */ private JPanel createDiffFilterPanel() { JPanel checkBoxPanel = new JPanel(); - ToolTipManager.setToolTipText(checkBoxPanel, + checkBoxPanel.setToolTipText( "Check the types of differences between the two " + "programs that you want detected and highlighted."); @@ -238,7 +237,7 @@ public class ExecuteDiffDialog extends DialogComponentProvider { private void createBytesCheckBox() { diffBytesCB = new GCheckBox("Bytes", diffBytes); diffBytesCB.setName("BytesDiffCB"); - ToolTipManager.setToolTipText(diffBytesCB, "Highlight byte differences."); + diffBytesCB.setToolTipText("Highlight byte differences."); diffBytesCB.addItemListener(event -> { diffBytes = (event.getStateChange() == ItemEvent.SELECTED); diffFilter.setFilter(ProgramDiffFilter.BYTE_DIFFS, diffBytes); @@ -249,7 +248,7 @@ public class ExecuteDiffDialog extends DialogComponentProvider { private void createLabelsCheckBox() { diffLabelsCB = new GCheckBox("Labels", diffLabels); diffLabelsCB.setName("LabelsDiffCB"); - ToolTipManager.setToolTipText(diffLabelsCB, "Highlight label differences."); + diffLabelsCB.setToolTipText("Highlight label differences."); diffLabelsCB.addItemListener(event -> { diffLabels = (event.getStateChange() == ItemEvent.SELECTED); diffFilter.setFilter(ProgramDiffFilter.SYMBOL_DIFFS, diffLabels); @@ -260,7 +259,7 @@ public class ExecuteDiffDialog extends DialogComponentProvider { private void createCodeUnitsCheckBox() { diffCodeUnitsCB = new GCheckBox("Code Units", diffCodeUnits); diffCodeUnitsCB.setName("CodeUnitsDiffCB"); - ToolTipManager.setToolTipText(diffCodeUnitsCB, + diffCodeUnitsCB.setToolTipText( "Highlight the instruction, data, " + "and equate differences."); diffCodeUnitsCB.addItemListener(event -> { diffCodeUnits = (event.getStateChange() == ItemEvent.SELECTED); @@ -273,7 +272,7 @@ public class ExecuteDiffDialog extends DialogComponentProvider { private void createReferencesCheckBox() { diffReferencesCB = new GCheckBox("References", diffReferences); diffReferencesCB.setName("ReferencesDiffCB"); - ToolTipManager.setToolTipText(diffReferencesCB, "Highlight the reference differences."); + diffReferencesCB.setToolTipText("Highlight the reference differences."); diffReferencesCB.addItemListener(event -> { diffReferences = (event.getStateChange() == ItemEvent.SELECTED); diffFilter.setFilter(ProgramDiffFilter.REFERENCE_DIFFS, diffReferences); @@ -284,8 +283,7 @@ public class ExecuteDiffDialog extends DialogComponentProvider { private void createProgramContextCheckBox() { diffProgramContextCB = new GCheckBox("Program Context", diffProgramContext); diffProgramContextCB.setName("ProgramContextDiffCB"); - ToolTipManager.setToolTipText(diffProgramContextCB, - "Highlight the program context register differences."); + diffProgramContextCB.setToolTipText("Highlight the program context register differences."); diffProgramContextCB.addItemListener(event -> { diffProgramContext = (event.getStateChange() == ItemEvent.SELECTED); diffFilter.setFilter(ProgramDiffFilter.PROGRAM_CONTEXT_DIFFS, diffProgramContext); @@ -296,7 +294,7 @@ public class ExecuteDiffDialog extends DialogComponentProvider { private void createCommentsCheckBox() { diffCommentsCB = new GCheckBox("Comments", diffComments); diffCommentsCB.setName("CommentsDiffCB"); - ToolTipManager.setToolTipText(diffCommentsCB, "Highlight comment differences."); + diffCommentsCB.setToolTipText("Highlight comment differences."); diffCommentsCB.addItemListener(event -> { diffComments = (event.getStateChange() == ItemEvent.SELECTED); diffFilter.setFilter(ProgramDiffFilter.COMMENT_DIFFS, diffComments); @@ -307,7 +305,7 @@ public class ExecuteDiffDialog extends DialogComponentProvider { private void createBookmarksCheckBox() { diffBookmarksCB = new GCheckBox("Bookmarks", diffBookmarks); diffBookmarksCB.setName("BookmarksDiffCB"); - ToolTipManager.setToolTipText(diffBookmarksCB, + diffBookmarksCB.setToolTipText( "Highlight bookmark differences. " + "(for example, bookmark differences)"); diffBookmarksCB.addItemListener(event -> { diffBookmarks = (event.getStateChange() == ItemEvent.SELECTED); @@ -319,8 +317,7 @@ public class ExecuteDiffDialog extends DialogComponentProvider { private void createPropertiesCheckBox() { diffPropertiesCB = new GCheckBox("Properties", diffProperties); diffPropertiesCB.setName("PropertiesDiffCB"); - ToolTipManager.setToolTipText(diffPropertiesCB, - "Highlight user defined property differences. " + + diffPropertiesCB.setToolTipText("Highlight user defined property differences. " + "(for example, Format (space) differences)"); diffPropertiesCB.addItemListener(event -> { diffProperties = (event.getStateChange() == ItemEvent.SELECTED); @@ -332,7 +329,7 @@ public class ExecuteDiffDialog extends DialogComponentProvider { private void createFunctionsCheckBox() { diffFunctionsCB = new GCheckBox("Functions", diffFunctions); diffFunctionsCB.setName("FunctionsDiffCB"); - ToolTipManager.setToolTipText(diffFunctionsCB, "Highlight function differences."); + diffFunctionsCB.setToolTipText("Highlight function differences."); diffFunctionsCB.addItemListener(event -> { diffFunctions = (event.getStateChange() == ItemEvent.SELECTED); // Functions check box controls both functions and function tags. diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/functionassociation/VTFunctionAssociationProvider.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/functionassociation/VTFunctionAssociationProvider.java index d3ac427273..4ba5afdf90 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/functionassociation/VTFunctionAssociationProvider.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/functionassociation/VTFunctionAssociationProvider.java @@ -29,7 +29,6 @@ import javax.swing.event.TableModelListener; import javax.swing.table.JTableHeader; import docking.ActionContext; -import docking.ToolTipManager; import docking.WindowPosition; import docking.action.*; import docking.menu.ActionState; @@ -629,10 +628,10 @@ public class VTFunctionAssociationProvider extends ComponentProviderAdapter messageWidth = fm.stringWidth(text); } if (messageWidth > statusLabel.getWidth()) { - ToolTipManager.setToolTipText(statusLabel, text); + statusLabel.setToolTipText(text); } else { - ToolTipManager.setToolTipText(statusLabel, null); + statusLabel.setToolTipText(null); } } diff --git a/Ghidra/Framework/Docking/src/main/java/docking/DialogComponentProvider.java b/Ghidra/Framework/Docking/src/main/java/docking/DialogComponentProvider.java index da56f6ec0e..6eb101f083 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/DialogComponentProvider.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/DialogComponentProvider.java @@ -490,7 +490,7 @@ public class DialogComponentProvider */ protected void setApplyToolTip(String tooltip) { if (applyButton != null) { - ToolTipManager.setToolTipText(applyButton, tooltip); + applyButton.setToolTipText(tooltip); } } @@ -506,7 +506,7 @@ public class DialogComponentProvider */ protected void setOkToolTip(String tooltip) { if (okButton != null) { - ToolTipManager.setToolTipText(okButton, tooltip); + okButton.setToolTipText(tooltip); } } @@ -516,7 +516,7 @@ public class DialogComponentProvider */ protected void setCancelToolTip(String tooltip) { if (cancelButton != null) { - ToolTipManager.setToolTipText(cancelButton, tooltip); + cancelButton.setToolTipText(tooltip); } } @@ -532,7 +532,7 @@ public class DialogComponentProvider */ protected void setDismissToolTip(String tooltip) { if (dismissButton != null) { - ToolTipManager.setToolTipText(dismissButton, tooltip); + dismissButton.setToolTipText(tooltip); } } @@ -785,10 +785,10 @@ public class DialogComponentProvider messageWidth = fm.stringWidth(text); } if (messageWidth > statusLabel.getWidth()) { - ToolTipManager.setToolTipText(statusLabel, text); + statusLabel.setToolTipText(text); } else { - ToolTipManager.setToolTipText(statusLabel, null); + statusLabel.setToolTipText(null); } } diff --git a/Ghidra/Framework/Docking/src/main/java/docking/DockingUtils.java b/Ghidra/Framework/Docking/src/main/java/docking/DockingUtils.java index eea6e6e833..3d598ac547 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/DockingUtils.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/DockingUtils.java @@ -351,4 +351,14 @@ public class DockingUtils { c.setBackground(new Color(0, 0, 0, 0)); } + /** Hides any open tooltip window */ + public static void hideTipWindow() { + // This is a hack, since Java's manager doesn't have this method + javax.swing.ToolTipManager.sharedInstance().setEnabled(false); + javax.swing.ToolTipManager.sharedInstance().setEnabled(true); + +// TODO: Ultimately, the ESCAPE key binding in the Java TTM should hide any visible tooltips. We +// need to look into why this isn't working. + } + } diff --git a/Ghidra/Framework/Docking/src/main/java/docking/EmptyBorderToggleButton.java b/Ghidra/Framework/Docking/src/main/java/docking/EmptyBorderToggleButton.java index 0c4dc6dc0f..52bfd73ee4 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/EmptyBorderToggleButton.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/EmptyBorderToggleButton.java @@ -111,7 +111,7 @@ public class EmptyBorderToggleButton extends EmptyBorderButton { setEnabled(((Boolean) e.getNewValue()).booleanValue()); } else if (name.equals(Action.SHORT_DESCRIPTION)) { - ToolTipManager.setToolTipText(this, (String) e.getNewValue()); + setToolTipText((String) e.getNewValue()); } else if (name.equals(Action.SMALL_ICON)) { setIcon((Icon) e.getNewValue()); diff --git a/Ghidra/Framework/Docking/src/main/java/docking/GenericHeader.java b/Ghidra/Framework/Docking/src/main/java/docking/GenericHeader.java index abca893d8b..7ec1df35b6 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/GenericHeader.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/GenericHeader.java @@ -386,7 +386,7 @@ public class GenericHeader extends JPanel { */ void setTitle(String s) { titleLabel.setText(s); - ToolTipManager.setToolTipText(titleLabel, s); + titleLabel.setToolTipText(s); } /** diff --git a/Ghidra/Framework/Docking/src/main/java/docking/ToolTipManager.java b/Ghidra/Framework/Docking/src/main/java/docking/ToolTipManager.java deleted file mode 100644 index a78c9c8a25..0000000000 --- a/Ghidra/Framework/Docking/src/main/java/docking/ToolTipManager.java +++ /dev/null @@ -1,161 +0,0 @@ -/* ### - * IP: GHIDRA - * REVIEWED: YES - * - * 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. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package docking; - -import javax.swing.JComponent; - -/** - * A tooltip manager that simply delegates to the Swing tooltip manager. This class replaces - * the previous tooltip manager that overrode much of the Swing tooltip manager's functionality. - */ -public class ToolTipManager { - - private javax.swing.ToolTipManager delegate = javax.swing.ToolTipManager.sharedInstance(); - - private static ToolTipManager sharedInstance = new ToolTipManager(); - - /** - * Registers a component for tooltip management. - *

- * This will register key bindings to show and hide the tooltip text - * only if component has focus bindings. This is done - * so that components that are not normally focus traversable, such - * as JLabel, are not made focus traversable as a result - * of invoking this method. - * - * @param component a JComponent object to add - * @see JComponent#isFocusTraversable - */ - public void registerComponent(JComponent component) { - delegate.registerComponent( component ); - } - - /** - * Removes a component from tooltip control. - * - * @param component a JComponent object to remove - */ - public void unregisterComponent(JComponent component) { - delegate.unregisterComponent( component ); - } - - public int getDismissDelay() { - return delegate.getDismissDelay(); - } - - public int getReshowDelay() { - return delegate.getReshowDelay(); - } - - public boolean isEnabled() { - return delegate.isEnabled(); - } - - public int getInitialDelay() { - return delegate.getInitialDelay(); - } - - public boolean isLightWeightPopupEnabled() { - return delegate.isLightWeightPopupEnabled(); - } - - public void setLightWeightPopupEnabled( boolean aFlag ) { - delegate.setLightWeightPopupEnabled( aFlag ); - } - - @Override - public String toString() { - return delegate.toString(); - } - - public static void setToolTipText( JComponent c, String text ) { - String oldText = (String) c.getClientProperty(JComponent.TOOL_TIP_TEXT_KEY); - c.putClientProperty(JComponent.TOOL_TIP_TEXT_KEY, text); - if (text != null) { - if (oldText == null) { - sharedInstance.registerComponent(c); - } - } else { - sharedInstance.unregisterComponent(c); - } - } - - public static ToolTipManager sharedInstance() { - javax.swing.ToolTipManager.sharedInstance(); - return sharedInstance; - } - - /** - * Enables or disables the tooltip. - * - * @param flag true to enable the tip, false otherwise - */ - public void setEnabled( boolean flag ) { - delegate.setEnabled( flag ); - } - - /** - * Specifies the initial delay value. - * - * @param milliseconds the number of milliseconds to delay - * (after the cursor has paused) before displaying the - * tooltip - * @see #getInitialDelay - */ - public void setInitialDelay( int milliseconds ) { - delegate.setInitialDelay( milliseconds ); - } - - /** - * Specifies the dismissal delay value. - * - * @param milliseconds the number of milliseconds to delay - * before taking away the tooltip - * @see #getDismissDelay - */ - public void setDismissDelay( int milliseconds ) { - delegate.setDismissDelay( milliseconds ); - } - - /** - * Used to specify the amount of time before the user has to wait - * initialDelay milliseconds before a tooltip will be - * shown. That is, if the tooltip is hidden, and the user moves into - * a region of the same Component that has a valid tooltip within - * milliseconds milliseconds the tooltip will immediately - * be shown. Otherwise, if the user moves into a region with a valid - * tooltip after milliseconds milliseconds, the user - * will have to wait an additional initialDelay - * milliseconds before the tooltip is shown again. - * - * @param milliseconds time in milliseconds - * @see #getReshowDelay - */ - public void setReshowDelay( int milliseconds ) { - delegate.setReshowDelay( milliseconds ); - } - - /** Hides any open tooltip window */ - public void hideTipWindow() { - // This is a hack, since Java's manager doesn't have this method - delegate.setEnabled( false ); - delegate.setEnabled( true ); - -// TODO: Ultimately, the ESCAPE key binding in the Java TTM should hide any visible tooltips. We -// need to look into why this isn't working. - } -} diff --git a/Ghidra/Framework/Docking/src/main/java/docking/options/editor/DefaultOptionComponent.java b/Ghidra/Framework/Docking/src/main/java/docking/options/editor/DefaultOptionComponent.java index 022d5be342..9e821c42ba 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/options/editor/DefaultOptionComponent.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/options/editor/DefaultOptionComponent.java @@ -22,7 +22,6 @@ import java.awt.event.MouseEvent; import javax.swing.*; -import docking.ToolTipManager; import docking.widgets.label.GDLabel; import ghidra.framework.options.EditorState; import ghidra.util.HTMLUtilities; @@ -56,9 +55,9 @@ public class DefaultOptionComponent extends GenericOptionsComponent { String description = editorState.getDescription(); if (description != null) { String htmlDescription = HTMLUtilities.toWrappedHTML(description); - ToolTipManager.setToolTipText(label, htmlDescription); + label.setToolTipText(htmlDescription); if (component instanceof JComponent) { - ToolTipManager.setToolTipText((JComponent) component, htmlDescription); + ((JComponent) component).setToolTipText(htmlDescription); } } add(label); diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/EmptyBorderButton.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/EmptyBorderButton.java index 03dd5b86e0..8eb0260bba 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/EmptyBorderButton.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/EmptyBorderButton.java @@ -24,9 +24,8 @@ import javax.swing.border.EmptyBorder; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import resources.ResourceManager; -import docking.ToolTipManager; import ghidra.docking.util.DockingWindowsLookAndFeelUtils; +import resources.ResourceManager; /** * Class that is a JButton that has an empty border and adds a mouse listener diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/HoverHandler.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/HoverHandler.java index 24923c224c..bb40239a11 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/HoverHandler.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/HoverHandler.java @@ -1,6 +1,5 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +19,7 @@ import java.awt.Rectangle; import java.awt.event.*; import javax.swing.Timer; +import javax.swing.ToolTipManager; import docking.widgets.fieldpanel.field.Field; import docking.widgets.fieldpanel.support.FieldLocation; @@ -63,7 +63,7 @@ public class HoverHandler implements ActionListener { public void setHoverProvider(HoverProvider hoverProvider) { this.hoverProvider = hoverProvider; if (hoverProvider != null && hoverTimer == null) { - int timeout = docking.ToolTipManager.sharedInstance().getInitialDelay(); + int timeout = ToolTipManager.sharedInstance().getInitialDelay(); hoverTimer = new Timer(timeout, this); hoverTimer.setRepeats(false); hoverTimer.stop(); diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTable.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTable.java index 3c2c08bfdf..3d31f624b7 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTable.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTable.java @@ -551,8 +551,8 @@ public class GTable extends JTable implements KeyStrokeConsumer, DockingActionPr } private void init(boolean allowAutoEdit) { - docking.ToolTipManager.sharedInstance().unregisterComponent(this); - docking.ToolTipManager.sharedInstance().registerComponent(this); + ToolTipManager.sharedInstance().unregisterComponent(this); + ToolTipManager.sharedInstance().registerComponent(this); setTableHeader(new GTableHeader(this)); if (!allowAutoEdit) { putClientProperty("JTable.autoStartsEdit", Boolean.FALSE); diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableHeader.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableHeader.java index 2ed52e208b..8d12fc8727 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableHeader.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableHeader.java @@ -18,8 +18,7 @@ package docking.widgets.table; import java.awt.*; import java.awt.event.*; -import javax.swing.Icon; -import javax.swing.JComponent; +import javax.swing.*; import javax.swing.table.*; import docking.DockingWindowManager; @@ -54,7 +53,7 @@ public class GTableHeader extends JTableHeader { GTableHeader(GTable table) { super(table.getColumnModel()); gTable = table; - docking.ToolTipManager.sharedInstance().registerComponent(this); + ToolTipManager.sharedInstance().registerComponent(this); addMouseListener(new MouseAdapter() { @Override diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/textfield/IntegerTextField.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/textfield/IntegerTextField.java index a5620473e5..eb44b42c7c 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/textfield/IntegerTextField.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/textfield/IntegerTextField.java @@ -21,13 +21,11 @@ import java.math.BigInteger; import java.util.ArrayList; import java.util.List; -import javax.swing.JComponent; -import javax.swing.JTextField; +import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; import docking.DockingUtils; -import docking.ToolTipManager; import docking.util.GraphicsUtils; import ghidra.util.SystemUtilities; diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/tree/GTree.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/tree/GTree.java index ea7c7ee19a..91704d22ec 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/tree/GTree.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/tree/GTree.java @@ -208,7 +208,7 @@ public class GTree extends JPanel implements BusyListener { tree.setRowHeight(-1);// variable size rows tree.setSelectionModel(new GTreeSelectionModel()); tree.setInvokesStopCellEditing(true);// clicking outside the cell editor will trigger a save, not a cancel - docking.ToolTipManager.sharedInstance().registerComponent(tree); + ToolTipManager.sharedInstance().registerComponent(tree); setLayout(new BorderLayout()); diff --git a/Ghidra/Framework/Docking/src/main/java/ghidra/util/task/TaskMonitorComponent.java b/Ghidra/Framework/Docking/src/main/java/ghidra/util/task/TaskMonitorComponent.java index f132759d8e..033e28731e 100644 --- a/Ghidra/Framework/Docking/src/main/java/ghidra/util/task/TaskMonitorComponent.java +++ b/Ghidra/Framework/Docking/src/main/java/ghidra/util/task/TaskMonitorComponent.java @@ -23,7 +23,6 @@ import java.util.concurrent.atomic.AtomicInteger; import javax.swing.*; -import docking.ToolTipManager; import docking.util.AnimatedIcon; import docking.widgets.EmptyBorderButton; import docking.widgets.OptionDialog; @@ -387,7 +386,7 @@ public class TaskMonitorComponent extends JPanel implements TaskMonitor { } private void updateToolTip() { - ToolTipManager.setToolTipText(cancelButton, "Cancel " + getTaskName()); + cancelButton.setToolTipText("Cancel " + getTaskName()); } private String getTaskName() { diff --git a/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/GraphComponent.java b/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/GraphComponent.java index a68ea81fbf..ef8dae579b 100644 --- a/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/GraphComponent.java +++ b/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/GraphComponent.java @@ -24,8 +24,8 @@ import javax.swing.*; import com.google.common.base.Function; +import docking.DockingUtils; import docking.DockingWindowManager; -import docking.ToolTipManager; import docking.help.HelpService; import docking.widgets.EmptyBorderButton; import docking.widgets.PopupWindow; @@ -175,8 +175,8 @@ public class GraphComponent, G e createGUIComponents(primaryViewer, satelliteViewer); - docking.ToolTipManager.sharedInstance().registerComponent(primaryViewer); - docking.ToolTipManager.sharedInstance().registerComponent(satelliteViewer); + ToolTipManager.sharedInstance().registerComponent(primaryViewer); + ToolTipManager.sharedInstance().registerComponent(satelliteViewer); } // template method @@ -406,7 +406,7 @@ public class GraphComponent, G e public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { PopupWindow.hideAllWindows(); - ToolTipManager.sharedInstance().hideTipWindow(); + DockingUtils.hideTipWindow(); } } }; diff --git a/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/event/mouse/VisualGraphEventForwardingGraphMousePlugin.java b/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/event/mouse/VisualGraphEventForwardingGraphMousePlugin.java index a09ec6214b..a280b79851 100644 --- a/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/event/mouse/VisualGraphEventForwardingGraphMousePlugin.java +++ b/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/event/mouse/VisualGraphEventForwardingGraphMousePlugin.java @@ -21,7 +21,6 @@ import java.awt.event.*; import javax.swing.JComponent; import docking.DockingUtils; -import docking.ToolTipManager; import edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin; import ghidra.graph.viewer.*; @@ -179,7 +178,7 @@ public class VisualGraphEventForwardingGraphMousePlugin { FrontEndTool tool = (FrontEndTool) plugin.getTool(); tool.showGhidraUserLogFile(); @@ -96,7 +95,7 @@ public class LogPanel extends JPanel implements LogListener { label.setForeground(Color.RED); } label.setText(message); - ToolTipManager.setToolTipText(label, message); + label.setToolTipText(message); }); } diff --git a/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/ServerInfoComponent.java b/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/ServerInfoComponent.java index dcfddcd87a..013563b046 100644 --- a/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/ServerInfoComponent.java +++ b/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/ServerInfoComponent.java @@ -22,7 +22,6 @@ import java.awt.event.ActionListener; import javax.swing.*; import javax.swing.event.*; -import docking.ToolTipManager; import docking.widgets.label.GDLabel; import ghidra.framework.model.ServerInfo; import ghidra.framework.remote.GhidraServerHandle; @@ -151,7 +150,7 @@ public class ServerInfoComponent extends JPanel { }; portNumberField.getDocument().addDocumentListener(portDocListener); - ToolTipManager.setToolTipText(portNumberField, "Enter port number"); + portNumberField.setToolTipText("Enter port number"); JPanel panel = new JPanel(new PairLayout(5, 10)); panel.add(nameLabel); panel.add(nameField); diff --git a/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/datatree/DataTree.java b/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/datatree/DataTree.java index d2e3c8d145..e67d1dfae2 100644 --- a/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/datatree/DataTree.java +++ b/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/datatree/DataTree.java @@ -18,8 +18,7 @@ package ghidra.framework.main.datatree; import java.awt.Component; import java.awt.event.KeyEvent; -import javax.swing.JTree; -import javax.swing.KeyStroke; +import javax.swing.*; import javax.swing.tree.TreePath; import docking.DockingUtils; @@ -43,7 +42,7 @@ public class DataTree extends GTree { setCellRenderer(new DataTreeCellRenderer()); setShowsRootHandles(true); // need this to "drill down" - docking.ToolTipManager.sharedInstance().registerComponent(this); + ToolTipManager.sharedInstance().registerComponent(this); if (tool != null) { dragNDropHandler = new DataTreeDragNDropHandler(tool, this, isActive); diff --git a/Ghidra/Framework/Project/src/main/java/ghidra/framework/task/gui/GProgressBar.java b/Ghidra/Framework/Project/src/main/java/ghidra/framework/task/gui/GProgressBar.java index 0844be2807..fefd27c7a6 100644 --- a/Ghidra/Framework/Project/src/main/java/ghidra/framework/task/gui/GProgressBar.java +++ b/Ghidra/Framework/Project/src/main/java/ghidra/framework/task/gui/GProgressBar.java @@ -21,7 +21,6 @@ import java.text.NumberFormat; import javax.swing.*; -import docking.ToolTipManager; import docking.util.AnimatedIcon; import docking.widgets.EmptyBorderButton; import docking.widgets.label.GDHtmlLabel;