![JAR search and dependency download from the Maven repository](/logo.png)
org.easyb.plugin.ui.swing.EasybNodeRenderer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of intellij-plugin Show documentation
Show all versions of intellij-plugin Show documentation
A plugin that enables easyb spec execution in IntelliJ
The newest version!
package org.easyb.plugin.ui.swing;
import java.awt.*;
import javax.swing.*;
import javax.swing.tree.DefaultTreeCellRenderer;
import org.easyb.plugin.StepResult;
public class EasybNodeRenderer extends DefaultTreeCellRenderer {
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
JLabel label = (JLabel) super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
SwingResultNode node = (SwingResultNode) value;
StepResult stepResult = (StepResult) node.getUserObject();
String stepName = capitalizeName(stepResult.getStepType().toString());
label.setText(stepName + " " + stepResult.getStepName());
label.setIcon(loadIcon(node));
return label;
}
private String capitalizeName(String word) {
char[] letters = word.toLowerCase().toCharArray();
StringBuilder builder = new StringBuilder();
builder.append(Character.toUpperCase(letters[0]));
for (int i = 1; i < letters.length; i++) {
builder.append(letters[i]);
}
return builder.toString();
}
private static Icon loadIcon(SwingResultNode node) {
switch (node.getResult().getOutcome()) {
case FAILURE:
return new ImageIcon(EasybNodeRenderer.class.getResource("/failure.png"));
case PENDING:
return new ImageIcon(EasybNodeRenderer.class.getResource("/pending.png"));
case SUCCESS:
return new ImageIcon(EasybNodeRenderer.class.getResource("/success.png"));
case RUNNING:
return new ImageIcon(EasybNodeRenderer.class.getResource("/running.png"));
default:
throw new RuntimeException("Unrecognized outcome type: " + node.getResult().getOutcome());
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy