mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 02:39:44 +02:00
GP-1981 Added IconModifiers for sizing,translating, disabling, and
creating overlayed icons in the theme files. Also some VT icon externalization
This commit is contained in:
parent
b2d16ab982
commit
dd31ff47a2
80 changed files with 1555 additions and 525 deletions
|
@ -18,11 +18,11 @@ package ghidra.feature.vt.api.impl;
|
|||
import java.io.IOException;
|
||||
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.ImageIcon;
|
||||
|
||||
import db.DBHandle;
|
||||
import db.OpenMode;
|
||||
import db.buffers.BufferFile;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.db.VTSessionDB;
|
||||
import ghidra.framework.data.*;
|
||||
import ghidra.framework.model.ChangeSet;
|
||||
|
@ -33,11 +33,9 @@ import ghidra.util.Msg;
|
|||
import ghidra.util.exception.CancelledException;
|
||||
import ghidra.util.exception.VersionException;
|
||||
import ghidra.util.task.TaskMonitor;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class VTSessionContentHandler extends DBContentHandler {
|
||||
private static ImageIcon ICON = ResourceManager
|
||||
.getScaledIcon(ResourceManager.loadImage("images/start-here_16.png"), 16, 16);
|
||||
private static Icon ICON = new GIcon("icon.version.tracking.session.content.type");
|
||||
|
||||
public final static String CONTENT_TYPE = "VersionTracking";
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
@ -16,6 +15,14 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTMatch;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
|
@ -24,15 +31,6 @@ import ghidra.feature.vt.gui.provider.onetomany.VTMatchOneToManyContext;
|
|||
import ghidra.feature.vt.gui.task.AcceptMatchTask;
|
||||
import ghidra.util.HelpLocation;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
|
||||
public class AcceptMatchAction extends DockingAction {
|
||||
|
||||
private static final String MENU_GROUP = VTPlugin.EDIT_MENU_GROUP;
|
||||
|
@ -43,7 +41,7 @@ public class AcceptMatchAction extends DockingAction {
|
|||
super("Accept", VTPlugin.OWNER);
|
||||
this.controller = controller;
|
||||
|
||||
Icon icon = ResourceManager.loadImage("images/flag.png");
|
||||
Icon icon = new GIcon("icon.version.tracking.action.accept.match");
|
||||
setToolBarData(new ToolBarData(icon, MENU_GROUP));
|
||||
setPopupMenuData(new MenuData(new String[] { "Accept" }, icon, MENU_GROUP));
|
||||
setEnabled(false);
|
||||
|
|
|
@ -15,18 +15,17 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.feature.vt.gui.wizard.VTAddToSessionWizardManager;
|
||||
import ghidra.util.HelpLocation;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import docking.tool.ToolConstants;
|
||||
import docking.wizard.WizardManager;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.feature.vt.gui.wizard.VTAddToSessionWizardManager;
|
||||
import ghidra.util.HelpLocation;
|
||||
|
||||
public class AddToVersionTrackingSessionAction extends DockingAction {
|
||||
|
||||
|
@ -37,13 +36,8 @@ public class AddToVersionTrackingSessionAction extends DockingAction {
|
|||
super("Add To Session", VTPlugin.OWNER);
|
||||
this.controller = controller;
|
||||
String[] menuPath = { ToolConstants.MENU_FILE, "Add to Session..." };
|
||||
Icon plusIcon = ResourceManager.loadImage("images/Plus.png");
|
||||
|
||||
Icon plusIcon = new GIcon("icon.version.tracking.action.add.to.session");
|
||||
setMenuBarData(new MenuData(menuPath, plusIcon, "AAA"));
|
||||
|
||||
// Icon baseNewIcon = ResourceManager.loadImage("images/start-here_16.png");
|
||||
// MultiIcon addToIcon = new MultiIcon(baseNewIcon, false);
|
||||
// addToIcon.addIcon(plusIcon);
|
||||
setToolBarData(new ToolBarData(plusIcon, "View"));
|
||||
setDescription("Add additional correlations to the current version tracking session");
|
||||
setHelpLocation(new HelpLocation("VersionTrackingPlugin", "Add_To_Session"));
|
||||
|
|
|
@ -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.
|
||||
|
@ -16,20 +15,19 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import ghidra.feature.vt.api.main.VTMatch;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.feature.vt.gui.provider.matchtable.VTMatchContext;
|
||||
import ghidra.feature.vt.gui.task.ApplyMatchTask;
|
||||
import ghidra.util.HelpLocation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import ghidra.feature.vt.api.main.VTMatch;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.feature.vt.gui.provider.markuptable.MarkupStatusIcons;
|
||||
import ghidra.feature.vt.gui.provider.matchtable.VTMatchContext;
|
||||
import ghidra.feature.vt.gui.task.ApplyMatchTask;
|
||||
import ghidra.util.HelpLocation;
|
||||
|
||||
public class ApplyMatchAction extends DockingAction {
|
||||
|
||||
|
@ -42,7 +40,7 @@ public class ApplyMatchAction extends DockingAction {
|
|||
super(NAME, VTPlugin.OWNER);
|
||||
this.controller = controller;
|
||||
|
||||
Icon icon = ResourceManager.loadImage("images/checkmark_green.gif");
|
||||
Icon icon = MarkupStatusIcons.APPLIED_ICON;
|
||||
setToolBarData(new ToolBarData(icon, MENU_GROUP));
|
||||
setPopupMenuData(new MenuData(new String[] { NAME }, icon, MENU_GROUP));
|
||||
setEnabled(false);
|
||||
|
|
|
@ -20,19 +20,19 @@ import javax.swing.Icon;
|
|||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import docking.tool.ToolConstants;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTSession;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.util.HTMLUtilities;
|
||||
import ghidra.util.HelpLocation;
|
||||
import ghidra.util.task.TaskLauncher;
|
||||
import resources.ResourceManager;
|
||||
|
||||
/**
|
||||
* This action runs the {@link AutoVersionTrackingTask}
|
||||
*/
|
||||
public class AutoVersionTrackingAction extends DockingAction {
|
||||
public static Icon AUTO_VT_ICON = ResourceManager.loadImage("images/wizard.png");
|
||||
public static Icon AUTO_VT_ICON = new GIcon("icon.version.tracking.auto");
|
||||
private final VTController controller;
|
||||
|
||||
public AutoVersionTrackingAction(VTController controller) {
|
||||
|
|
|
@ -24,18 +24,18 @@ import javax.swing.*;
|
|||
import docking.ActionContext;
|
||||
import docking.DialogComponentProvider;
|
||||
import docking.action.*;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.*;
|
||||
import ghidra.feature.vt.gui.editors.MatchTagComboBox;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.feature.vt.gui.provider.matchtable.VTMatchContext;
|
||||
import ghidra.util.HelpLocation;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class ChooseMatchTagAction extends DockingAction {
|
||||
|
||||
private static final String MENU_GROUP = VTPlugin.TAG_MENU_GROUP;
|
||||
private static final Icon EDIT_TAG_ICON = ResourceManager.loadImage("images/tag_blue.png");
|
||||
private static final Icon EDIT_TAG_ICON = new GIcon("icon.version.tracking.action.choose.tag");
|
||||
private static final String ACTION_NAME = "Choose Match Tag";
|
||||
|
||||
private final VTController controller;
|
||||
|
|
|
@ -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.
|
||||
|
@ -16,6 +15,14 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTMatch;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
|
@ -24,19 +31,10 @@ import ghidra.feature.vt.gui.provider.onetomany.VTMatchOneToManyContext;
|
|||
import ghidra.feature.vt.gui.task.ClearMatchTask;
|
||||
import ghidra.util.HelpLocation;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
|
||||
public class ClearMatchAction extends DockingAction {
|
||||
|
||||
private static final String MENU_GROUP = VTPlugin.UNEDIT_MENU_GROUP;
|
||||
private static final Icon ICON = ResourceManager.loadImage("images/undo-apply.png");
|
||||
private static final Icon ICON = new GIcon("icon.version.tracking.action.clear.match");
|
||||
private final VTController controller;
|
||||
|
||||
public ClearMatchAction(VTController controller) {
|
||||
|
|
|
@ -17,10 +17,11 @@ package ghidra.feature.vt.gui.actions;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.Icon;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTMatch;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
|
@ -30,7 +31,6 @@ import ghidra.feature.vt.gui.task.*;
|
|||
import ghidra.util.HelpLocation;
|
||||
import ghidra.util.task.Task;
|
||||
import ghidra.util.task.TaskListener;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class CreateImpliedMatchAction extends DockingAction {
|
||||
|
||||
|
@ -43,7 +43,7 @@ public class CreateImpliedMatchAction extends DockingAction {
|
|||
this.controller = controller;
|
||||
this.provider = provider;
|
||||
|
||||
ImageIcon icon = ResourceManager.loadImage("images/flag.png");
|
||||
Icon icon = new GIcon("icon.version.tracking.action.create.implied.match");
|
||||
setToolBarData(new ToolBarData(icon, "1"));
|
||||
setPopupMenuData(new MenuData(new String[] { "Accept Implied Match" }, icon, "1"));
|
||||
setHelpLocation(new HelpLocation("VersionTrackingPlugin", "Accept_Implied_Match"));
|
||||
|
|
|
@ -15,6 +15,12 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.action.MenuData;
|
||||
import docking.action.ToolBarData;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTSession;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
|
@ -25,19 +31,13 @@ import ghidra.util.HelpLocation;
|
|||
import ghidra.util.task.Task;
|
||||
import ghidra.util.task.TaskListener;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
|
||||
/**
|
||||
* Action that creates a manual match for the currently selected source and destination functions
|
||||
* in the function association tables.
|
||||
*/
|
||||
public class CreateManualMatchAction extends AbstractCreateManualMatchAction {
|
||||
|
||||
public static final Icon ICON = ResourceManager.loadImage("images/Plus.png");
|
||||
public static final Icon ICON = new GIcon("icon.version.tracking.action.create.manual.match");
|
||||
|
||||
/**
|
||||
* Creates a manual match action.
|
||||
|
|
|
@ -15,6 +15,12 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.action.MenuData;
|
||||
import docking.action.ToolBarData;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.feature.vt.gui.provider.functionassociation.FunctionAssociationContext;
|
||||
|
@ -24,19 +30,14 @@ import ghidra.util.HelpLocation;
|
|||
import ghidra.util.task.Task;
|
||||
import ghidra.util.task.TaskListener;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
|
||||
/**
|
||||
* Action that creates a manual match for the currently selected source and destination functions
|
||||
* in the function association tables and then accepts the match.
|
||||
*/
|
||||
public class CreateManualMatchAndAcceptAction extends AbstractCreateManualMatchAction {
|
||||
|
||||
public static final Icon ICON = ResourceManager.loadImage("images/flag.png");
|
||||
public static final Icon ICON =
|
||||
new GIcon("icon.version.tracking.action.create.and.accept.manual.match");
|
||||
|
||||
/**
|
||||
* Creates a manual match action that also does an accept of that match.
|
||||
|
@ -48,7 +49,8 @@ public class CreateManualMatchAndAcceptAction extends AbstractCreateManualMatchA
|
|||
setToolBarData(new ToolBarData(ICON, MENU_GROUP));
|
||||
setPopupMenuData(new MenuData(new String[] { "Create And Accept Manual Match" }, ICON));
|
||||
setEnabled(false);
|
||||
setHelpLocation(new HelpLocation("VersionTrackingPlugin", "Create_And_Accept_Manual_Match"));
|
||||
setHelpLocation(
|
||||
new HelpLocation("VersionTrackingPlugin", "Create_And_Accept_Manual_Match"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -15,6 +15,12 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.action.MenuData;
|
||||
import docking.action.ToolBarData;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.feature.vt.gui.provider.functionassociation.FunctionAssociationContext;
|
||||
|
@ -24,19 +30,14 @@ import ghidra.util.HelpLocation;
|
|||
import ghidra.util.task.Task;
|
||||
import ghidra.util.task.TaskListener;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
|
||||
/**
|
||||
* Action that creates a manual match for the currently selected source and destination functions
|
||||
* in the function association tables and then applies the match.
|
||||
*/
|
||||
public class CreateManualMatchAndAcceptAndApplyAction extends AbstractCreateManualMatchAction {
|
||||
|
||||
public static final Icon ICON = ResourceManager.loadImage("images/checkmark_green.gif");
|
||||
public static final Icon ICON =
|
||||
new GIcon("icon.version.tracking.action.create.accept.and.apply.manual.match");
|
||||
|
||||
/**
|
||||
* Creates a manual match action that also does an apply of that match.
|
||||
|
|
|
@ -21,6 +21,7 @@ import javax.swing.Icon;
|
|||
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTAssociation;
|
||||
import ghidra.feature.vt.api.main.VTMatch;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
|
@ -29,12 +30,11 @@ import ghidra.feature.vt.gui.provider.matchtable.VTMatchContext;
|
|||
import ghidra.program.model.address.AddressSet;
|
||||
import ghidra.program.model.listing.Program;
|
||||
import ghidra.util.HelpLocation;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class CreateSelectionAction extends DockingAction {
|
||||
public static final String NAME = "Create Match Table Selection";
|
||||
private static final String MENU_GROUP = "Selection";
|
||||
private static final Icon ICON = ResourceManager.loadImage("images/text_align_justify.png");
|
||||
private static final Icon ICON = new GIcon("icon.version.tracking.action.create.selection");
|
||||
private final VTController controller;
|
||||
|
||||
public CreateSelectionAction(VTController controller) {
|
||||
|
@ -44,7 +44,8 @@ public class CreateSelectionAction extends DockingAction {
|
|||
setPopupMenuData(new MenuData(new String[] { "Make Selections" }, ICON, MENU_GROUP));
|
||||
setEnabled(false);
|
||||
setHelpLocation(new HelpLocation("VersionTrackingPlugin", "Make Selections"));
|
||||
setDescription("Makes selections in both the source and destination tools for the selected matches.");
|
||||
setDescription(
|
||||
"Makes selections in both the source and destination tools for the selected matches.");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -15,22 +15,21 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.feature.vt.gui.wizard.VTNewSessionWizardManager;
|
||||
import ghidra.util.HelpLocation;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import docking.tool.ToolConstants;
|
||||
import docking.widgets.OptionDialog;
|
||||
import docking.wizard.WizardManager;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.feature.vt.gui.wizard.VTNewSessionWizardManager;
|
||||
import ghidra.util.HelpLocation;
|
||||
|
||||
public class CreateVersionTrackingSessionAction extends DockingAction {
|
||||
public static Icon NEW_ICON = ResourceManager.loadImage("images/start-here_16.png");
|
||||
public static Icon NEW_ICON = new GIcon("icon.version.tracking.action.create.session");
|
||||
private final VTController controller;
|
||||
|
||||
public CreateVersionTrackingSessionAction(VTController controller) {
|
||||
|
|
|
@ -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.
|
||||
|
@ -16,22 +15,22 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.gui.editors.TagEditorDialog;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.feature.vt.gui.provider.matchtable.VTMatchContext;
|
||||
import ghidra.util.HelpLocation;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
|
||||
public class EditAllTagsAction extends DockingAction {
|
||||
|
||||
private static final String MENU_GROUP = VTPlugin.TAG_MENU_GROUP;
|
||||
private static final Icon EDIT_TAG_ICON = ResourceManager.loadImage("images/tag_blue_edit.png");
|
||||
private static final Icon EDIT_TAG_ICON =
|
||||
new GIcon("icon.version.tracking.action.edit.all.tags");
|
||||
private static final String ACTION_NAME = "Edit VTMatch Tags";
|
||||
|
||||
private final VTController controller;
|
||||
|
|
|
@ -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.
|
||||
|
@ -16,6 +15,15 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.DialogComponentProvider;
|
||||
import docking.action.*;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTMarkupItem;
|
||||
import ghidra.feature.vt.api.main.VTMarkupItemDestinationAddressEditStatus;
|
||||
import ghidra.feature.vt.gui.editors.*;
|
||||
|
@ -28,21 +36,11 @@ import ghidra.program.model.listing.Program;
|
|||
import ghidra.util.*;
|
||||
import ghidra.util.exception.InvalidInputException;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.DialogComponentProvider;
|
||||
import docking.action.*;
|
||||
|
||||
public class EditMarkupAddressAction extends DockingAction {
|
||||
|
||||
private static final String MENU_GROUP = VTPlugin.ADDRESS_EDIT_MENU_GROUP;
|
||||
private static final Icon EDIT_ADDRESS_ICON =
|
||||
ResourceManager.loadImage("images/edit-rename.png");
|
||||
new GIcon("icon.version.tracking.action.edit.markup.address");
|
||||
private static final String ACTION_NAME = "Edit Markup Destination Address";
|
||||
|
||||
final VTController controller;
|
||||
|
@ -55,7 +53,8 @@ public class EditMarkupAddressAction extends DockingAction {
|
|||
setToolBarData(new ToolBarData(EDIT_ADDRESS_ICON, MENU_GROUP));
|
||||
}
|
||||
MenuData menuData =
|
||||
new MenuData(new String[] { "Edit Destination Address" }, EDIT_ADDRESS_ICON, MENU_GROUP);
|
||||
new MenuData(new String[] { "Edit Destination Address" }, EDIT_ADDRESS_ICON,
|
||||
MENU_GROUP);
|
||||
setPopupMenuData(menuData);
|
||||
setEnabled(false);
|
||||
setHelpLocation(new HelpLocation("VersionTrackingPlugin",
|
||||
|
|
|
@ -27,11 +27,12 @@ import ghidra.util.HelpLocation;
|
|||
import ghidra.util.Msg;
|
||||
import help.Help;
|
||||
import help.HelpService;
|
||||
import resources.Icons;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class HelpAction extends DockingAction {
|
||||
|
||||
private static Icon ICON = ResourceManager.loadImage("images/help-browser.png");
|
||||
private static Icon ICON = Icons.HELP_ICON;
|
||||
|
||||
public HelpAction() {
|
||||
super("Version Tracking Help Action", VTPlugin.OWNER);
|
||||
|
|
|
@ -23,10 +23,10 @@ import docking.action.ToolBarData;
|
|||
import docking.menu.ActionState;
|
||||
import docking.menu.MultiStateDockingAction;
|
||||
import docking.widgets.EventTrigger;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.feature.vt.gui.provider.matchtable.VTMatchTableProvider;
|
||||
import ghidra.util.HelpLocation;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class MatchTableSelectionAction
|
||||
extends MultiStateDockingAction<TableSelectionTrackingState> {
|
||||
|
@ -49,9 +49,12 @@ public class MatchTableSelectionAction
|
|||
new HelpLocation("VersionTrackingPlugin", "Match_Table_Selection");
|
||||
setHelpLocation(helpLocation);
|
||||
|
||||
Icon noSelectionTrackingIcon = ResourceManager.loadImage("images/table_delete.png");
|
||||
Icon trackMatchSelectionIcon = ResourceManager.loadImage("images/table_go.png");
|
||||
Icon trackRowIndexSelectionIcon = ResourceManager.loadImage("images/table_gear.png");
|
||||
Icon noSelectionTrackingIcon =
|
||||
new GIcon("icon.version.tracking.match.table.selection.track.none");
|
||||
Icon trackMatchSelectionIcon =
|
||||
new GIcon("icon.version.tracking.match.table.selection.track.match");
|
||||
Icon trackRowIndexSelectionIcon =
|
||||
new GIcon("icon.version.tracking.match.table.selection.track.row");
|
||||
|
||||
ActionState<TableSelectionTrackingState> trackSelectedIndexActionState =
|
||||
new ActionState<>("Track Selected Index",
|
||||
|
|
|
@ -23,12 +23,12 @@ import javax.swing.Icon;
|
|||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import docking.tool.ToolConstants;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.db.VTSessionDB;
|
||||
import ghidra.feature.vt.api.main.VTSession;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.util.*;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class RedoAction extends DockingAction {
|
||||
private final VTController controller;
|
||||
|
@ -39,7 +39,7 @@ public class RedoAction extends DockingAction {
|
|||
setHelpLocation(new HelpLocation(ToolConstants.TOOL_HELP_TOPIC, "Redo"));
|
||||
String[] menuPath = { ToolConstants.MENU_EDIT, "&Redo" };
|
||||
String group = "ZZUndo";
|
||||
Icon icon = ResourceManager.loadImage("images/redo.png");
|
||||
Icon icon = new GIcon("icon.redo");
|
||||
MenuData menuData = new MenuData(menuPath, icon, group);
|
||||
menuData.setMenuSubGroup("2Redo"); // make this appear below the undo menu item
|
||||
setMenuBarData(menuData);
|
||||
|
|
|
@ -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.
|
||||
|
@ -16,6 +15,13 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTMatch;
|
||||
import ghidra.feature.vt.api.main.VTSession;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
|
@ -24,18 +30,10 @@ import ghidra.feature.vt.gui.provider.matchtable.VTMatchContext;
|
|||
import ghidra.feature.vt.gui.task.RejectMatchTask;
|
||||
import ghidra.util.HelpLocation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
|
||||
public class RejectMatchAction extends DockingAction {
|
||||
|
||||
private static final String MENU_GROUP = VTPlugin.EDIT_MENU_GROUP;
|
||||
private static final Icon ICON = ResourceManager.loadImage("images/dialog-cancel.png");
|
||||
private static final Icon ICON = new GIcon("icon.version.tracking.action.match.reject");
|
||||
private final VTController controller;
|
||||
|
||||
public RejectMatchAction(VTController controller) {
|
||||
|
|
|
@ -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.
|
||||
|
@ -16,6 +15,14 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.action.DockingAction;
|
||||
import docking.action.MenuData;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTMatch;
|
||||
import ghidra.feature.vt.api.main.VTSession;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
|
@ -24,19 +31,10 @@ import ghidra.feature.vt.gui.provider.matchtable.VTMatchContext;
|
|||
import ghidra.feature.vt.gui.task.RemoveMatchTask;
|
||||
import ghidra.util.HelpLocation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.action.DockingAction;
|
||||
import docking.action.MenuData;
|
||||
|
||||
public class RemoveMatchAction extends DockingAction {
|
||||
|
||||
private static final String MENU_GROUP = VTPlugin.UNEDIT_MENU_GROUP;
|
||||
private static final Icon ICON = ResourceManager.loadImage("images/edit-delete.png");
|
||||
private static final Icon ICON = new GIcon("icon.version.tracking.action.match.remove");
|
||||
private final VTController controller;
|
||||
|
||||
public RemoveMatchAction(VTController controller) {
|
||||
|
|
|
@ -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.
|
||||
|
@ -16,6 +15,16 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.JComponent;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.ComponentProvider;
|
||||
import docking.action.*;
|
||||
import docking.widgets.OptionDialog;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTMatch;
|
||||
import ghidra.feature.vt.api.main.VTMatchTag;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
|
@ -24,22 +33,11 @@ import ghidra.feature.vt.gui.task.ClearMatchTagTask;
|
|||
import ghidra.util.HelpLocation;
|
||||
import ghidra.util.task.TaskLauncher;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.JComponent;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.ComponentProvider;
|
||||
import docking.action.*;
|
||||
import docking.widgets.OptionDialog;
|
||||
|
||||
public class RemoveMatchTagAction extends DockingAction {
|
||||
|
||||
private static final String MENU_GROUP = VTPlugin.TAG_MENU_GROUP;
|
||||
private static final Icon EDIT_TAG_ICON =
|
||||
ResourceManager.loadImage("images/tag_blue_delete.png");
|
||||
new GIcon("icon.version.tracking.action.match.tag.remove");
|
||||
private static final String ACTION_NAME = "Remove VTMatch Tags";
|
||||
|
||||
private int tagCount = 0;
|
||||
|
|
|
@ -18,10 +18,10 @@ package ghidra.feature.vt.gui.actions;
|
|||
import static ghidra.feature.vt.gui.util.VTOptionDefines.*;
|
||||
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.ImageIcon;
|
||||
|
||||
import docking.action.MenuData;
|
||||
import docking.action.ToolBarData;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTMarkupItemApplyActionType;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
|
@ -40,7 +40,7 @@ public class ReplaceDefaultMarkupItemAction extends AbstractMarkupItemAction {
|
|||
super(controller, "Apply (Replace Default Only)");
|
||||
|
||||
Icon replacedIcon = VTPlugin.REPLACED_ICON;
|
||||
ImageIcon warningIcon = ResourceManager.loadImage("images/warning.png");
|
||||
Icon warningIcon = new GIcon("icon.warning");
|
||||
warningIcon = ResourceManager.getScaledIcon(warningIcon, 12, 12);
|
||||
int warningIconWidth = warningIcon.getIconWidth();
|
||||
int warningIconHeight = warningIcon.getIconHeight();
|
||||
|
|
|
@ -15,10 +15,9 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import static ghidra.feature.vt.gui.util.VTOptionDefines.DATA_MATCH_DATA_TYPE;
|
||||
import static ghidra.feature.vt.gui.util.VTOptionDefines.*;
|
||||
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.ImageIcon;
|
||||
|
||||
import docking.action.MenuData;
|
||||
import docking.action.ToolBarData;
|
||||
|
@ -28,9 +27,6 @@ import ghidra.feature.vt.gui.plugin.VTPlugin;
|
|||
import ghidra.feature.vt.gui.util.VTMatchApplyChoices.ReplaceDataChoices;
|
||||
import ghidra.framework.options.ToolOptions;
|
||||
import ghidra.util.HelpLocation;
|
||||
import resources.MultiIcon;
|
||||
import resources.ResourceManager;
|
||||
import resources.icons.TranslateIcon;
|
||||
|
||||
/**
|
||||
* Action that replaces Data for a version tracking data match, but only if no defined data
|
||||
|
@ -54,22 +50,9 @@ public class ReplaceFirstMarkupItemAction extends AbstractMarkupItemAction {
|
|||
super(controller, "Apply (Replace First Only)");
|
||||
|
||||
Icon replacedIcon = VTPlugin.REPLACED_ICON;
|
||||
ImageIcon warningIcon = ResourceManager.loadImage("images/warning_obj.png");
|
||||
warningIcon = ResourceManager.getScaledIcon(warningIcon, 12, 12);
|
||||
MultiIcon multiIcon = new MultiIcon(replacedIcon, false);
|
||||
int refreshIconWidth = replacedIcon.getIconWidth();
|
||||
int refreshIconHeight = replacedIcon.getIconHeight();
|
||||
int warningIconWidth = warningIcon.getIconWidth();
|
||||
int warningIconHeight = warningIcon.getIconHeight();
|
||||
|
||||
int x = refreshIconWidth - warningIconWidth;
|
||||
int y = refreshIconHeight - warningIconHeight;
|
||||
|
||||
TranslateIcon translateIcon = new TranslateIcon(warningIcon, x, y);
|
||||
multiIcon.addIcon(translateIcon);
|
||||
|
||||
if (addToToolbar) {
|
||||
setToolBarData(new ToolBarData(multiIcon, MENU_GROUP));
|
||||
setToolBarData(new ToolBarData(replacedIcon, MENU_GROUP));
|
||||
}
|
||||
MenuData menuData =
|
||||
new MenuData(new String[] { "Apply (Replace First Only)" }, replacedIcon, MENU_GROUP);
|
||||
|
|
|
@ -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.
|
||||
|
@ -16,6 +15,13 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.*;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
|
@ -26,17 +32,9 @@ import ghidra.util.HelpLocation;
|
|||
import ghidra.util.task.Task;
|
||||
import ghidra.util.task.TaskListener;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
|
||||
public class ResetMarkupItemAction extends DockingAction {
|
||||
|
||||
public static final Icon RESET_ICON = ResourceManager.loadImage("images/undo-apply.png");
|
||||
public static final Icon RESET_ICON = new GIcon("icon.version.tracking.action.markup.reset");
|
||||
private static final String MENU_GROUP = VTPlugin.UNEDIT_MENU_GROUP;
|
||||
|
||||
final VTController controller;
|
||||
|
|
|
@ -15,13 +15,14 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.actions;
|
||||
|
||||
import static ghidra.feature.vt.gui.plugin.VTPlugin.VT_MAIN_MENU_GROUP;
|
||||
import static ghidra.feature.vt.gui.plugin.VTPlugin.*;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import docking.tool.ToolConstants;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.db.VTSessionDB;
|
||||
import ghidra.feature.vt.api.main.VTSession;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
|
@ -31,11 +32,10 @@ import ghidra.framework.model.DomainFile;
|
|||
import ghidra.program.model.listing.Program;
|
||||
import ghidra.util.HelpLocation;
|
||||
import ghidra.util.task.TaskLauncher;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class SaveVersionTrackingSessionAction extends DockingAction {
|
||||
|
||||
static final Icon ICON = ResourceManager.loadImage("images/disk.png");
|
||||
static final Icon ICON = new GIcon("icon.version.tracking.action.save.session");
|
||||
|
||||
private final VTController controller;
|
||||
|
||||
|
|
|
@ -19,12 +19,12 @@ import javax.swing.Icon;
|
|||
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTMatch;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.feature.vt.gui.provider.functionassociation.FunctionAssociationContext;
|
||||
import ghidra.util.HelpLocation;
|
||||
import resources.ResourceManager;
|
||||
|
||||
/**
|
||||
* Action that selects the function match, if it exists, for the currently selected source and
|
||||
|
@ -32,7 +32,8 @@ import resources.ResourceManager;
|
|||
*/
|
||||
public class SelectExistingMatchAction extends DockingAction {
|
||||
|
||||
private static final Icon ICON = ResourceManager.loadImage("images/text_align_justify.png");
|
||||
private static final Icon ICON =
|
||||
new GIcon("icon.version.tracking.action.match.select.existing");
|
||||
|
||||
private static final String MENU_GROUP = "Create";
|
||||
|
||||
|
|
|
@ -21,18 +21,18 @@ import javax.swing.Icon;
|
|||
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTMatch;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.feature.vt.gui.provider.onetomany.VTMatchOneToManyContext;
|
||||
import ghidra.util.HelpLocation;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class SetVTMatchFromOneToManyAction extends DockingAction {
|
||||
|
||||
private static final String MENU_GROUP = VTPlugin.VT_MAIN_MENU_GROUP;
|
||||
public static final Icon SET_MATCH_ICON =
|
||||
ResourceManager.loadImage("images/text_align_justify.png");
|
||||
new GIcon("icon.version.tracking.action.match.one.to.many");
|
||||
|
||||
final VTController controller;
|
||||
|
||||
|
|
|
@ -23,11 +23,11 @@ import javax.swing.Icon;
|
|||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import docking.tool.ToolConstants;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.db.VTSessionDB;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.util.*;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class UndoAction extends DockingAction {
|
||||
private final VTController controller;
|
||||
|
@ -38,7 +38,7 @@ public class UndoAction extends DockingAction {
|
|||
setHelpLocation(new HelpLocation(ToolConstants.TOOL_HELP_TOPIC, "Undo"));
|
||||
String[] menuPath = { ToolConstants.MENU_EDIT, "&Undo" };
|
||||
String group = "ZZUndo";
|
||||
Icon icon = ResourceManager.loadImage("images/undo.png");
|
||||
Icon icon = new GIcon("icon.undo");
|
||||
MenuData menuData = new MenuData(menuPath, icon, group);
|
||||
menuData.setMenuSubGroup("1Undo"); // make this appear above the redo menu item
|
||||
setMenuBarData(menuData);
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.editors;
|
||||
|
||||
import static ghidra.feature.vt.gui.editors.TagEditorDialog.TagState.Action.ADD;
|
||||
import static ghidra.feature.vt.gui.editors.TagEditorDialog.TagState.Action.*;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.MouseAdapter;
|
||||
|
@ -25,18 +25,19 @@ import javax.swing.*;
|
|||
|
||||
import docking.widgets.label.GDLabel;
|
||||
import docking.widgets.list.GListCellRenderer;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.gui.editors.TagEditorDialog.TagState;
|
||||
import ghidra.feature.vt.gui.editors.TagEditorDialog.TagStateListModel;
|
||||
import ghidra.util.exception.AssertException;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class TagEditorRenderer extends GListCellRenderer<TagState> {
|
||||
|
||||
private static final Icon NEW_TAG_ICON = ResourceManager.loadImage("images/tag_blue_add.png");
|
||||
private static final Icon NEW_TAG_ICON = new GIcon("icon.version.tracking.tag.status.new");
|
||||
private static final Icon DELETED_TAG_ICON =
|
||||
ResourceManager.loadImage("images/tag_blue_delete.png");
|
||||
private static final Icon EXISTING_TAG_ICON = ResourceManager.loadImage("images/tag_blue.png");
|
||||
private static final Icon UNDO_ICON = ResourceManager.loadImage("images/undo-apply.png");
|
||||
new GIcon("icon.version.tracking.tag.status.deleted");
|
||||
private static final Icon EXISTING_TAG_ICON =
|
||||
new GIcon("icon.version.tracking.tag.status.existing");
|
||||
private static final Icon UNDO_ICON = new GIcon("icon.version.tracking.tag.button.undo");
|
||||
|
||||
private final JList<TagState> list;
|
||||
private final TagStateListModel listModel;
|
||||
|
|
|
@ -22,9 +22,9 @@ import java.util.Set;
|
|||
import javax.swing.Icon;
|
||||
import javax.swing.JComponent;
|
||||
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.framework.options.SaveState;
|
||||
import ghidra.util.exception.AssertException;
|
||||
import resources.ResourceManager;
|
||||
|
||||
/**
|
||||
* An interface to allow clients to provide a mechanism for filtering objects and to notify
|
||||
|
@ -74,10 +74,11 @@ public abstract class Filter<T> {
|
|||
|
||||
public enum FilterEditingStatus {
|
||||
NONE("", null),
|
||||
DIRTY("Filter contents have changed, but are not yet applied", ResourceManager.loadImage(
|
||||
"images/bullet_black.png")),
|
||||
ERROR("Filter contents are not valid", ResourceManager.loadImage("images/no_small.png")),
|
||||
APPLIED("Filter applied", ResourceManager.loadImage("images/bullet_green.png"));
|
||||
DIRTY("Filter contents have changed, but are not yet applied", new GIcon(
|
||||
"icon.version.tracking.filter.status.changed")),
|
||||
ERROR("Filter contents are not valid", new GIcon(
|
||||
"icon.version.tracking.filter.status.invalid")),
|
||||
APPLIED("Filter applied", new GIcon("icon.version.tracking.filter.status.applied"));
|
||||
|
||||
private final String description;
|
||||
private final Icon icon;
|
||||
|
|
|
@ -19,11 +19,13 @@ import java.net.URL;
|
|||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.JFrame;
|
||||
|
||||
import docking.action.DockingActionIf;
|
||||
import docking.tool.ToolConstants;
|
||||
import docking.wizard.WizardManager;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.GhidraOptions;
|
||||
import ghidra.app.plugin.core.codebrowser.CodeBrowserPlugin;
|
||||
import ghidra.app.plugin.core.colorizer.ColorizingService;
|
||||
|
@ -48,9 +50,7 @@ import ghidra.program.util.ProgramLocation;
|
|||
import ghidra.util.*;
|
||||
import help.Help;
|
||||
import help.HelpService;
|
||||
import resources.MultiIcon;
|
||||
import resources.ResourceManager;
|
||||
import resources.icons.*;
|
||||
|
||||
//@formatter:off
|
||||
@PluginInfo(
|
||||
|
@ -80,25 +80,10 @@ public class VTPlugin extends Plugin {
|
|||
public static final String UNEDIT_MENU_GROUP = "A_VT_UnEdit";
|
||||
public static final String VT_SETTINGS_MENU_GROUP = "ZZ_VT_SETTINGS";
|
||||
|
||||
public static final Icon UNFILTERED_ICON =
|
||||
ResourceManager.loadImage("images/lightbulb_off.png");
|
||||
public static final Icon FILTERED_ICON = ResourceManager.loadImage("images/lightbulb.png");
|
||||
public static final Icon REPLACED_ICON = ResourceManager.loadImage("images/sync_enabled.png");
|
||||
public static final Icon UNIGNORED_ICON = new IconWrapper() {
|
||||
@Override
|
||||
protected Icon createIcon() {
|
||||
MultiIcon icon = new MultiIcon(new EmptyIcon(16, 16));
|
||||
ImageIcon cancelIcon = ResourceManager.loadImage("images/dialog-cancel.png");
|
||||
ScaledImageIcon scaledCancelIcon =
|
||||
new ScaledImageIcon(cancelIcon, 13, 13);
|
||||
TranslateIcon translatedCancelIcon = new TranslateIcon(scaledCancelIcon, 3, 4);
|
||||
ImageIcon undoIcon = ResourceManager.loadImage("images/undo.png");
|
||||
TranslateIcon translatedUndoIcon = new TranslateIcon(undoIcon, 0, -4);
|
||||
icon.addIcon(translatedUndoIcon);
|
||||
icon.addIcon(translatedCancelIcon);
|
||||
return icon;
|
||||
}
|
||||
};
|
||||
public static final Icon UNFILTERED_ICON = new GIcon("icon.version.tracking.unfiltered");
|
||||
public static final Icon FILTERED_ICON = new GIcon("icon.version.tracking.filtered");
|
||||
public static final Icon REPLACED_ICON = new GIcon("icon.version.tracking.replaced");
|
||||
public static final Icon UNIGNORED_ICON = new GIcon("icon.version.tracking.unignored");
|
||||
|
||||
private VTController controller;
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
@ -16,19 +15,18 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.plugin;
|
||||
|
||||
import ghidra.framework.plugintool.util.PluginPackage;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.framework.plugintool.util.PluginPackage;
|
||||
|
||||
public class VersionTrackingPluginPackage extends PluginPackage {
|
||||
public static final String NAME = "Version Tracking";
|
||||
public static final Icon ICON = ResourceManager.loadImage("images/start-here.png");
|
||||
|
||||
public static final Icon ICON = new GIcon("icon.version.tracking.package");
|
||||
|
||||
public VersionTrackingPluginPackage() {
|
||||
super(NAME, ICON,
|
||||
"These plugins provide feature for performing version tracking between programs." );
|
||||
super(NAME, ICON,
|
||||
"These plugins provide feature for performing version tracking between programs.");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ import docking.widgets.fieldpanel.FieldPanel;
|
|||
import docking.widgets.label.GDLabel;
|
||||
import docking.widgets.table.threaded.ThreadedTableModel;
|
||||
import generic.theme.GColor;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.app.plugin.core.functioncompare.FunctionComparisonPanel;
|
||||
import ghidra.app.services.GoToService;
|
||||
import ghidra.app.util.viewer.listingpanel.ListingCodeComparisonPanel;
|
||||
|
@ -61,7 +62,6 @@ import ghidra.util.HelpLocation;
|
|||
import ghidra.util.SystemUtilities;
|
||||
import ghidra.util.table.*;
|
||||
import resources.Icons;
|
||||
import resources.ResourceManager;
|
||||
|
||||
/**
|
||||
* Provider for the version tracking function association table.
|
||||
|
@ -71,13 +71,12 @@ public class VTFunctionAssociationProvider extends ComponentProviderAdapter
|
|||
|
||||
private static final String FILTER_SETTINGS_KEY = "FUNCTION_FILTER_SETTINGS";
|
||||
private static final String BASE_TITLE = "Version Tracking Functions";
|
||||
private static final ImageIcon PROVIDER_ICON =
|
||||
ResourceManager.loadImage("images/functions.gif");
|
||||
private static final Icon PROVIDER_ICON = new GIcon("icon.version.tracking.provider.function");
|
||||
private static final String SOURCE_TITLE = "Source";
|
||||
private static final String DESTINATION_TITLE = "Destination";
|
||||
private static final String NO_SESSION = "None";
|
||||
private static final Icon SHOW_LISTINGS_ICON =
|
||||
ResourceManager.loadImage("images/application_tile_horizontal.png");
|
||||
new GIcon("icon.version.tracking.action.show.listings");
|
||||
private static final String SHOW_COMPARE_ACTION_GROUP = "A9_ShowCompare"; // "A9_" forces to right of other dual view actions in toolbar.
|
||||
|
||||
private static final Color FG_ERROR = new GColor("color.fg.error");
|
||||
|
@ -158,13 +157,13 @@ public class VTFunctionAssociationProvider extends ComponentProviderAdapter
|
|||
|
||||
filterAction.setHelpLocation(new HelpLocation("VersionTrackingPlugin", "Functions_Filter"));
|
||||
|
||||
Icon allFunctionsIcon = ResourceManager.loadImage("images/function.png");
|
||||
Icon allFunctionsIcon = new GIcon("icon.version.tracking.function.filter.all");
|
||||
ActionState<FilterSettings> allFunctionsActionState =
|
||||
new ActionState<>("Show All Functions", allFunctionsIcon, SHOW_ALL);
|
||||
allFunctionsActionState.setHelpLocation(
|
||||
new HelpLocation("VersionTrackingPlugin", "Show_All_Functions"));
|
||||
|
||||
Icon unmatchedIcon = ResourceManager.loadImage("images/filter_matched.png");
|
||||
Icon unmatchedIcon = new GIcon("icon.version.tracking.function.filter.unmatched");
|
||||
ActionState<FilterSettings> unmatchedOnlyActionState =
|
||||
new ActionState<>("Show Only Unmatched Functions", unmatchedIcon, SHOW_UNMATCHED);
|
||||
unmatchedOnlyActionState.setHelpLocation(
|
||||
|
|
|
@ -30,6 +30,7 @@ import docking.action.*;
|
|||
import docking.widgets.table.GTable;
|
||||
import docking.widgets.table.RowObjectTableModel;
|
||||
import docking.widgets.table.threaded.GThreadedTablePanel;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.db.DeletedMatch;
|
||||
import ghidra.feature.vt.api.impl.VTChangeManager;
|
||||
import ghidra.feature.vt.api.impl.VersionTrackingChangeRecord;
|
||||
|
@ -47,7 +48,6 @@ import ghidra.util.HelpLocation;
|
|||
import ghidra.util.table.GhidraTableFilterPanel;
|
||||
import ghidra.util.table.GhidraThreadedTablePanel;
|
||||
import resources.Icons;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class VTImpliedMatchesTableProvider extends ComponentProviderAdapter
|
||||
implements VTControllerListener {
|
||||
|
@ -70,7 +70,7 @@ public class VTImpliedMatchesTableProvider extends ComponentProviderAdapter
|
|||
this.controller = controller;
|
||||
controller.addListener(this);
|
||||
setWindowGroup(VTPlugin.WINDOW_GROUP);
|
||||
setIcon(ResourceManager.loadImage("images/application_view_detail.png"));
|
||||
setIcon(new GIcon("icon.version.tracking.provider.implied.match"));
|
||||
setDefaultWindowPosition(WindowPosition.BOTTOM);
|
||||
setIntraGroupPosition(WindowPosition.STACK);
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@ public class MarkupItemStatusRenderer extends AbstractGhidraColumnRenderer<VTMar
|
|||
"This markup item conflicts with another item that is already applied");
|
||||
break;
|
||||
default:
|
||||
renderer.setIcon(ResourceManager.loadImage("images/core.png"));
|
||||
renderer.setIcon(ResourceManager.getDefaultIcon());
|
||||
renderer.setToolTipText("Unexpected match status state!: " + status);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -17,31 +17,30 @@ package ghidra.feature.vt.gui.provider.markuptable;
|
|||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import generic.theme.GIcon;
|
||||
import resources.MultiIcon;
|
||||
import resources.ResourceManager;
|
||||
import resources.icons.TranslateIcon;
|
||||
|
||||
public class MarkupStatusIcons {
|
||||
public static final Icon APPLIED_ICON = ResourceManager.loadImage("images/checkmark_green.gif");
|
||||
public static final Icon APPLY_ADD_MENU_ICON =
|
||||
ResourceManager.loadImage("images/Plus.png");
|
||||
public static final Icon APPLY_REPLACE_MENU_ICON =
|
||||
ResourceManager.loadImage("images/sync_enabled.png");
|
||||
private static final Icon SCALED_ADD_ICON =
|
||||
ResourceManager.getScaledIcon(APPLY_ADD_MENU_ICON, 12, 12);
|
||||
private static final Icon SCALED_REPLACE_ICON =
|
||||
ResourceManager.getScaledIcon(APPLY_REPLACE_MENU_ICON, 12, 12);
|
||||
//@formatter:off
|
||||
public static final Icon APPLIED_ICON = new GIcon("icon.version.tracking.markup.status.applied");
|
||||
public static final Icon APPLY_ADD_MENU_ICON = new GIcon("icon.version.tracking.add");
|
||||
public static final Icon APPLY_REPLACE_MENU_ICON = new GIcon("icon.version.tracking.replace");
|
||||
|
||||
private static final Icon SCALED_ADD_ICON = ResourceManager.getScaledIcon(APPLY_ADD_MENU_ICON, 12, 12);
|
||||
private static final Icon SCALED_REPLACE_ICON =ResourceManager.getScaledIcon(APPLY_REPLACE_MENU_ICON, 12, 12);
|
||||
private static final Icon ADDED_ICON = new TranslateIcon(SCALED_ADD_ICON, 14, 4);
|
||||
private static final Icon REPLACED_ICON = new TranslateIcon(SCALED_REPLACE_ICON, 14, 4);
|
||||
private static final Icon SHIFTED_APPLIED = new TranslateIcon(APPLIED_ICON, 8, 0);
|
||||
public static final Icon APPLIED_ADDED_ICON = new MultiIcon(APPLIED_ICON, ADDED_ICON);
|
||||
public static final Icon APPLIED_REPLACED_ICON = new MultiIcon(APPLIED_ICON, REPLACED_ICON);
|
||||
|
||||
public static final Icon REJECTED_ICON = ResourceManager.loadImage("images/dialog-cancel.png");
|
||||
public static final Icon DONT_CARE_ICON =
|
||||
ResourceManager.loadImage("images/asterisk_orange.png");
|
||||
public static final Icon DONT_KNOW_ICON = ResourceManager.loadImage("images/unknown.gif");
|
||||
public static final Icon FAILED_ICON = ResourceManager.loadImage("images/edit-delete.png");
|
||||
public static final Icon REJECTED_ICON = new GIcon("icon.version.tracking.markup.status.rejected");
|
||||
public static final Icon DONT_CARE_ICON = new GIcon("icon.version.tracking.markup.status.dont.care");
|
||||
public static final Icon DONT_KNOW_ICON = new GIcon("icon.version.tracking.markup.status.dont.know");
|
||||
public static final Icon FAILED_ICON = new GIcon("icon.version.tracking.markup.status.failed");
|
||||
public static final Icon SAME_ICON = new MultiIcon(APPLIED_ICON, SHIFTED_APPLIED);
|
||||
public static final Icon CONFLICT_ICON = ResourceManager.loadImage("images/cache.png");
|
||||
public static final Icon CONFLICT_ICON = new GIcon("icon.version.tracking.markup.status.conflict");
|
||||
//@formatter:on
|
||||
}
|
||||
|
|
|
@ -15,8 +15,7 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.provider.markuptable;
|
||||
|
||||
import static ghidra.feature.vt.gui.plugin.VTPlugin.FILTERED_ICON;
|
||||
import static ghidra.feature.vt.gui.plugin.VTPlugin.UNFILTERED_ICON;
|
||||
import static ghidra.feature.vt.gui.plugin.VTPlugin.*;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
|
@ -37,6 +36,7 @@ import docking.widgets.fieldpanel.internal.FieldPanelCoordinator;
|
|||
import docking.widgets.table.GTable;
|
||||
import docking.widgets.table.RowObjectTableModel;
|
||||
import docking.widgets.table.threaded.ThreadedTableModel;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.app.plugin.core.functioncompare.FunctionComparisonPanel;
|
||||
import ghidra.app.util.viewer.listingpanel.*;
|
||||
import ghidra.app.util.viewer.util.CodeComparisonPanel;
|
||||
|
@ -63,7 +63,6 @@ import ghidra.util.HelpLocation;
|
|||
import ghidra.util.table.GhidraTable;
|
||||
import ghidra.util.table.GhidraThreadedTablePanel;
|
||||
import help.HelpService;
|
||||
import resources.ResourceManager;
|
||||
|
||||
/**
|
||||
* This provides the GUI for displaying and working with version tracking markup items.
|
||||
|
@ -74,9 +73,9 @@ public class VTMarkupItemsTableProvider extends ComponentProviderAdapter
|
|||
private static final String SHOW_COMPARISON_PANEL = "SHOW_COMPARISON_PANEL";
|
||||
|
||||
private static final Icon SHOW_LISTINGS_ICON =
|
||||
ResourceManager.loadImage("images/application_tile_horizontal.png");
|
||||
new GIcon("icon.version.tracking.action.show.listings");
|
||||
|
||||
private static final Icon FILTER_ICON = ResourceManager.loadImage("images/view-filter.png");
|
||||
private static final Icon FILTER_ICON = new GIcon("icon.version.tracking.filter");
|
||||
private static final String SHOW_COMPARE_ACTION_GROUP = "A9_ShowCompare"; // "A9_" forces to right of other dual view actions in toolbar.
|
||||
|
||||
private final VTController controller;
|
||||
|
@ -119,7 +118,7 @@ public class VTMarkupItemsTableProvider extends ComponentProviderAdapter
|
|||
this.controller = controller;
|
||||
controller.addListener(this);
|
||||
setWindowGroup(VTPlugin.WINDOW_GROUP);
|
||||
setIcon(ResourceManager.loadImage("images/application_view_detail.png"));
|
||||
setIcon(new GIcon("icon.version.tracking.provider.markup"));
|
||||
setDefaultWindowPosition(WindowPosition.BOTTOM);
|
||||
setIntraGroupPosition(WindowPosition.STACK);
|
||||
|
||||
|
@ -328,8 +327,10 @@ public class VTMarkupItemsTableProvider extends ComponentProviderAdapter
|
|||
buffy.append("[Session: ").append(sessionName).append("] ");
|
||||
buffy.append('-').append(markupItemsTableModel.getRowCount()).append(" markup items");
|
||||
if (filteredCount != unfilteredCount) {
|
||||
buffy.append(" (of ").append(markupItemsTableModel.getUnfilteredRowCount()).append(
|
||||
')');
|
||||
buffy.append(" (of ")
|
||||
.append(markupItemsTableModel.getUnfilteredRowCount())
|
||||
.append(
|
||||
')');
|
||||
}
|
||||
|
||||
setSubTitle(buffy.toString());
|
||||
|
|
|
@ -17,11 +17,13 @@ package ghidra.feature.vt.gui.provider.matchtable;
|
|||
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.net.URL;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import docking.widgets.table.GTableCellRenderingData;
|
||||
import generic.theme.GColor;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.docking.settings.Settings;
|
||||
import ghidra.feature.vt.api.main.*;
|
||||
import ghidra.util.HTMLUtilities;
|
||||
|
@ -29,8 +31,7 @@ import ghidra.util.WebColors;
|
|||
import ghidra.util.table.column.AbstractGhidraColumnRenderer;
|
||||
import resources.MultiIcon;
|
||||
import resources.ResourceManager;
|
||||
import resources.icons.EmptyIcon;
|
||||
import resources.icons.TranslateIcon;
|
||||
import resources.icons.*;
|
||||
|
||||
/**
|
||||
* A renderer for the {@link VTMatch} to show an icon for its applied status
|
||||
|
@ -41,33 +42,25 @@ public class MatchMarkupStatusRenderer extends AbstractGhidraColumnRenderer<VTMa
|
|||
private static final Color FG_TOOLTIP_UNEXAMINED =
|
||||
new GColor("color.bg.version.tracking.match.table.markup.status.tooltip.unexamined");
|
||||
|
||||
private static ImageIcon DISABLED_ICON =
|
||||
ResourceManager.getDisabledIcon(ResourceManager.loadImage("images/ledgreen.png"), 50);
|
||||
private static ImageIcon DISABLED_ICON_SMALL =
|
||||
ResourceManager.getDisabledIcon(ResourceManager.loadImage("images/ledgreen.png", 8, 8), 50);
|
||||
private static Icon EMPTY_ICON = ResourceManager.loadImage("EmptyIcon16.gif");
|
||||
private static Icon DISABLED_ICOL =
|
||||
new GIcon("icon.version.tracking.match.table.markup.status.disabled");
|
||||
private static final Icon NOT_APPLIED_ICON =
|
||||
new GIcon("icon.version.tracking.match.table.markup.status.not.applied");
|
||||
private static final Icon APPLIED_ICON =
|
||||
new GIcon("icon.version.tracking.match.table.markup.status.applied");
|
||||
private static final Icon REJECTED_ICON =
|
||||
new GIcon("icon.version.tracking.match.table.markup.status.rejected");
|
||||
private static final Icon IGNORED_ICON =
|
||||
new GIcon("icon.version.tracking.match.table.markup.status.ignored");
|
||||
private static final Icon ERROR_ICON =
|
||||
new GIcon("icon.version.tracking.match.table.markup.status.error");
|
||||
|
||||
private static final ImageIcon APPLIED_BASE_ICON =
|
||||
ResourceManager.loadImage("images/ledgreen.png", 8, 8);
|
||||
private static final ImageIcon REJECTED_BASE_ICON =
|
||||
ResourceManager.loadImage("images/ledpurple.png", 8, 8);
|
||||
private static final ImageIcon NOT_APPLIED_BASE_ICON =
|
||||
ResourceManager.loadImage("images/ledorange.png", 8, 8);
|
||||
private static final ImageIcon IGNORED_BASE_ICON =
|
||||
ResourceManager.loadImage("images/ledblue.png", 8, 8);
|
||||
private static final ImageIcon ERROR_BASE_ICON =
|
||||
ResourceManager.loadImage("images/ledred.png", 8, 8);
|
||||
|
||||
private static Icon NOT_APPLIED_ICON = new TranslateIcon(NOT_APPLIED_BASE_ICON, 0, 4);
|
||||
private static Icon APPLIED_ICON = new TranslateIcon(APPLIED_BASE_ICON, 9, 4);
|
||||
private static Icon REJECTED_ICON = new TranslateIcon(REJECTED_BASE_ICON, 18, 4);
|
||||
private static Icon IGNORED_ICON = new TranslateIcon(IGNORED_BASE_ICON, 27, 4);
|
||||
private static Icon ERROR_ICON = new TranslateIcon(ERROR_BASE_ICON, 36, 4);
|
||||
|
||||
private static Icon DISABLED_NOT_APPLIED_ICON = new TranslateIcon(DISABLED_ICON_SMALL, 0, 4);
|
||||
private static Icon DISABLED_APPLIED_ICON = new TranslateIcon(DISABLED_ICON_SMALL, 9, 4);
|
||||
private static Icon DISABLED_REJECTED_ICON = new TranslateIcon(DISABLED_ICON_SMALL, 18, 4);
|
||||
private static Icon DISABLED_IGNORED_ICON = new TranslateIcon(DISABLED_ICON_SMALL, 27, 4);
|
||||
private static Icon DISABLED_ERROR_ICON = new TranslateIcon(DISABLED_ICON_SMALL, 36, 4);
|
||||
private static Icon DISABLED_NOT_APPLIED_ICON = new TranslateIcon(DISABLED_ICOL, 0, 4);
|
||||
private static Icon DISABLED_APPLIED_ICON = new TranslateIcon(DISABLED_ICOL, 9, 4);
|
||||
private static Icon DISABLED_REJECTED_ICON = new TranslateIcon(DISABLED_ICOL, 18, 4);
|
||||
private static Icon DISABLED_IGNORED_ICON = new TranslateIcon(DISABLED_ICOL, 27, 4);
|
||||
private static Icon DISABLED_ERROR_ICON = new TranslateIcon(DISABLED_ICOL, 36, 4);
|
||||
|
||||
@Override
|
||||
public Component getTableCellRendererComponent(GTableCellRenderingData data) {
|
||||
|
@ -91,7 +84,7 @@ public class MatchMarkupStatusRenderer extends AbstractGhidraColumnRenderer<VTMa
|
|||
}
|
||||
|
||||
VTAssociationMarkupStatus markupStatus = association.getMarkupStatus();
|
||||
MultiIcon icon = new MultiIcon(new EmptyIcon(36, 16));
|
||||
MultiIcon icon = new MultiIcon(new EmptyIcon(45, 16));
|
||||
icon.addIcon(
|
||||
markupStatus.hasUnexaminedMarkup() ? NOT_APPLIED_ICON : DISABLED_NOT_APPLIED_ICON);
|
||||
icon.addIcon(markupStatus.hasAppliedMarkup() ? APPLIED_ICON : DISABLED_APPLIED_ICON);
|
||||
|
@ -107,78 +100,86 @@ public class MatchMarkupStatusRenderer extends AbstractGhidraColumnRenderer<VTMa
|
|||
|
||||
private String getDescription(VTAssociationMarkupStatus status) {
|
||||
StringBuffer buf = new StringBuffer("<html>");
|
||||
|
||||
if (!status.isInitialized()) {
|
||||
buf.append("Match has not been accepted; unknown markup status");
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
ImageIcon icon = DISABLED_ICON;
|
||||
Icon icon = EMPTY_ICON;
|
||||
String message = "Has one or more \"Unexamined\" markup items";
|
||||
Color color = FG_TOOLTIP_DEFAULT;
|
||||
if (status.hasUnexaminedMarkup()) {
|
||||
icon = NOT_APPLIED_BASE_ICON;
|
||||
icon = NOT_APPLIED_ICON;
|
||||
color = FG_TOOLTIP_UNEXAMINED;
|
||||
}
|
||||
|
||||
String fontColor = WebColors.toString(color, false);
|
||||
buf.append("<img src=\"").append(icon.getDescription()).append("\" />");
|
||||
buf.append("<img src=\"").append(getIconSource(icon)).append("\" />");
|
||||
buf.append("<font color=\"").append(fontColor).append("\">");
|
||||
buf.append(message).append("</font><br>");
|
||||
|
||||
icon = DISABLED_ICON;
|
||||
|
||||
icon = ERROR_BASE_ICON;
|
||||
icon = EMPTY_ICON;
|
||||
|
||||
message = "Has one or more \"Applied\" markup items";
|
||||
fontColor = "gray";
|
||||
if (status.hasAppliedMarkup()) {
|
||||
icon = APPLIED_BASE_ICON;
|
||||
icon = APPLIED_ICON;
|
||||
fontColor = "black";
|
||||
}
|
||||
buf.append("<img src=\"").append(icon.getDescription()).append("\" />");
|
||||
buf.append("<img src=\"").append(getIconSource(icon)).append("\" />");
|
||||
buf.append("<font color=\"").append(fontColor).append("\">");
|
||||
buf.append(message).append("</font><br>");
|
||||
|
||||
icon = DISABLED_ICON;
|
||||
|
||||
icon = DISABLED_ICON_SMALL;
|
||||
icon = EMPTY_ICON;
|
||||
|
||||
message = "Has one or more \"Rejected\" markup items to apply";
|
||||
fontColor = "gray";
|
||||
if (status.hasRejectedMarkup()) {
|
||||
icon = REJECTED_BASE_ICON;
|
||||
icon = REJECTED_ICON;
|
||||
fontColor = "black";
|
||||
}
|
||||
buf.append("<img src=\"").append(icon.getDescription()).append("\" />");
|
||||
buf.append("<img src=\"").append(getIconSource(icon)).append("\" />");
|
||||
buf.append("<font color=\"").append(fontColor).append("\">");
|
||||
buf.append(message).append("</font><br>");
|
||||
|
||||
icon = DISABLED_ICON;
|
||||
icon = EMPTY_ICON;
|
||||
message = "Has one or more \"Ignored (Don't Know or Don't Care)\" markup items";
|
||||
fontColor = "gray";
|
||||
if (status.hasDontCareMarkup() || status.hasDontKnowMarkup()) {
|
||||
icon = IGNORED_BASE_ICON;
|
||||
icon = IGNORED_ICON;
|
||||
fontColor = "black";
|
||||
}
|
||||
buf.append("<img src=\"").append(icon.getDescription()).append("\" />");
|
||||
buf.append("<img src=\"").append(getIconSource(icon)).append("\" />");
|
||||
buf.append("<font color=\"").append(fontColor).append("\">");
|
||||
buf.append(message).append("</font><br>");
|
||||
|
||||
icon = DISABLED_ICON;
|
||||
icon = EMPTY_ICON;
|
||||
message = "Has one or more \"Error\" markup items";
|
||||
fontColor = "gray";
|
||||
if (status.hasErrors()) {
|
||||
icon = ERROR_BASE_ICON;
|
||||
icon = ERROR_ICON;
|
||||
fontColor = "black";
|
||||
}
|
||||
buf.append("<img src=\"").append(icon.getDescription()).append("\" />");
|
||||
buf.append("<img src=\"").append(getIconSource(icon)).append("\" />");
|
||||
buf.append("<font color=\"").append(fontColor).append("\">");
|
||||
buf.append(message).append("</font><br>");
|
||||
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
private String getIconSource(Icon icon) {
|
||||
if (icon instanceof GIcon gIcon) {
|
||||
URL url = gIcon.getUrl();
|
||||
if (url != null) {
|
||||
return url.toString();
|
||||
}
|
||||
}
|
||||
else if (icon instanceof UrlImageIcon urlIcon) {
|
||||
return urlIcon.getUrl().toString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFilterString(VTMatch t, Settings settings) {
|
||||
|
||||
|
|
|
@ -20,12 +20,12 @@ import java.awt.Component;
|
|||
import javax.swing.*;
|
||||
|
||||
import docking.widgets.table.GTableCellRenderingData;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.docking.settings.Settings;
|
||||
import ghidra.program.model.symbol.Symbol;
|
||||
import ghidra.util.HTMLUtilities;
|
||||
import ghidra.util.exception.AssertException;
|
||||
import ghidra.util.table.column.AbstractGhidraColumnRenderer;
|
||||
import resources.ResourceManager;
|
||||
|
||||
/**
|
||||
* This class provides a field renderer for version tracking tables. It is used for indicating
|
||||
|
@ -60,7 +60,7 @@ public class MultipleLabelsRenderer extends AbstractGhidraColumnRenderer<Symbol[
|
|||
}
|
||||
|
||||
private static final Icon MULTIPLE_LABELS_ICON =
|
||||
ResourceManager.loadImage("images/application_view_detail.png");
|
||||
new GIcon("icon.version.tracking.table.renderer.multiple.symbols");
|
||||
private static final String SINGLE_NAME_TOOLTIP = "Doesn't have multiple labels.";
|
||||
// Uncomment the following if it is needed for the configure... method below.
|
||||
// private static final String MULTI_NAME_TOOLTIP =
|
||||
|
|
|
@ -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.
|
||||
|
@ -16,23 +15,22 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.provider.matchtable;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.framework.plugintool.PluginTool;
|
||||
import ghidra.framework.plugintool.util.OptionsService;
|
||||
import ghidra.util.HelpLocation;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
|
||||
public class VTMatchApplySettingsAction extends DockingAction {
|
||||
public static final String VERSION_TRACKING_OPTIONS_NAME = "Version Tracking";
|
||||
public static final String VERSION_TRACKING_APPLY_MARKUP_OPTIONS = "Apply Markup Options";
|
||||
|
||||
static final Icon ICON = ResourceManager.loadImage("images/settings16.gif");
|
||||
static final Icon ICON = new GIcon("icon.version.tracking.action.show.settings");
|
||||
private static final String MENU_GROUP = VTPlugin.VT_SETTINGS_MENU_GROUP;
|
||||
private static final String TITLE = "Version Tracking Options";
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ import docking.widgets.table.GTable;
|
|||
import docking.widgets.table.RowObjectTableModel;
|
||||
import docking.widgets.table.threaded.ThreadedTableModel;
|
||||
import generic.theme.GColor;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.impl.VTChangeManager;
|
||||
import ghidra.feature.vt.api.main.*;
|
||||
import ghidra.feature.vt.gui.actions.*;
|
||||
|
@ -55,7 +56,6 @@ import ghidra.util.SystemUtilities;
|
|||
import ghidra.util.layout.HorizontalLayout;
|
||||
import ghidra.util.table.GhidraTable;
|
||||
import ghidra.util.table.GhidraThreadedTablePanel;
|
||||
import resources.ResourceManager;
|
||||
|
||||
/**
|
||||
* The docking window that provides a table of the other tool's function matches for the function
|
||||
|
@ -65,7 +65,7 @@ public abstract class VTMatchOneToManyTableProvider extends ComponentProviderAda
|
|||
implements FilterDialogModel<VTMatch>, VTControllerListener, VTSubToolManagerListener {
|
||||
|
||||
private static final String TITLE_PREFIX = "Version Tracking Matches for ";
|
||||
private static final Icon ICON = ResourceManager.loadImage("images/text_list_bullets.png");
|
||||
private static final Icon ICON = new GIcon("icon.version.tracking.provider.one.to.many");
|
||||
|
||||
protected static final Color LOCAL_INFO_FOREGROUND_COLOR =
|
||||
new GColor("color.fg.version.tracking.function.match.local.info");
|
||||
|
|
|
@ -24,9 +24,9 @@ import javax.swing.*;
|
|||
import docking.widgets.label.GIconLabel;
|
||||
import docking.widgets.table.GTableCellRenderingData;
|
||||
import generic.theme.GColor;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTAssociationStatus;
|
||||
import ghidra.util.table.GhidraTableCellRenderer;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class RelatedMatchRenderer extends GhidraTableCellRenderer {
|
||||
|
||||
|
@ -41,14 +41,14 @@ public class RelatedMatchRenderer extends GhidraTableCellRenderer {
|
|||
static Map<VTRelatedMatchCorrelationType, JLabel> destinationMap;
|
||||
static Map<VTAssociationStatus, JLabel> statusMap;
|
||||
|
||||
static final Icon TARGET_ICON = ResourceManager.loadImage("images/user-online.png");
|
||||
static final Icon CALLER_ICON = ResourceManager.loadImage("images/go-down.png");
|
||||
static final Icon CALLEE_ICON = ResourceManager.loadImage("images/go-next.png");
|
||||
static final Icon UNRELATED_ICON = ResourceManager.loadImage("images/user-busy.png");
|
||||
static final Icon TARGET_ICON = new GIcon("icon.version.tracking.related.match.target");
|
||||
static final Icon CALLER_ICON = new GIcon("icon.version.tracking.related.match.caller");
|
||||
static final Icon CALLEE_ICON = new GIcon("icon.version.tracking.related.match.callee");
|
||||
static final Icon UNRELATED_ICON = new GIcon("icon.version.tracking.related.match.unrelated");
|
||||
|
||||
static final Icon ACCEPTED_ICON = ResourceManager.loadImage("images/accept.png");
|
||||
static final Icon AVAILABLE_ICON = ResourceManager.loadImage("images/media-playback-stop.png");
|
||||
static final Icon LOCKED_OUT_ICON = ResourceManager.loadImage("images/edit-delete.png");
|
||||
static final Icon ACCEPTED_ICON = new GIcon("icon.version.tracking.related.match.accepted");
|
||||
static final Icon AVAILABLE_ICON = new GIcon("icon.version.tracking.related.match.available");
|
||||
static final Icon LOCKED_OUT_ICON = new GIcon("icon.version.tracking.related.match.locked.out");
|
||||
|
||||
private JPanel relatedMatchColumnComponent;
|
||||
private GridLayout layout;
|
||||
|
|
|
@ -29,17 +29,17 @@ import docking.ActionContext;
|
|||
import docking.widgets.table.GTable;
|
||||
import docking.widgets.table.RowObjectTableModel;
|
||||
import docking.widgets.table.threaded.ThreadedTableModel;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.util.VTRelatedMatch;
|
||||
import ghidra.feature.vt.gui.plugin.VTController;
|
||||
import ghidra.feature.vt.gui.plugin.VTPlugin;
|
||||
import ghidra.framework.plugintool.ComponentProviderAdapter;
|
||||
import ghidra.framework.plugintool.PluginTool;
|
||||
import ghidra.util.table.*;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class VTRelatedMatchesTableProvider extends ComponentProviderAdapter {
|
||||
|
||||
private static final Icon ICON = ResourceManager.loadImage("images/user-online.png");
|
||||
private static final Icon ICON = new GIcon("icon.version.tracking.provider.related.matches");
|
||||
|
||||
private JComponent component;
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
@ -16,18 +15,17 @@
|
|||
*/
|
||||
package ghidra.feature.vt.gui.util;
|
||||
|
||||
import ghidra.feature.vt.gui.filters.AncillaryFilterDialogComponentProvider;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import resources.ResourceManager;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.gui.filters.AncillaryFilterDialogComponentProvider;
|
||||
|
||||
public class FilterIconFlashTimer<T> extends Timer implements ActionListener {
|
||||
|
||||
private static final Icon EMPTY_ICON = ResourceManager.loadImage("images/EmptyIcon16.gif");
|
||||
private static final Icon EMPTY_ICON = new GIcon("icon.version.tracking.empty");
|
||||
private static final long MINIMUM_TIME_BETWEEN_FLASHES = 20000;
|
||||
private static final int MAX_FLASH_COUNT = 10;
|
||||
|
||||
|
|
|
@ -21,32 +21,23 @@ import javax.swing.Icon;
|
|||
import javax.swing.JLabel;
|
||||
|
||||
import docking.widgets.table.GTableCellRenderingData;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.util.table.GhidraTableCellRenderer;
|
||||
import resources.MultiIcon;
|
||||
import resources.ResourceManager;
|
||||
import resources.icons.TranslateIcon;
|
||||
|
||||
public class MatchStatusRenderer extends GhidraTableCellRenderer {
|
||||
|
||||
// private static final Icon DISABLED_APPLIED_ICON =
|
||||
// ResourceManager.getDisabledIcon(ResourceManager.loadImage("images/flag.png"));
|
||||
private static final Icon ACCEPTED_ICON = ResourceManager.loadImage("images/flag.png");
|
||||
private static final Icon REJECTED_ICON = ResourceManager.loadImage("images/dialog-cancel.png");
|
||||
// private static final Icon REJECTED_ICON = ResourceManager.loadImage("images/delete.png");
|
||||
private static final Icon BLOCKED_ICON = ResourceManager.loadImage("images/kgpg.png");
|
||||
|
||||
// private static final ImageIcon LOCK_ICON =
|
||||
// ResourceManager.loadImage("images/lock.png");
|
||||
|
||||
private static final Icon WARN_ICON = new TranslateIcon(
|
||||
ResourceManager.loadImage("images/bullet_error.png"), 10, 8);
|
||||
private static final Icon FAILURE_ICON = new TranslateIcon(ResourceManager.getScaledIcon(
|
||||
ResourceManager.loadImage("images/edit-delete.png"), 8, 8), 10, 8);
|
||||
private static final Icon FULLY_APPLIED_ICON = new TranslateIcon(ResourceManager.getScaledIcon(
|
||||
ResourceManager.loadImage("images/checkmark_green.gif"), 8, 8), 10, 8);
|
||||
private static final Icon FULLY_CONSIDERED_ICON = new TranslateIcon(
|
||||
ResourceManager.getScaledIcon(ResourceManager.loadImage("images/checkmark_yellow.gif"), 8,
|
||||
8), 10, 8);
|
||||
private static final Icon ACCEPTED_SOME_UNEXAMINED_ICON =
|
||||
new GIcon("icon.version.tracking.match.table.status.accepted.some.unexamined");
|
||||
private static final Icon ACCEPTED_ERROR_ICON =
|
||||
new GIcon("icon.version.tracking.match.table.status.accepted.error");
|
||||
private static final Icon ACCEPTED_FULLY_APPLIED_ICON =
|
||||
new GIcon("icon.version.tracking.match.table.status.accepted.fully.applied");
|
||||
private static final Icon ACCEPTED_FULLY_CONSIDERED_ICON =
|
||||
new GIcon("icon.version.tracking.match.table.status.accepted.fully.considered");
|
||||
private static final Icon REJECTED_ICON =
|
||||
new GIcon("icon.version.tracking.match.table.status.rejected");
|
||||
private static final Icon BLOCKED_ICON =
|
||||
new GIcon("icon.version.tracking.match.table.status.blocked");
|
||||
|
||||
@Override
|
||||
public Component getTableCellRendererComponent(GTableCellRenderingData data) {
|
||||
|
@ -74,16 +65,16 @@ public class MatchStatusRenderer extends GhidraTableCellRenderer {
|
|||
Icon icon = null;
|
||||
switch (status) {
|
||||
case ACCEPTED_FULLY_APPLIED:
|
||||
icon = new MultiIcon(ACCEPTED_ICON, FULLY_APPLIED_ICON);
|
||||
icon = ACCEPTED_FULLY_APPLIED_ICON;
|
||||
break;
|
||||
case ACCEPTED_HAS_ERRORS:
|
||||
icon = new MultiIcon(ACCEPTED_ICON, FAILURE_ICON);
|
||||
icon = ACCEPTED_ERROR_ICON;
|
||||
break;
|
||||
case ACCEPTED_NO_UNEXAMINED:
|
||||
icon = new MultiIcon(ACCEPTED_ICON, FULLY_CONSIDERED_ICON);
|
||||
icon = ACCEPTED_FULLY_CONSIDERED_ICON;
|
||||
break;
|
||||
case ACCEPTED_SOME_UNEXAMINED:
|
||||
icon = new MultiIcon(ACCEPTED_ICON, WARN_ICON);
|
||||
icon = ACCEPTED_SOME_UNEXAMINED_ICON;
|
||||
break;
|
||||
case AVAILABLE:
|
||||
// no icon
|
||||
|
|
|
@ -27,12 +27,12 @@ import javax.swing.event.*;
|
|||
import docking.widgets.button.GRadioButton;
|
||||
import docking.widgets.label.GLabel;
|
||||
import docking.widgets.list.GList;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.framework.plugintool.PluginTool;
|
||||
import ghidra.program.model.address.*;
|
||||
import ghidra.program.model.listing.Program;
|
||||
import ghidra.util.layout.MiddleLayout;
|
||||
import ghidra.util.layout.VerticalLayout;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class ChooseAddressSetEditorPanel extends JPanel {
|
||||
|
||||
|
@ -40,8 +40,8 @@ public class ChooseAddressSetEditorPanel extends JPanel {
|
|||
ENTIRE_PROGRAM, SELECTION, MANUALLY_DEFINED
|
||||
}
|
||||
|
||||
private static Icon ADD_ICON = ResourceManager.loadImage("images/Plus.png");
|
||||
private static Icon SUBTRACT_ICON = ResourceManager.loadImage("images/list-remove.png");
|
||||
private static Icon ADD_ICON = new GIcon("icon.version.tracking.add");
|
||||
private static Icon SUBTRACT_ICON = new GIcon("icon.version.tracking.subtract");
|
||||
|
||||
private PluginTool tool;
|
||||
private final String name;
|
||||
|
|
|
@ -27,6 +27,7 @@ import org.apache.commons.lang3.StringUtils;
|
|||
import docking.options.editor.ButtonPanelFactory;
|
||||
import docking.widgets.label.GDLabel;
|
||||
import docking.wizard.*;
|
||||
import generic.theme.*;
|
||||
import ghidra.app.util.task.OpenProgramTask;
|
||||
import ghidra.framework.main.DataTreeDialog;
|
||||
import ghidra.framework.model.DomainFile;
|
||||
|
@ -36,7 +37,6 @@ import ghidra.program.model.listing.Program;
|
|||
import ghidra.util.HelpLocation;
|
||||
import ghidra.util.InvalidNameException;
|
||||
import ghidra.util.task.TaskLauncher;
|
||||
import resources.ResourceManager;
|
||||
|
||||
/**
|
||||
* Version tracking wizard panel to create a new session.
|
||||
|
@ -44,8 +44,8 @@ import resources.ResourceManager;
|
|||
public class NewSessionPanel extends AbstractMageJPanel<VTWizardStateKey> {
|
||||
|
||||
private static final int MAX_LENGTH_FOR_VT_SESSION_NAME = 20;
|
||||
private static final Icon SWAP_ICON = ResourceManager.loadImage("images/doubleArrowUpDown.png");
|
||||
private static final Icon INFO_ICON = ResourceManager.loadImage("images/information.png");
|
||||
private static final Icon SWAP_ICON = new GIcon("icon.version.tracking.new.session.swap");
|
||||
private static final Icon INFO_ICON = new GIcon("icon.version.tracking.new.session.info");
|
||||
|
||||
private JTextField sourceField;
|
||||
private JTextField destinationField;
|
||||
|
@ -73,7 +73,7 @@ public class NewSessionPanel extends AbstractMageJPanel<VTWizardStateKey> {
|
|||
folderLabel.setHorizontalAlignment(SwingConstants.RIGHT);
|
||||
folderLabel.setToolTipText("The folder to store the new Version Tracking Session");
|
||||
folderNameField = new JTextField();
|
||||
folderNameField.setFont(new Font("Monospaced", Font.PLAIN, 12));
|
||||
Gui.registerFont(folderNameField, GThemeDefaults.Fonts.MONOSPACED);
|
||||
folderNameField.setEditable(false); // force user to browse to choose
|
||||
|
||||
JButton browseFolderButton =
|
||||
|
|
|
@ -20,11 +20,11 @@ import java.util.*;
|
|||
import javax.swing.Icon;
|
||||
|
||||
import docking.widgets.table.AbstractGTableModel;
|
||||
import generic.theme.GIcon;
|
||||
import ghidra.feature.vt.api.main.VTProgramCorrelatorFactory;
|
||||
import ghidra.feature.vt.api.util.VTAbstractProgramCorrelatorFactory;
|
||||
import ghidra.util.classfinder.ClassSearcher;
|
||||
import ghidra.util.exception.AssertException;
|
||||
import resources.ResourceManager;
|
||||
|
||||
public class VTProgramTableCorrelatorModel extends AbstractGTableModel<VTProgramCorrelatorFactory> {
|
||||
|
||||
|
@ -40,7 +40,8 @@ public class VTProgramTableCorrelatorModel extends AbstractGTableModel<VTProgram
|
|||
return o1.getPriority() - o2.getPriority();
|
||||
}
|
||||
};
|
||||
private static final Icon ALREADY_RUN_ICON = ResourceManager.loadImage("images/flag-green.png");
|
||||
private static final Icon ALREADY_RUN_ICON =
|
||||
new GIcon("icon.version.tracking.correlator.status.already.run");
|
||||
|
||||
private List<VTProgramCorrelatorFactory> list;
|
||||
private Set<String> previouslyRunCorrelators;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue