/* * @(#)CollectionPanel * * Copyright (c) 2001-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 javax.swing.JPanel; import javax.swing.JLabel; import javax.swing.JComboBox; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JCheckBox; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import net.sourceforge.dvb.projectx.common.Keys; import net.sourceforge.dvb.projectx.common.Common; import net.sourceforge.dvb.projectx.common.Resource; import net.sourceforge.dvb.projectx.gui.ComboBoxItemListener; import net.sourceforge.dvb.projectx.gui.CheckBoxListener; import net.sourceforge.dvb.projectx.gui.CommonGui; /** * collection panel */ public class CollectionPanel extends JPanel { private boolean ToggleControls; private ComboBoxItemListener _ComboBoxItemListener; private CheckBoxListener _CheckBoxListener; /** * */ public CollectionPanel() { initialize(); } /** * */ private void initialize() { _ComboBoxItemListener = new ComboBoxItemListener(); _CheckBoxListener = new CheckBoxListener(); setLayout( new BorderLayout() ); JPanel grid = new JPanel(); grid.setLayout(new BorderLayout()); /** * */ final JPanel previewPanel = new JPanel(); previewPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLoweredBevelBorder(), Resource.getString("CollectionPanel.CutPanel"))); previewPanel.setLayout ( new BorderLayout() ); previewPanel.setToolTipText(Resource.getString("CollectionPanel.CutPanel.Tip1")); previewPanel.add(CommonGui.getPicturePanel()); /** * */ final JPanel previewControlPanel = buildPreviewControlPanel(); previewPanel.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { previewPanel.removeAll(); if ((ToggleControls = !ToggleControls)) previewPanel.add(previewControlPanel); else { previewPanel.add(CommonGui.getPicturePanel()); } previewPanel.validate(); previewPanel.repaint(); } }); grid.add(previewPanel); // grid.add(CommonGui.getPicturePanel().getSliderPanel(), BorderLayout.EAST); add(grid); } /** * */ protected JPanel buildPreviewControlPanel() { JPanel panel = new JPanel(); panel.setLayout (new ColumnLayout()); String[][] objects = { Keys.KEY_holdStreamInfoOnOSD, Keys.KEY_Preview_disable, Keys.KEY_Preview_fastDecode, Keys.KEY_Preview_LiveUpdate, Keys.KEY_Preview_AllGops, Keys.KEY_Preview_SliderWidth, Keys.KEY_Preview_fullScaled }; for (int i = 0; i < objects.length; i++) { JCheckBox box = new JCheckBox(Resource.getString(objects[i][0])); box.setPreferredSize(new Dimension(250, 20)); box.setMaximumSize(new Dimension(250, 20)); box.setToolTipText(Resource.getString(objects[i][0] + Keys.KEY_Tip)); box.setActionCommand(objects[i][0]); box.setSelected(Common.getSettings().getBooleanProperty(objects[i])); box.addActionListener(_CheckBoxListener); if (i == 1) panel.add(Box.createRigidArea(new Dimension(1, 10))); if (i == 2 && Common.getMpvDecoderClass().isAccelerated()) { box.setSelected(true); Common.getSettings().setBooleanProperty(objects[i][0], box.isSelected()); } panel.add(box); } String[][] keys = { Keys.KEY_Preview_YGain, Keys.KEY_PreviewBuffer }; Object[][] object_items = { { "1", "-128", "-112", "-96", "-80", "-64", "-48", "-32", "-16", "0", "16", "32", "48", "64", "80", "96", "112", "128" }, { "auto", "256000", "384000", "512000", "768000", "1024000", "1536000", "2048000", "2560000", "3072000" } }; for (int i = 0; i < keys.length; i++) { JComboBox combobox = new JComboBox(object_items[i]); combobox.setPreferredSize(new Dimension(100, 24)); combobox.setMaximumSize(new Dimension(100, 24)); combobox.setEditable(true); combobox.setMaximumRowCount(6); combobox.setActionCommand(keys[i][0]); combobox.setSelectedItem(Common.getSettings().getProperty(keys[i])); combobox.addActionListener(_ComboBoxItemListener); JLabel label = new JLabel(Resource.getString(keys[i][0])); label.setToolTipText(Resource.getString(keys[i][0] + Keys.KEY_Tip)); JPanel panel_1 = new JPanel(); panel_1.add(label); panel_1.add(combobox); panel.add(panel_1); } // panel.add(Box.createRigidArea(new Dimension(1, 4))); return panel; } }