![JAR search and dependency download from the Maven repository](/logo.png)
org.easyb.plugin.ui.swing.SwingEasybView 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 static org.easyb.util.BehaviorStepType.GENESIS;
import static org.easyb.plugin.Outcome.RUNNING;
import org.easyb.plugin.StepResult;
import org.easyb.plugin.ui.EasybView;
import org.easyb.plugin.ui.ViewEventListener;
import javax.swing.*;
import static javax.swing.JSplitPane.HORIZONTAL_SPLIT;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultTreeModel;
import java.awt.*;
public class SwingEasybView extends JPanel implements EasybView {
private JTextArea consoleTextArea;
private SwingResultNode root;
protected JTree tree;
private JTextArea outputTextArea;
public SwingEasybView() {
setLayout(new BorderLayout());
root = new SwingResultNode(new StepResult("Root", GENESIS, RUNNING));
tree = createTree(root);
tree.setCellRenderer(new EasybNodeRenderer());
tree.setRootVisible(false);
outputTextArea = new JTextArea();
consoleTextArea = new JTextArea();
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("Console", new JScrollPane(consoleTextArea));
tabbedPane.addTab("Output", new JScrollPane(outputTextArea));
JSplitPane pane = new JSplitPane(HORIZONTAL_SPLIT, new JScrollPane(tree), tabbedPane);
pane.setDividerLocation(300);
add(pane);
}
protected JTree createTree(SwingResultNode node) {
return new JTree(node);
}
public void addBehaviorResult(SwingResultNode result) {
addBehaviorResult(root, result);
}
public void addBehaviorResult(SwingResultNode parent, SwingResultNode result) {
getModel().insertNodeInto(result, parent, parent.getChildCount());
refresh();
}
public void displayFailure(Throwable failure) {
}
public void writeOutput(final String text) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
outputTextArea.setText(text);
}
});
}
public void writeConsole(final String text) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
consoleTextArea.append(text);
}
});
}
public void refresh() {
getModel().nodeStructureChanged(root);
TreeUtil.expandAll(tree, true);
}
public void registerEventListener(final ViewEventListener listener) {
tree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent event) {
SwingResultNode node = (SwingResultNode) tree.getLastSelectedPathComponent();
listener.resultSelected(node);
}
});
}
private DefaultTreeModel getModel() {
return ((DefaultTreeModel) tree.getModel());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy