package plab.prefuseTests;

import java.util.Iterator;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.BorderLayout;
import java.awt.List;

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.DefaultListModel;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import javax.swing.Box;
import javax.swing.BoxLayout;

import prefuse.data.Graph;
import prefuse.data.Tuple;
import prefuse.Visualization;
import prefuse.data.tuple.TupleSet;
import prefuse.Constants;

/**
 * Frame to create simulation movies by
 * concatenating existing pdb files.
 *
 * @author gestalt
 */
public class PDBFrame {
    
    private final Graph m_graph;
    private final Visualization m_vis;
    private List list;

    public PDBFrame(Graph g, Visualization vis) {

        this.m_vis = vis;
        this.m_graph = g;
        this.list = new List();

        DefaultListModel dlm = new DefaultListModel();
        dlm.addElement("HEY");
        dlm.addElement("hak;");

       // this.list = new JList(dlm);

        JButton make = new JButton("Make Movie");
        make.addActionListener( new ActionListener() {
            public void actionPerformed( ActionEvent ae ) {
                concatPDBFiles(list.getItems());
            }
        });

        JButton addFocused = new JButton("Add Selected");
        addFocused.addActionListener( new ActionListener() {
            public void actionPerformed( ActionEvent ae ) {
                TupleSet focusGroup = m_vis.getGroup(Visualization.FOCUS_ITEMS);
                Iterator tuples = focusGroup.tuples();
                while (tuples.hasNext()) {
                    list.add(((Tuple)tuples.next()).getString("label"));
                }
            }

        });

        JScrollPane scrollList = new JScrollPane(list);

        Box box = new Box(BoxLayout.X_AXIS);
        box.add(make);
        box.add(addFocused);

        JPanel panel = new JPanel(new BorderLayout());
        panel.add(scrollList, BorderLayout.CENTER);
        panel.add(box, BorderLayout.SOUTH);

        JFrame frame = new JFrame("Movie Maker");
        frame.add(panel);
        frame.pack();
        frame.setVisible(true);
        frame.setSize(300, 400);
    }

    public void addTuple(Tuple t) {
        list.add(t.getString("label"));
    }

    private void concatPDBFiles(String[] list) {
        
        for (int i = 0; i < list.length; ++i) {
            
            
        }



    }

}
