001/*
002 * Copyright (c) 2009-2010 The Regents of the University of California.
003 * All rights reserved.
004 *
005 * '$Author: berkley $'
006 * '$Date: 2010-04-28 00:12:36 +0000 (Wed, 28 Apr 2010) $' 
007 * '$Revision: 24000 $'
008 * 
009 * Permission is hereby granted, without written agreement and without
010 * license or royalty fees, to use, copy, modify, and distribute this
011 * software and its documentation for any purpose, provided that the above
012 * copyright notice and the following two paragraphs appear in all copies
013 * of this software.
014 *
015 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
016 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
017 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
018 * THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
019 * SUCH DAMAGE.
020 *
021 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
022 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
023 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
024 * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
025 * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
026 * ENHANCEMENTS, OR MODIFICATIONS.
027 *
028 */
029
030package org.kepler.modulemanager.gui;
031
032import java.io.File;
033
034import javax.swing.DefaultListModel;
035import javax.swing.JLabel;
036import javax.swing.JList;
037import javax.swing.JPanel;
038import javax.swing.JScrollPane;
039import javax.swing.event.ListSelectionEvent;
040import javax.swing.event.ListSelectionListener;
041
042import org.jdesktop.layout.GroupLayout;
043import org.kepler.build.project.ProjectLocator;
044
045/**
046 * Created by David Welker.
047 * Date: Oct 6, 2009
048 * Time: 6:27:43 PM
049 */
050public class DownloadedModulesPanel extends JPanel
051{
052    private JLabel downloadedModulesListLabel = new JLabel("Downloaded Modules:");
053    private JList downloadedModulesList = new JList();
054    private JScrollPane downloadedModulesListScollPane = new JScrollPane(downloadedModulesList);
055
056
057    public DownloadedModulesPanel()
058    {
059        super();
060        initComponents();
061        layoutComponents();
062    }
063
064    public void refresh()
065    {
066        initComponents();
067    }
068
069    private void initComponents()
070    {
071        DefaultListModel listModel = new DefaultListModel();
072
073        File projectDir = ProjectLocator.getProjectDir();
074        for( File file : projectDir.listFiles() )
075        {
076            String filename = file.getName();
077            if( filename.matches("[a-zA-Z\\-]+-\\d+\\.\\d+\\.\\d+") )
078            listModel.addElement(filename);
079        }
080        downloadedModulesList.setModel(listModel);
081
082        downloadedModulesList.addListSelectionListener(new ListSelectionListener()
083        {
084            public void valueChanged(ListSelectionEvent e)
085            {
086                downloadedModulesList.clearSelection();   
087            }
088        });
089    }
090
091    private void layoutComponents()
092    {
093        GroupLayout layout = new GroupLayout(this);
094        setLayout(layout);
095        layout.setAutocreateContainerGaps(true);
096        layout.setAutocreateGaps(true);
097
098        layout.setHorizontalGroup
099        (
100            layout.createParallelGroup()
101                .add(downloadedModulesListLabel)
102                .add(downloadedModulesListScollPane)
103        );
104
105        layout.setVerticalGroup
106        (
107            layout.createSequentialGroup()
108                .add(downloadedModulesListLabel)
109                .add(downloadedModulesListScollPane)
110        );
111    }
112}