package husacct.analyse.presentation.reconstruct.mojo; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.GroupLayout; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.border.TitledBorder; import javax.swing.GroupLayout.Alignment; import husacct.ServiceProvider; import husacct.analyse.task.reconstruct.mojo.MoJo; import husacct.common.help.presentation.HelpableJPanel; import husacct.control.IControlService; public class MojoJPanelCompare extends HelpableJPanel implements ActionListener{ private static final long serialVersionUID = -8871162150900400867L; private JButton compareBrowseGold, compareBrowseToCompare, compareArchitecture; private JLabel comparePathGold, comparePathToCompare, compareResult; private JTextField compareTextGold, compareTextToCompare; private IControlService controlService; public MojoJPanelCompare(){ setBorder(new TitledBorder("Compare Architectures")); setPageComponents(); createLayout(); controlService = ServiceProvider.getInstance().getControlService(); } private void setPageComponents(){ comparePathGold = new JLabel("Gold standard:"); comparePathGold.setHorizontalAlignment(SwingConstants.RIGHT); compareTextGold = new JTextField(40); compareTextGold.setEnabled(false); compareBrowseGold = new JButton("Browse"); compareBrowseGold.addActionListener(this); comparePathToCompare = new JLabel("To compare:"); comparePathToCompare.setHorizontalAlignment(SwingConstants.RIGHT); compareTextToCompare = new JTextField(40); compareTextToCompare.setEnabled(false); compareBrowseToCompare= new JButton("Browse"); compareBrowseToCompare.addActionListener(this); compareArchitecture= new JButton("Compare Architectures"); compareArchitecture.addActionListener(this); compareArchitecture.setEnabled(false); //Result field compareResult = new JLabel("The calculated MoJoFM value is: " + " %"); } private void createLayout(){ GroupLayout groupLayout = new GroupLayout(this); groupLayout.setAutoCreateGaps(true); groupLayout.setAutoCreateContainerGaps(true); groupLayout.setHorizontalGroup( groupLayout.createParallelGroup(Alignment.LEADING) .addGroup(groupLayout.createSequentialGroup() .addContainerGap() .addGroup(groupLayout.createParallelGroup(Alignment.LEADING) .addComponent(comparePathGold) .addComponent(comparePathToCompare)) .addGroup(groupLayout.createParallelGroup(Alignment.LEADING) .addComponent(compareTextGold) .addComponent(compareTextToCompare) .addGroup(groupLayout.createSequentialGroup() .addComponent(compareArchitecture) .addComponent(compareResult))) .addGroup(groupLayout.createParallelGroup(Alignment.TRAILING) .addComponent(compareBrowseGold) .addComponent(compareBrowseToCompare)) .addContainerGap())); groupLayout.setVerticalGroup( groupLayout.createParallelGroup(Alignment.LEADING) .addGroup(groupLayout.createSequentialGroup() .addGap(5) .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE) .addComponent(comparePathGold) .addComponent(compareTextGold) .addComponent(compareBrowseGold)) .addContainerGap() .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE) .addComponent(comparePathToCompare) .addComponent(compareTextToCompare) .addComponent(compareBrowseToCompare)) .addContainerGap() .addGap(25) .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE) .addComponent(compareArchitecture) .addComponent(compareResult)))); this.setLayout(groupLayout); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource() == compareBrowseGold){ compareTextGold.setText(controlService.showMojoExportImportDialog(false)); enableCompareArchitecture(); } if(e.getSource() == compareBrowseToCompare){ compareTextToCompare.setText(controlService.showMojoExportImportDialog(false)); enableCompareArchitecture(); } if (e.getSource() == compareArchitecture){ MoJo mojo = new MoJo(); String[] daoArray = {compareTextGold.getText(), compareTextToCompare.getText(), "-fm"}; //"-fm is a different execution of mojo, see MoJo.java.showerrormessage() for more functions" double mojoResult = mojo.executeMojo(daoArray); compareResult.setText("The calculated MoJoFM value is: " + mojoResult + "%"); } } private void enableCompareArchitecture(){ if(!compareTextGold.getText().trim().isEmpty()&& !compareTextToCompare.getText().trim().isEmpty() ){ compareArchitecture.setEnabled(true); } else{ compareArchitecture.setEnabled(false); } } }