GLPprinterDetail.java [plain text]
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.URL;
import java.net.*;
import java.io.*;
import org.cups.*;
public class GLPprinterDetail
{
private CupsPrinter printer = null;
private JScrollPane scrollPane = null;
private JPanel mainPanel = null;
public GLPprinterDetail( CupsPrinter cp )
{
printer = cp;
load();
}
public void load()
{
mainPanel = new JPanel();
mainPanel = printerInfoPanel( printer );
}
private JPanel printerInfoPanel( CupsPrinter cp )
{
JPanel printerPanel = new JPanel();
BoxLayout printerBox;
JPanel leftHeader = new JPanel();
JPanel rightHeader = new JPanel();
JPanel leftPane = new JPanel();
JPanel rightPane = new JPanel();
GridBagLayout leftLayout = new GridBagLayout();
GridBagLayout rightLayout = new GridBagLayout();
GridBagConstraints leftConst = new GridBagConstraints();
GridBagConstraints rightConst = new GridBagConstraints();
JLabel printerIconLabel = null;
JLabel printerInfoLabel = null;
JLabel printerNameLabel = null;
JLabel printerMakeLabel = null;
JTable printerStatusTable = null;
printerBox = new BoxLayout(printerPanel, BoxLayout.X_AXIS);
printerPanel.setLayout(printerBox);
printerPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
printerPanel.setBackground(GLPcolors.backgroundColor);
leftPane.setLayout(leftLayout);
leftPane.setBackground(GLPcolors.backgroundColor);
leftHeader.setLayout(new BorderLayout());
leftHeader.setBackground(GLPcolors.highlightColor);
leftHeader.setBorder(BorderFactory.createEmptyBorder(3,3,3,3));
printerNameLabel = new JLabel(cp.getPrinterName());
printerNameLabel.setForeground(Color.black);
leftHeader.add( printerNameLabel, BorderLayout.WEST);
leftConst.gridwidth = GridBagConstraints.RELATIVE;
leftConst.gridx = 0;
leftConst.gridy = 0;
leftConst.fill = GridBagConstraints.HORIZONTAL;
leftConst.weightx = 0.0;
leftConst.weighty = 0.0;
leftConst.ipady = 4;
leftLayout.setConstraints( leftHeader, leftConst );
leftPane.add(leftHeader);
String imageName = "./images/printer-" +
cp.getStateText() + ".gif";
JButton printerButton;
try
{
URL iconURL = ClassLoader.getSystemResource(imageName);
ImageIcon icon = new ImageIcon(iconURL);
printerButton = new JButton( "<html><center><b>" +
cp.getPrinterName() +
"</b></center></html>",
icon );
}
catch (NullPointerException e)
{
printerButton = new JButton( "<html><center><b>" +
cp.getPrinterName() +
"</b></center></html>");
}
printerButton.setBorder(BorderFactory.createEmptyBorder(3,3,3,3));
printerButton.setBackground(GLPcolors.backgroundColor);
printerButton.setActionCommand( cp.getPrinterName() );
printerButton.setToolTipText("Click to go to " + cp.getPrinterName() +
"'s extended informtion page.");
leftConst.gridwidth = GridBagConstraints.REMAINDER;
leftConst.gridx = 0;
leftConst.gridy = 1;
leftConst.fill = GridBagConstraints.BOTH;
leftConst.weightx = 1.0;
leftConst.weighty = 1.0;
leftConst.ipady = 4;
leftLayout.setConstraints( printerButton, leftConst );
leftPane.add(printerButton);
rightPane.setLayout(rightLayout);
rightPane.setBackground(GLPcolors.backgroundColor);
rightHeader.setLayout(new BorderLayout());
rightHeader.setBackground(GLPcolors.highlightColor);
rightHeader.setBorder(BorderFactory.createEmptyBorder(3,3,3,3));
printerMakeLabel = new JLabel(cp.getMakeAndModel());
printerMakeLabel.setForeground(Color.black);
rightHeader.add( printerMakeLabel, BorderLayout.WEST);
rightConst.gridwidth = GridBagConstraints.RELATIVE;
rightConst.gridx = 0;
rightConst.gridy = 0;
rightConst.fill = GridBagConstraints.HORIZONTAL;
rightConst.weightx = 0.0;
rightConst.weighty = 0.0;
rightConst.ipady = 4;
rightLayout.setConstraints( rightHeader, rightConst );
rightPane.add(rightHeader);
Font labelFont = new Font("Serif",Font.BOLD, 12 );
Font messageFont = new Font("Serif", Font.ITALIC, 12 );
JLabel pdServerLabel = new JLabel("Server");
JLabel pdNameLabel = new JLabel("Name");
JLabel pdLocationLabel = new JLabel("Location");
JLabel pdStatusLabel = new JLabel("Status");
JLabel pdMessageLabel = new JLabel("Message");
JLabel pdServerText = new JLabel(GLPvars.cupsServerName);
JLabel pdNameText = new JLabel(cp.getPrinterName());
JLabel pdLocationText = new JLabel(cp.getLocation());
JLabel pdStatusText = new JLabel(cp.getStateText());
JLabel pdMessageText = new JLabel(cp.getStateReasons());
pdServerLabel.setFont(labelFont);
pdNameLabel.setFont(labelFont);
pdLocationLabel.setFont(labelFont);
pdStatusLabel.setFont(labelFont);
pdMessageLabel.setFont(labelFont);
pdMessageText.setFont(messageFont);
pdServerLabel.setForeground(Color.black);
pdNameLabel.setForeground(Color.black);
pdLocationLabel.setForeground(Color.black);
pdStatusLabel.setForeground(Color.black);
pdMessageLabel.setForeground(Color.black);
JPanel tablePane;
if ((cp.getStateReasons().length() > 0) &&
(!cp.getStateReasons().equals("none")))
{
tablePane = new JPanel(new GridLayout(5,2,2,2));
tablePane.add(pdServerLabel);
tablePane.add(pdServerText);
tablePane.add(pdNameLabel);
tablePane.add(pdNameText);
tablePane.add(pdLocationLabel);
tablePane.add(pdLocationText);
tablePane.add(pdStatusLabel);
tablePane.add(pdStatusText);
tablePane.add(pdMessageLabel);
tablePane.add(pdMessageText);
}
else
{
tablePane = new JPanel(new GridLayout(4,2,2,2));
tablePane.add(pdServerLabel);
tablePane.add(pdServerText);
tablePane.add(pdNameLabel);
tablePane.add(pdNameText);
tablePane.add(pdLocationLabel);
tablePane.add(pdLocationText);
tablePane.add(pdStatusLabel);
tablePane.add(pdStatusText);
}
tablePane.setBackground(GLPcolors.backgroundColor);
rightConst.gridwidth = GridBagConstraints.REMAINDER;
rightConst.gridx = 0;
rightConst.gridy = 1;
rightConst.fill = GridBagConstraints.BOTH;
rightConst.weightx = 1.0;
rightConst.weighty = 1.0;
rightConst.ipady = 4;
rightLayout.setConstraints( tablePane, rightConst );
rightPane.add(tablePane);
printerPanel.add(leftPane);
printerPanel.add(rightPane);
return(printerPanel);
}
public JPanel getPanel()
{
return(mainPanel);
}
}