/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.jlab.groot.data;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 *
 * @author gavalian
 */
public class DatasetOperations extends JPanel {
    
    Map  datasetObjects = null;
    JComboBox firstOperand = null;
    JComboBox secondOperand = null;
    List  results = new ArrayList();
    
    public DatasetOperations(Map datasets){
        super();
        datasetObjects = datasets;
        initUI();
    }
    
    private void initUI(){
        Set objectKeys = datasetObjects.keySet();
        String[] choices = new String[objectKeys.size()];
        int counter = 0;
        for(String key : objectKeys){
            choices[counter] = key;
            counter++;
        }
        firstOperand  = new JComboBox(choices);
        secondOperand = new JComboBox(choices);
        this.setLayout(new FlowLayout());
        this.add(firstOperand);
        this.add(secondOperand);
        
        JButton buttonDivide = new JButton("Divide");
        
        buttonDivide.addActionListener(
                new ActionListener() {
                        @Override
			public void actionPerformed(ActionEvent event) {
                            operationDivide();
			}
                }
        );
        
        JButton buttonAdd = new JButton("Add");
        buttonAdd.addActionListener(
                new ActionListener() {
                        @Override
			public void actionPerformed(ActionEvent event) {
                            operationAdd();
			}
                }
        );
        
        JButton buttonNormalize = new JButton("Normalize");
        buttonNormalize.addActionListener(
                new ActionListener() {
                        @Override
			public void actionPerformed(ActionEvent event) {
                            operationNormalize();
			}
                }
        );
        
        this.add(buttonDivide);
        this.add(buttonAdd);
        this.add(buttonNormalize);
        
    }
    
    private void operationDivide(){
        String op1 = (String) firstOperand.getSelectedItem();
        String op2 = (String) secondOperand.getSelectedItem();
        results.clear();
        
        H1F h1 = (H1F) datasetObjects.get(op1);
        H1F h2 = (H1F) datasetObjects.get(op2);
        
        H1F h3 = H1F.divide(h1, h2);
        h3.setFillColor(45);
        h3.setTitleX(h1.getName()+"_divided_"+h2.getName());
        //h3.setName(h1.getName()+"_divided_"+h2.getName());
        results.add(h3);
    }
    
    private void operationAdd(){
        String op1 = (String) firstOperand.getSelectedItem();
        String op2 = (String) secondOperand.getSelectedItem();

        results.clear();
        
        H1F h1 = (H1F) datasetObjects.get(op1);
        H1F h2 = (H1F) datasetObjects.get(op2);
        
        H1F h3 = H1F.add(h1, h2);
        h3.setFillColor(45);
        h3.setTitleX(h1.getName()+"_add_"+h2.getName());
        //h3.setName(h1.getName()+"_divided_"+h2.getName());
        results.add(h3);
    }
    private void operationNormalize(){
        
        String op1 = (String) firstOperand.getSelectedItem();
        String op2 = (String) secondOperand.getSelectedItem();
        
        results.clear();
        
        H1F h1 = (H1F) datasetObjects.get(op1);
        H1F h2 = (H1F) datasetObjects.get(op2);
        
        H1F h3 = H1F.normalized(h1, h2);
        h3.setFillColor(45);
        h3.setTitleX(h1.getName()+"_normalized_"+h2.getName());
        //h3.setName(h1.getName()+"_divided_"+h2.getName());
        results.add(h3);
    }
    
    public List  getResults(){
        return this.results;
    }
    
    public static JDialog createOperations(JFrame parent,Map datasets){
        JDialog dialog = new JDialog(parent,
                                                 "Click a button",
                                                 true);
        DatasetOperations oper = new DatasetOperations(datasets);
        dialog.setContentPane(oper);
        dialog.setSize(300, 300);
        return dialog;
    }
    
}

 

Ads help maintain this website.