/*
* @(#)StartUp.java - mini info, hold a place for start infos
*
* Copyright (c) 2004-2005 by dvb.matt, All Rights Reserved.
*
* This file is part of ProjectX, a free Java based demux utility.
* By the authors, ProjectX is intended for educational purposes only,
* as a non-commercial test project.
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package net.sourceforge.dvb.projectx.gui;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Dimension;
import java.awt.BorderLayout;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JProgressBar;
import javax.swing.Box;
import net.sourceforge.dvb.projectx.common.Resource;
import net.sourceforge.dvb.projectx.common.Common;
import net.sourceforge.dvb.projectx.common.Keys;
import net.sourceforge.dvb.projectx.gui.MainFrame;
import net.sourceforge.dvb.projectx.gui.ColumnLayout;
import net.sourceforge.dvb.projectx.gui.CommonGui;
/**
*
*/
public class StartUp extends JFrame {
/** Background Color */
private final Color BACKGROUND_COLOR = new Color(200, 200, 200);
private boolean agreement = false;
private JButton agree;
private JProgressBar progressBar;
private JLabel progress;
private JLabel message;
/**
*
*/
public StartUp()
{
open(Resource.getString("StartUp.Title"));
}
/**
*
*/
public StartUp(String title)
{
open(title);
}
/**
*
*/
protected void open(String title)
{
setTitle(title);
JPanel container = new JPanel();
container.setLayout(new BoxLayout(container, BoxLayout.Y_AXIS));
container.setBackground(BACKGROUND_COLOR);
container.add(buildUpperPanel());
container.add(buildHLinePanel());
container.add(buildLoadPanel());
container.add(buildHLinePanel());
container.add(Box.createRigidArea(new Dimension(1, 10)));
container.add(buildButtonPanel());
container.add(Box.createRigidArea(new Dimension(1, 10)));
JPanel container2 = new JPanel();
container2.setBorder(BorderFactory.createRaisedBevelBorder());
container2.setBackground(BACKGROUND_COLOR);
container2.add(container);
getContentPane().add(container2);
pack();
setLocation(200, 200);
setResizable(false);
addWindowListener (new WindowAdapter() {
public void windowClosing(WindowEvent e) {
Common.exitApplication(0);
}
});
return;
}
/**
*
*/
protected JPanel buildUpperPanel()
{
JPanel panel = new JPanel();
panel.setBackground(new Color(224, 224, 224));
panel.setLayout(new ColumnLayout());
panel.add(Box.createRigidArea(new Dimension(1, 20)));
panel.add(new JLabel(" " + Resource.getString("StartUp.Init")));
panel.add(Box.createRigidArea(new Dimension(1, 10)));
panel.add(message = new JLabel(" " + Resource.getString("StartUp.Wait")));
panel.add(Box.createRigidArea(new Dimension(1, 20)));
JPanel panel_1 = new JPanel();
panel_1.setBackground(new Color(224, 224, 224));
panel_1.setLayout(new BorderLayout());
panel_1.add(new JLabel(CommonGui.loadIcon("px.gif")), BorderLayout.EAST);
panel_1.add(panel, BorderLayout.WEST);
return panel_1;
}
/**
*
*/
protected JPanel buildHLinePanel()
{
JPanel panel = new JPanel();
panel.setLayout(new ColumnLayout());
panel.setBorder(BorderFactory.createEtchedBorder());
return panel;
}
/**
*
*/
protected JPanel buildLoadPanel()
{
JPanel panel = new JPanel();
panel.setBackground(BACKGROUND_COLOR);
panel.setLayout(new ColumnLayout());
panel.add(Box.createRigidArea(new Dimension(1, 10)));
progress = new JLabel("Start...");
panel.add(progress);
progressBar = new JProgressBar();
progressBar.setStringPainted(true);
progressBar.setValue(0);
progressBar.setPreferredSize(new Dimension(500, 24));
progressBar.setForeground(new Color(20, 240, 20));
panel.add(Box.createRigidArea(new Dimension(1, 5)));
panel.add(progressBar);
panel.add(Box.createRigidArea(new Dimension(1, 20)));
String terms[] = Resource.getStringByLines("terms");
for (int i = 0; i < terms.length; i++)
panel.add(new JLabel(terms[i]));
panel.add(Box.createRigidArea(new Dimension(1, 10)));
return panel;
}
/**
*
*/
protected JPanel buildButtonPanel()
{
JButton cancel = new JButton();
CommonGui.localize(cancel, "Common.Cancel");
cancel.setActionCommand("disagree");
cancel.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e)
{
Common.exitApplication(0);
}
});
JButton disagree = new JButton(Resource.getString("terms.disagree"));
disagree.setActionCommand("disagree");
disagree.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e)
{
Common.exitApplication(0);
}
});
agree = new JButton(Resource.getString("terms.agree"));
agree.setActionCommand("agree");
agree.setEnabled(false);
agree.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e)
{
if (!agree.isEnabled())
return;
setVisible(false);
Common.getSettings().setProperty(Keys.KEY_Agreement[0], "1");
MainFrame.setVisible0(true);
}
});
JPanel panel = new JPanel();
panel.setBackground(BACKGROUND_COLOR);
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
panel.add(agree);
panel.add(Box.createRigidArea(new Dimension(10, 1)));
panel.add(disagree);
JPanel panel_1 = new JPanel();
panel_1.setBackground(BACKGROUND_COLOR);
panel_1.setLayout(new BorderLayout());
panel_1.add(panel, BorderLayout.WEST);
panel_1.add(cancel, BorderLayout.EAST);
return panel_1;
}
/**
*
*/
public void set(boolean _agreement)
{
agree.setEnabled(!_agreement);
agreement = _agreement;
agree.setSelected(agreement);
if (agreement)
agree.setForeground(Color.green);
else
message.setText(" " + Resource.getString("StartUp.Choose"));
}
/**
*
*/
public boolean get()
{
return agree.isSelected();
}
/**
*
*/
public void setProgress(int value, String str)
{
progress.setText(str);
progressBar.setStringPainted(true);
progressBar.setValue(value);
System.out.println(str);
}
/**
*
*/
public void close()
{
dispose();
}
}