Package net.pms.newgui

Source Code of net.pms.newgui.TreeNodeSettings

/*
* 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;
  }
}
TOP

Related Classes of net.pms.newgui.TreeNodeSettings

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.