/* * PS3 Media Server, for streaming any medias to your PS3. * Copyright (C) 2008 A.Brochard * * 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; version 2 * of the License only. * * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package net.pms.newgui; import com.jgoodies.forms.builder.PanelBuilder; import com.jgoodies.forms.factories.Borders; import com.jgoodies.forms.layout.CellConstraints; import com.jgoodies.forms.layout.FormLayout; import java.awt.Font; import java.awt.image.BufferedImage; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.tree.DefaultMutableTreeNode; import net.pms.Messages; import net.pms.encoders.Player; import net.pms.encoders.PlayerFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TreeNodeSettings extends DefaultMutableTreeNode { private static final Logger LOGGER = LoggerFactory.getLogger(TreeNodeSettings.class); private static final long serialVersionUID = -337606760204027449L; private Player p; private JComponent otherConfigPanel; private boolean enable = true; private JPanel warningPanel; public boolean isEnable() { return enable; } public void setEnable(boolean enable) { this.enable = enable; } public Player getPlayer() { return p; } public TreeNodeSettings(String name, Player p, JComponent otherConfigPanel) { super(name); this.p = p; this.otherConfigPanel = otherConfigPanel; } public String id() { if (p != null) { return p.id(); } else if (otherConfigPanel != null) { return "" + otherConfigPanel.hashCode(); } else { return null; } } public JComponent getConfigPanel() { if (p != null) { if (PlayerFactory.getPlayers().contains(p)) { return p.config(); } else { return getWarningPanel(); } } else if (otherConfigPanel != null) { return otherConfigPanel; } else { return new JPanel(); } } public JPanel getWarningPanel() { if (warningPanel == null) { BufferedImage bi = null; try { bi = ImageIO.read(LooksFrame.class.getResourceAsStream("/resources/images/icon-status-warning.png")); } catch (IOException e) { LOGGER.debug("Caught exception", e); } ImagePanel ip = new ImagePanel(bi); FormLayout layout = new FormLayout( "0:grow, pref, 0:grow", "pref, 3dlu, pref, 12dlu, pref, 3dlu, pref, 3dlu, p, 3dlu, p, 3dlu, p" ); PanelBuilder builder = new PanelBuilder(layout); builder.border(Borders.DIALOG); builder.opaque(false); CellConstraints cc = new CellConstraints(); JLabel jl = new JLabel(Messages.getString("TreeNodeSettings.4")); builder.add(jl, cc.xy(2, 1, "center, fill")); jl.setFont(jl.getFont().deriveFont(Font.BOLD)); builder.add(ip, cc.xy(2, 3, "center, fill")); warningPanel = builder.getPanel(); } return warningPanel; } }