package cute.gui;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import java.awt.*;
/**
* .
* User: Koushik Sen (ksen@cs.uiuc.edu)
* Date: Nov 1, 2005
* Time: 9:57:35 PM
*/
public class JCuteView extends JFrame {
/**
*
*/
private static final long serialVersionUID = 3852581110610303863L;
JMenuItem menuItem41 = new JMenuItem("Options ...");
JSeparator separator54 = new JSeparator();
JMenuItem menuItem55 = new JMenuItem("Exit");
JMenu menu4 = new JMenu("File");
JMenuItem menuItem43 = new JMenuItem("Compile");
JMenuItem menuItem44 = new JMenuItem("(Re)start");
JMenuItem menuItem45 = new JMenuItem("Continue");
JMenuItem menuItem46 = new JMenuItem("Replay");
JSeparator separator51 = new JSeparator();
JMenuItem menuItem52 = new JMenuItem("Pause");
JMenuItem menuItem53 = new JMenuItem("Cancel");
JMenu menu5 = new JMenu("Action");
JMenuItem menuItem49 = new JMenuItem("Help");
JSeparator separator56 = new JSeparator();
JMenuItem menuItem57 = new JMenuItem("About");
JMenu menu6 = new JMenu("Help");
JMenuBar menuBar3 = new JMenuBar();
ProgressView progressComponent = new ProgressView();
CoverageGui coverageComponent = new CoverageGui();
JButton compileButton = new JButton();
JButton startButton = new JButton();
JButton continueButton = new JButton();
JButton replayButton = new JButton();
JButton pauseButton = new JButton();
JButton cancelButton = new JButton();
JButton optionsButton = new JButton();
JButton quitButton = new JButton();
JButton aboutButton = new JButton();
JButton helpButton = new JButton();
JButton junitButton = new JButton();
JPanel wholeComponent = new JPanel(new GridBagLayout());
JToolBar toolBarComponent = new JToolBar(JToolBar.HORIZONTAL);
JLabel jLabel19 = new JLabel();
JTextField srcDir = new JTextField("",40);
JButton browseSrcDirButton = new JButton();
JLabel jLabel20 = new JLabel();
JTextField mainJavaFile = new JTextField("",40);
JButton browseMainJavaFileButton = new JButton();
JPanel programSelectionComponent = new JPanel(new GridBagLayout());
JList runNumber = new TooltipJList();
JScrollPane runNumberScrollPanel = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JPanel runNumberComponent = new JPanel(new GridLayout(1,1));
JList input = new TooltipJList();
JScrollPane inputjScrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JPanel inputComponent = new JPanel(new GridLayout(1,1));
JSplitPane runNumberAndInputSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
TooltipJList trace = new TooltipJList();
JScrollPane traceScrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JPanel traceComponent = new JPanel(new GridLayout(1,1));
JLabel sourceName = new JLabel();
JTextPane source = new JTextPane();
JScrollPane sourceScrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JPanel sourceComponent = new JPanel(new BorderLayout(5,5));
JSplitPane traceAndSourceSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
JSplitPane logSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
JTextPaneOutputLogger output = new JTextPaneOutputLogger();
JScrollPane outputScrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JPanel executionLogComponent = new JPanel(new GridLayout(1,1));
JLabel funL = new JLabel("Function to be Tested");
JComboBox funT = new JComboBox();
JLabel paramsL = new JLabel("Program parameters");
JTextField paramsT = new JTextField();
Border loweredetched = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);
JPanel outputComponent = new JPanel(new GridLayout(1,1));
JTabbedPane tabbedComponent = new JTabbedPane();
public JCuteView() {
super("jCUTE (CUTE for JAVA): A Concolic Unit Testing Engine for Java");
this.setResizable(true);
//setIconImage(GetImageIcon.getImage("images/main.gif"));
TitledBorder tb1;
menuItem41.setMnemonic('o');
menuItem55.setMnemonic('x');
menu4.setMnemonic('f');
menu4.add(menuItem41);
menu4.add(separator54);
menu4.add(menuItem55);
menuItem43.setMnemonic('c');
menuItem44.setMnemonic('s');
menuItem45.setMnemonic('n');
menuItem46.setMnemonic('r');
menuItem52.setMnemonic('p');
menuItem53.setMnemonic('l');
menu5.setMnemonic('a');
menu5.add(menuItem43);
menu5.add(menuItem44);
menu5.add(menuItem45);
menu5.add(menuItem46);
menu5.add(separator51);
menu5.add(menuItem52);
menu5.add(menuItem53);
menuItem49.setMnemonic('l');
menuItem57.setMnemonic('b');
menu6.setMnemonic('h');
menu6.add(menuItem49);
menu6.add(separator56);
menu6.add(menuItem57);
menuBar3.add(menu4);
menuBar3.add(menu5);
menuBar3.add(menu6);
compileButton.setIcon(GetImageIcon.getIcon("images/Compile.gif"));
startButton.setIcon(GetImageIcon.getIcon("images/Restart.gif"));
continueButton.setIcon(GetImageIcon.getIcon("images/Continue.gif"));
replayButton.setIcon(GetImageIcon.getIcon("images/Replay.gif"));
pauseButton.setIcon(GetImageIcon.getIcon("images/Pause.gif"));
cancelButton.setIcon(GetImageIcon.getIcon("images/Cancel.gif"));
optionsButton.setIcon(GetImageIcon.getIcon("images/Options.gif"));
quitButton.setIcon(GetImageIcon.getIcon("images/Exit.gif"));
aboutButton.setIcon(GetImageIcon.getIcon("images/About.gif"));
helpButton.setIcon(GetImageIcon.getIcon("images/Help.gif"));
junitButton.setIcon(GetImageIcon.getIcon("images/junitlogo.gif"));
toolBarComponent.add(compileButton);
toolBarComponent.add(startButton);
toolBarComponent.add(continueButton);
toolBarComponent.add(replayButton);
toolBarComponent.add(pauseButton);
toolBarComponent.add(cancelButton);
toolBarComponent.add(optionsButton);
toolBarComponent.add(junitButton);
toolBarComponent.add(helpButton);
toolBarComponent.add(aboutButton);
toolBarComponent.add(quitButton);
jLabel19.setText("Source Directory ");
browseSrcDirButton.setIcon(GetImageIcon.getIcon("images/Dir.gif"));
jLabel20.setText("Main Java File");
browseMainJavaFileButton.setIcon(GetImageIcon.getIcon("images/File.gif"));
// Java program selection
programSelectionComponent.add(jLabel19,new GBConstraints(0,0,1,1,0.0,0.0,17,0,0,0,new Insets(0,2,2,2)));
programSelectionComponent.add(srcDir,new GBConstraints(1,0,3,1,100.0,0.0,17,2,0,0,new Insets(0,2,2,2)));
programSelectionComponent.add(browseSrcDirButton,new GBConstraints(4,0,1,1,0.0,0.0,10,0,0,0,new Insets(0,2,2,2)));
programSelectionComponent.add(jLabel20,new GBConstraints(0,1,1,1,0.0,0.0,17,0,0,0,new Insets(0,2,2,2)));
programSelectionComponent.add(mainJavaFile,new GBConstraints(1,1,3,1,100.0,0.0,17,2,0,0,new Insets(0,2,2,2)));
programSelectionComponent.add(browseMainJavaFileButton,new GBConstraints(4,1,1,1,0.0,0.0,10,0,0,0,new Insets(0,2,2,2)));
programSelectionComponent.add(funL,new GBConstraints(0,2,1,1,0.0,0.0,17,0,0,0,new Insets(0,2,2,2)));
programSelectionComponent.add(funT,new GBConstraints(1,2,1,1,100.0,0.0,17,2,0,0,new Insets(0,2,2,2)));
programSelectionComponent.add(paramsL,new GBConstraints(2,2,1,1,0.0,0.0,17,0,0,0,new Insets(0,2,2,2)));
programSelectionComponent.add(paramsT,new GBConstraints(3,2,1,1,100.0,0.0,17,2,0,0,new Insets(0,2,2,2)));
tb1 = BorderFactory.createTitledBorder(loweredetched, "Java Program to be Tested");
tb1.setTitleJustification(TitledBorder.LEFT);
programSelectionComponent.setBorder(tb1);
runNumber.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
runNumberScrollPanel.setViewportView(runNumber);
runNumberComponent.add(runNumberScrollPanel);
runNumberScrollPanel.setPreferredSize(new Dimension(50,300));
tb1 = BorderFactory.createTitledBorder(loweredetched, "Path #");
tb1.setTitleJustification(TitledBorder.LEFT);
runNumberComponent.setBorder(tb1);
input.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
inputjScrollPane.setViewportView(input);
inputComponent.add(inputjScrollPane);
inputjScrollPane.setPreferredSize(new Dimension(150,300));
tb1 = BorderFactory.createTitledBorder(loweredetched, "Input");
tb1.setTitleJustification(TitledBorder.LEFT);
inputComponent.setBorder(tb1);
runNumberAndInputSplitPane.setDividerSize(3);
runNumberAndInputSplitPane.setLeftComponent(runNumberComponent);
runNumberAndInputSplitPane.setRightComponent(inputComponent);
trace.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
traceScrollPane.setViewportView(trace);
traceScrollPane.setPreferredSize(new Dimension(150,300));
traceComponent.add(traceScrollPane);
tb1 = BorderFactory.createTitledBorder(loweredetched, "Trace");
tb1.setTitleJustification(TitledBorder.LEFT);
traceComponent.setBorder(tb1);
sourceName.setText("Source");
source.setAutoscrolls(true);
sourceScrollPane.setViewportView(source);
sourceScrollPane.setPreferredSize(new Dimension(500,300));
sourceComponent.add("North",sourceName);
sourceComponent.add("Center",sourceScrollPane);
traceAndSourceSplitPane.setDividerSize(3);
traceAndSourceSplitPane.setLeftComponent(traceComponent);
traceAndSourceSplitPane.setRightComponent(sourceComponent);
logSplitPane.setDividerSize(3);
logSplitPane.setLeftComponent(runNumberAndInputSplitPane);
logSplitPane.setRightComponent(traceAndSourceSplitPane);
outputScrollPane.setPreferredSize(new Dimension(840,100));
outputScrollPane.setViewportView(output);
tb1 = BorderFactory.createTitledBorder(loweredetched, "Log");
tb1.setTitleJustification(TitledBorder.LEFT);
executionLogComponent.setBorder(tb1);
executionLogComponent.add(logSplitPane);
outputComponent.add(outputScrollPane);
tb1 = BorderFactory.createTitledBorder(loweredetched, "Output");
tb1.setTitleJustification(TitledBorder.LEFT);
outputComponent.setBorder(tb1);
tabbedComponent.addTab("Testing Log",executionLogComponent);
tabbedComponent.addTab("Output",outputComponent);
tabbedComponent.addTab("Statistics",coverageComponent);
getContentPane().add("Center",wholeComponent);
wholeComponent.add(toolBarComponent,
new GridBagConstraints(0,0,1,1,1.0,0.0,
GridBagConstraints.EAST,GridBagConstraints.BOTH,
new Insets(0,2,2,2),0,0));
wholeComponent.add(programSelectionComponent,
new GridBagConstraints(0,1,1,1,1.0,0.0,
GridBagConstraints.EAST,GridBagConstraints.BOTH,
new Insets(0,2,2,2),0,0));
wholeComponent.add(tabbedComponent,
new GridBagConstraints(0,2,1,1,1.0,1.0,
GridBagConstraints.EAST,GridBagConstraints.BOTH,
new Insets(0,2,2,2),0,0));
wholeComponent.add(progressComponent,
new GridBagConstraints(0,3,1,1,1.0,0.0,
GridBagConstraints.EAST,GridBagConstraints.BOTH,
new Insets(0,2,2,2),0,0));
}
class GBConstraints extends GridBagConstraints {
/**
*
*/
private static final long serialVersionUID = 7310438441686940516L;
public GBConstraints(
int gridx,
int gridy,
int gridwidth,
int gridheight,
double weightx,
double weighty,
int anchor,
int fill,
int ipadx,
int ipady,
Insets insets)
{
super();
this.gridx = gridx;
this.gridy = gridy;
this.gridwidth = gridwidth;
this.gridheight = gridheight;
this.weightx = weightx;
this.weighty = weighty;
this.anchor = anchor;
this.fill = fill;
this.ipadx = ipadx;
this.ipady = ipady;
this.insets = insets;
}
}
}