//package org.trianacode.shiwaall.dax; // //import org.apache.commons.logging.Log; //import org.trianacode.config.TrianaProperties; //import org.trianacode.enactment.logging.Loggers; //import org.trianacode.gui.panels.ParameterPanel; // //import javax.swing.*; //import java.awt.*; //import java.awt.event.ActionEvent; //import java.awt.event.ActionListener; //import java.awt.event.ItemEvent; //import java.awt.event.ItemListener; // ///** // * Created by IntelliJ IDEA. // * User: Ian Harvey // * Date: Sep 10, 2010 // * Time: 2:25:51 PM // * To change this template use File | Settings | File Templates. // */ //public class JobUnitPanel extends ParameterPanel { // private static final int AUTO_CONNECT = 0; // private static final int SCATTER_CONNECT = 1; // private static final int ONE2ONE_CONNECT = 2; // private static final int SPREAD_CONNECT = 3; // // private JTabbedPane tabPane = new JTabbedPane(); // private JPanel upperPanel = new JPanel(new GridLayout(4, 2, 5, 5)); // private JPanel lowerPanel = new JPanel(); // private JTextField nameField = new JTextField(""); // private JTextField execField = new JTextField(""); // private JTextField argsField = new JTextField(""); // JLabel collectLabel = new JLabel(""); // // private int numberOfJobs = 1; // private int fileInputsPerJob = 1; // private boolean collection = false; // private boolean autoConnect = true; // private int connectPattern = AUTO_CONNECT; // // String exec = "ls"; // // // public boolean isAutoCommitByDefault(){return true;} // // @Override // public void init() { // getParams(); // // TrianaProperties p = this.getTask().getProperties(); // if (p != null) { // log("Properties before : " + p.toString()); // } // // JPanel mainPane = new JPanel(); // mainPane.setLayout(new BoxLayout(mainPane, BoxLayout.Y_AXIS)); // upperPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Job")); // // JLabel nameLabel = new JLabel("Job Name :"); // upperPanel.add(nameLabel); // changeToolName(getTask().getToolName()); // upperPanel.add(nameField); // // JLabel jobExecLabel = new JLabel("Executable location"); // upperPanel.add(jobExecLabel); // execField.setText(exec); // upperPanel.add(execField); // // // JLabel argsLabel = new JLabel("Job Args :"); // upperPanel.add(argsLabel); // argsField.setText((String) getParameter("args")); // upperPanel.add(argsField); // // final JCheckBox collectionBox = new JCheckBox("Collection", collection); // collectionBox.addItemListener(new ItemListener() { // public void itemStateChanged(ItemEvent ie) { // if (collectionBox.isSelected()) { // collectLabel.setText("Collection of jobs."); // collection = true; // setEnabling(lowerPanel, true); // } else { // collectLabel.setText("Not a collection"); // collection = false; // setEnabling(lowerPanel, false); // } // } // }); // upperPanel.add(collectionBox); // // if (collection) { // collectLabel.setText("Collection of jobs."); // } else { // collectLabel.setText("Not a collection"); // } // upperPanel.add(collectLabel); // // mainPane.add(upperPanel); // // lowerPanel.setLayout(new BoxLayout(lowerPanel, BoxLayout.Y_AXIS)); // lowerPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Job Collection Options")); // JPanel lowerPanel1 = new JPanel(new GridLayout(3, 1, 5, 5)); // final JPanel lowerPanelAuto = new JPanel(new GridLayout(1, 2, 5, 5)); // final JPanel lowerPanelScatter = new JPanel(new GridLayout(1, 2, 5, 5)); // final JPanel lowerPanelOne2One = new JPanel(new GridLayout(1, 2, 5, 5)); // // final JRadioButton autoCheck = new JRadioButton("Auto (Fully connect all incoming nodes)", autoConnect); // final JRadioButton scatterCheck = new JRadioButton("Scatter (Each job takes n-files as input) ", !autoConnect); // final JRadioButton spreadCheck = new JRadioButton("Spread (Connect incoming files to n-jobs) ", !autoConnect); // final JRadioButton one2oneCheck = new JRadioButton("One-2-one (Job duplicated to number of input files)", !autoConnect); // // ButtonGroup radios = new ButtonGroup(); // radios.add(autoCheck); // radios.add(scatterCheck); // radios.add(spreadCheck); // radios.add(one2oneCheck); // // autoCheck.addItemListener(new ItemListener() { // public void itemStateChanged(ItemEvent ie) { // if (autoCheck.isSelected()) { // connectPattern = AUTO_CONNECT; // setEnabling(lowerPanelAuto, true); // setEnabling(lowerPanelScatter, false); // setEnabling(lowerPanelOne2One, false); // } // } // }); // scatterCheck.addItemListener(new ItemListener() { // public void itemStateChanged(ItemEvent ie) { // if (scatterCheck.isSelected()) { // connectPattern = SCATTER_CONNECT; // setEnabling(lowerPanelAuto, false); // setEnabling(lowerPanelScatter, true); // setEnabling(lowerPanelOne2One, false); // } // } // }); // spreadCheck.addItemListener(new ItemListener() { // public void itemStateChanged(ItemEvent ie) { // if (spreadCheck.isSelected()) { // connectPattern = SPREAD_CONNECT; // setEnabling(lowerPanelAuto, true); // setEnabling(lowerPanelScatter, false); // setEnabling(lowerPanelOne2One, false); // } // } // }); // one2oneCheck.addItemListener(new ItemListener() { // public void itemStateChanged(ItemEvent ie) { // if (one2oneCheck.isSelected()) { // connectPattern = ONE2ONE_CONNECT; // setEnabling(lowerPanelAuto, false); // setEnabling(lowerPanelScatter, false); // setEnabling(lowerPanelOne2One, true); // } // } // }); // // lowerPanel1.add(autoCheck); // lowerPanel1.add(scatterCheck); // lowerPanel1.add(spreadCheck); // lowerPanel1.add(one2oneCheck); // // final JLabel numberJobsLabel = new JLabel("No. jobs : " + numberOfJobs); // // final JLabel numberInputFilesLabel = new JLabel("No. Files/job : " + fileInputsPerJob); // // final String[] numbers = new String[100]; // for (int i = 1; i < 100; i++) { // numbers[i] = "" + i; // } // // final JComboBox jobsCombo = new JComboBox(numbers); // jobsCombo.setSelectedItem("" + numberOfJobs); // jobsCombo.addActionListener(new ActionListener() { // public void actionPerformed(ActionEvent e) { // numberOfJobs = Integer.parseInt((String) jobsCombo.getSelectedItem()); // numberJobsLabel.setText("No. files : " + numberOfJobs); // } // }); // lowerPanelAuto.add(numberJobsLabel); // lowerPanelAuto.add(jobsCombo); // // final JComboBox filesPerJobCombo = new JComboBox(numbers); // filesPerJobCombo.setSelectedItem("" + fileInputsPerJob); // filesPerJobCombo.addActionListener(new ActionListener() { // public void actionPerformed(ActionEvent e) { // fileInputsPerJob = Integer.parseInt((String) filesPerJobCombo.getSelectedItem()); // numberInputFilesLabel.setText("No. files : " + fileInputsPerJob); // } // }); // lowerPanelScatter.add(numberInputFilesLabel); // lowerPanelScatter.add(filesPerJobCombo); // // lowerPanel.add(lowerPanel1); // lowerPanel.add(lowerPanelAuto); // lowerPanel.add(lowerPanelScatter); // mainPane.add(lowerPanel); // // setEnabling(lowerPanel, collection); // if (collection) { // setEnabling(lowerPanelAuto, autoConnect); // setEnabling(lowerPanelScatter, !autoConnect); // } // this.add(mainPane); // } // // public void getParams() { // collection = isCollection(); // numberOfJobs = getNumberOfJobs(); // connectPattern = getConnectPattern(); // fileInputsPerJob = getFileInputsPerJob(); // } // // private void setParams() { // getTask().setParameter("args", argsField.getText()); // getTask().setParameter("numberOfJobs", numberOfJobs); // getTask().setParameter("fileInputsPerJob", fileInputsPerJob); // getTask().setParameter("collection", collection); // getTask().setParameter("connectPattern", connectPattern); // } // // public void changeToolName(String name) { // nameField.setText(name); // log("Changing tool " + getTask().getToolName() + " to : " + name); // getTask().setParameter("jobName", name); // getTask().setToolName(name); // } // // public void applyClicked() { // apply(); // } // // public void okClicked() { // apply(); // } // // ; // // public void apply() { // changeToolName(nameField.getText()); // setParams(); // } // // public void setEnabling(Component c, boolean enable) { // c.setEnabled(enable); // if (c instanceof Container) { // Component[] arr = ((Container) c).getComponents(); // for (int j = 0; j < arr.length; j++) { // setEnabling(arr[j], enable); // } // } // } // // private boolean isCollection() { // Object o = getParameter("collection"); // log("Returned object from param *collection* : " + o.getClass().getCanonicalName() + " : " + o.toString()); // if (o.equals(true)) { // return true; // } else { // return false; // } // } // // private int getNumberOfJobs() { // Object o = getParameter("numberOfJobs"); // log("Returned object from param *numberOfJobs* : " + o.getClass().getCanonicalName() + " : " + o.toString()); // if (o != null) { // int value = (Integer) o; // if (value > 1) { // return value; // } // return 1; // } // return 1; // } // // private int getFileInputsPerJob() { // Object o = getParameter("fileInputsPerJob"); // log("Returned object from param *numberOfJobs* : " + o.getClass().getCanonicalName() + " : " + o.toString()); // if (o != null) { // int value = (Integer) o; // if (value > 1) { // return value; // } // return 1; // } // return 1; // } // // private int getConnectPattern() { // Object o = getParameter("connectPattern"); // if (o != null) { // int value = (Integer) o; // switch (value) { // case 0: // return AUTO_CONNECT; // case 1: // return SCATTER_CONNECT; // case 2: // return ONE2ONE_CONNECT; // case 3: // return SPREAD_CONNECT; // } // } // return AUTO_CONNECT; // } // // @Override // public void reset() { // //To change body of implemented methods use File | Settings | File Templates. // } // // @Override // public void dispose() { // //To change body of implemented methods use File | Settings | File Templates. // } // // private void log(String s) { // Log log = Loggers.DEV_LOGGER; // log.debug(s); //// System.out.println(s); // } //}