diff --git a/pom.xml b/pom.xml index 21ede6b..5e62bc3 100644 --- a/pom.xml +++ b/pom.xml @@ -52,7 +52,7 @@ kg.apc jmeter-plugins-cmn-jmeter - 0.6 + 0.7 kg.apc @@ -95,5 +95,18 @@ maven-compiler-plugin 3.10.0 + + com.github.weisj + darklaf + 1.3.3.4 + compile + + + com.github.weisj + darklaf + 1.3.3.4 + pom + + diff --git a/src/main/java/org/qainsights/jmeter/validatetg/gui/ValidateTGAction.java b/src/main/java/org/qainsights/jmeter/validatetg/gui/ValidateTGAction.java index ad564af..7b06f98 100644 --- a/src/main/java/org/qainsights/jmeter/validatetg/gui/ValidateTGAction.java +++ b/src/main/java/org/qainsights/jmeter/validatetg/gui/ValidateTGAction.java @@ -7,6 +7,7 @@ import java.awt.event.ActionEvent; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; +import java.net.URISyntaxException; import javax.swing.AbstractAction; class ValidateTGAction extends AbstractAction { @@ -14,11 +15,11 @@ class ValidateTGAction extends AbstractAction { public static final KeyStroke VALIDATE_TG = KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.ALT_DOWN_MASK); private static final Logger log = LoggerFactory.getLogger(ValidateTGAction.class); - ValidateTGAction() { + ValidateTGAction() throws URISyntaxException { super("Validate Thread Group(s)"); putValue(Action.ACTION_COMMAND_KEY, "validate_tg"); putValue(Action.ACCELERATOR_KEY, VALIDATE_TG); - putValue(Action.SMALL_ICON, ValidateTGMenuItem.getButtonIcon(12)); + putValue(Action.SMALL_ICON, ValidateTGMenuItem.getButtonIcon()); } public void actionPerformed(ActionEvent actionEvent) { diff --git a/src/main/java/org/qainsights/jmeter/validatetg/gui/ValidateTGMenuItem.java b/src/main/java/org/qainsights/jmeter/validatetg/gui/ValidateTGMenuItem.java index 3c0f448..fc7d1cc 100644 --- a/src/main/java/org/qainsights/jmeter/validatetg/gui/ValidateTGMenuItem.java +++ b/src/main/java/org/qainsights/jmeter/validatetg/gui/ValidateTGMenuItem.java @@ -4,19 +4,31 @@ import org.apache.jmeter.gui.MainFrame; import org.apache.jmeter.gui.util.JMeterToolBar; import org.apache.jmeter.gui.action.ActionRouter; +import org.apache.jmeter.util.JMeterUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.util.Objects; +import com.github.weisj.darklaf.icons.ThemedSVGIcon; public class ValidateTGMenuItem extends JMenuItem implements ActionListener{ private static final Logger log = LoggerFactory.getLogger(ValidateTGMenuItem.class); - private static final Action vtg = new ValidateTGAction(); + private static Action vtg = null; + + static { + try { + vtg = new ValidateTGAction(); + } catch (URISyntaxException e) { + e.printStackTrace(); + } + } public ValidateTGMenuItem() { super(vtg); @@ -24,9 +36,15 @@ public ValidateTGMenuItem() { addToolbarIcon(); } - public static ImageIcon getButtonIcon(int pixelSize) { - String sizedImage = String.format("/org/qainsights/jmeter/validatetg/validate-tg-icon-%2dx%2d.png", pixelSize, pixelSize); - return new ImageIcon(Objects.requireNonNull(ValidateTGMenuItem.class.getResource(sizedImage))); + public static Icon getButtonIcon() throws URISyntaxException { + log.debug("Image"); + String svgResourcePath = "/org/qainsights/jmeter/validatetg/Check-Mark.svg"; + URL svgUrl = JMeterUtils.class.getResource(svgResourcePath); + URI svgUri = null; + svgUri = svgUrl.toURI(); + Icon icon = new ThemedSVGIcon(svgUri, 22, 22); + + return icon; } private void addToolbarIcon() { @@ -49,15 +67,20 @@ public void run() { } int pos = getPositionForIcon(toolbar.getComponents()); log.debug("validate rootPos: " + String.valueOf(pos)); - Component toolbarButton = getToolbarButton(); + Component toolbarButton = null; + try { + toolbarButton = getToolbarButton(); + } catch (URISyntaxException e) { + e.printStackTrace(); + } toolbarButton.setSize(toolbar.getComponent(pos).getSize()); toolbar.add(toolbarButton, pos); } }); } } - private JButton getToolbarButton() { - JButton button = new JButton(getButtonIcon(22)); + private JButton getToolbarButton() throws URISyntaxException { + JButton button = new JButton(getButtonIcon()); button.setToolTipText("Validate Thread Group(s)"); button.addActionListener(this); button.setActionCommand("validate_tg"); @@ -71,7 +94,7 @@ private int getPositionForIcon(Component[] toolbarComponents) { if(itemClassName.contains("javax.swing.JButton")) { String actionCommandText = ((JButton) item).getModel().getActionCommand(); log.debug("Running for iteration: "+ index + ", " + actionCommandText); - if (actionCommandText != null && actionCommandText.equals("search_tree")){ + if (actionCommandText != null && actionCommandText.equals("start")){ break; } } diff --git a/src/main/resources/org/qainsights/jmeter/validatetg/Check-Mark.svg b/src/main/resources/org/qainsights/jmeter/validatetg/Check-Mark.svg new file mode 100644 index 0000000..373ca7d --- /dev/null +++ b/src/main/resources/org/qainsights/jmeter/validatetg/Check-Mark.svg @@ -0,0 +1,22 @@ + +Created with Fabric.js 3.5.0 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-12x12.png b/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-12x12.png deleted file mode 100644 index 7a694c8..0000000 Binary files a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-12x12.png and /dev/null differ diff --git a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-13x13.png b/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-13x13.png deleted file mode 100644 index e636c5a..0000000 Binary files a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-13x13.png and /dev/null differ diff --git a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-14x14.png b/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-14x14.png deleted file mode 100644 index ef0a3f4..0000000 Binary files a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-14x14.png and /dev/null differ diff --git a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-16x16.png b/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-16x16.png deleted file mode 100644 index 2763f03..0000000 Binary files a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-16x16.png and /dev/null differ diff --git a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-22x22.png b/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-22x22.png deleted file mode 100644 index 1614570..0000000 Binary files a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-22x22.png and /dev/null differ diff --git a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-32x32.png b/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-32x32.png deleted file mode 100644 index 2b79860..0000000 Binary files a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-32x32.png and /dev/null differ diff --git a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-48x48.png b/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-48x48.png deleted file mode 100644 index cb25ac5..0000000 Binary files a/src/main/resources/org/qainsights/jmeter/validatetg/validate-tg-icon-48x48.png and /dev/null differ