3 import java
.awt
.event
.*;
8 import com
.easysw
.cups
.*;
10 public class GLPprinterDetail
13 private CupsPrinter printer
= null;
14 private JScrollPane scrollPane
= null;
15 private JPanel mainPanel
= null;
19 public GLPprinterDetail( CupsPrinter cp
)
27 mainPanel
= new JPanel();
28 mainPanel
= printerInfoPanel( printer
);
33 // -----------------------------------------------------------
35 // Build an info panel for an individual printer.
37 private JPanel
printerInfoPanel( CupsPrinter cp
)
39 JPanel printerPanel
= new JPanel();
42 JPanel leftHeader
= new JPanel();
43 JPanel rightHeader
= new JPanel();
45 JPanel leftPane
= new JPanel();
46 JPanel rightPane
= new JPanel();
48 GridBagLayout leftLayout
= new GridBagLayout();
49 GridBagLayout rightLayout
= new GridBagLayout();
51 GridBagConstraints leftConst
= new GridBagConstraints();
52 GridBagConstraints rightConst
= new GridBagConstraints();
55 JLabel printerIconLabel
= null;
56 JLabel printerInfoLabel
= null;
57 JLabel printerNameLabel
= null;
58 JLabel printerMakeLabel
= null;
60 JTable printerStatusTable
= null;
62 printerBox
= new BoxLayout(printerPanel
, BoxLayout
.X_AXIS
);
63 printerPanel
.setLayout(printerBox
);
64 printerPanel
.setBorder(BorderFactory
.createEmptyBorder(5,5,5,5));
65 printerPanel
.setBackground(GLPcolors
.backgroundColor
);
67 // Add border around the panel.
70 // ------------------------------------------------------------
72 // ------------------------------------------------------------
73 leftPane
.setLayout(leftLayout
);
74 leftPane
.setBackground(GLPcolors
.backgroundColor
);
76 leftHeader
.setLayout(new BorderLayout());
77 leftHeader
.setBackground(GLPcolors
.highlightColor
);
78 leftHeader
.setBorder(BorderFactory
.createEmptyBorder(3,3,3,3));
80 printerNameLabel
= new JLabel(cp
.getPrinterName());
81 printerNameLabel
.setForeground(Color
.black
);
82 leftHeader
.add( printerNameLabel
, BorderLayout
.WEST
);
83 leftConst
.gridwidth
= GridBagConstraints
.RELATIVE
;
86 leftConst
.fill
= GridBagConstraints
.HORIZONTAL
;
87 leftConst
.weightx
= 0.0;
88 leftConst
.weighty
= 0.0;
90 leftLayout
.setConstraints( leftHeader
, leftConst
);
91 leftPane
.add(leftHeader
);
93 String imageName
= "./images/printer-" +
94 cp
.getStateText() + ".gif";
95 JButton printerButton
;
98 URL iconURL
= ClassLoader
.getSystemResource(imageName
);
99 ImageIcon icon
= new ImageIcon(iconURL
);
100 printerButton
= new JButton( "<html><center><b>" +
101 cp
.getPrinterName() +
102 "</b></center></html>",
105 catch (NullPointerException e
)
107 printerButton
= new JButton( "<html><center><b>" +
108 cp
.getPrinterName() +
109 "</b></center></html>");
111 printerButton
.setBorder(BorderFactory
.createEmptyBorder(3,3,3,3));
112 printerButton
.setBackground(GLPcolors
.backgroundColor
);
113 printerButton
.setActionCommand( cp
.getPrinterName() );
114 // printerButton.addActionListener(this);
115 printerButton
.setToolTipText("Click to go to " + cp
.getPrinterName() +
116 "'s extended informtion page.");
118 leftConst
.gridwidth
= GridBagConstraints
.REMAINDER
;
121 leftConst
.fill
= GridBagConstraints
.BOTH
;
122 leftConst
.weightx
= 1.0;
123 leftConst
.weighty
= 1.0;
125 leftLayout
.setConstraints( printerButton
, leftConst
);
126 leftPane
.add(printerButton
);
129 // ------------------------------------------------------------
131 // ------------------------------------------------------------
132 rightPane
.setLayout(rightLayout
);
133 rightPane
.setBackground(GLPcolors
.backgroundColor
);
135 rightHeader
.setLayout(new BorderLayout());
136 rightHeader
.setBackground(GLPcolors
.highlightColor
);
137 rightHeader
.setBorder(BorderFactory
.createEmptyBorder(3,3,3,3));
139 printerMakeLabel
= new JLabel(cp
.getMakeAndModel());
140 printerMakeLabel
.setForeground(Color
.black
);
141 rightHeader
.add( printerMakeLabel
, BorderLayout
.WEST
);
143 rightConst
.gridwidth
= GridBagConstraints
.RELATIVE
;
144 rightConst
.gridx
= 0;
145 rightConst
.gridy
= 0;
146 rightConst
.fill
= GridBagConstraints
.HORIZONTAL
;
147 rightConst
.weightx
= 0.0;
148 rightConst
.weighty
= 0.0;
149 rightConst
.ipady
= 4;
150 rightLayout
.setConstraints( rightHeader
, rightConst
);
151 rightPane
.add(rightHeader
);
154 Font labelFont
= new Font("Serif",Font
.BOLD
, 12 );
155 // Font textFont = new Font("Serif", Font.NORMAL, 12 );
156 Font messageFont
= new Font("Serif", Font
.ITALIC
, 12 );
158 JLabel pdServerLabel
= new JLabel("Server");
159 JLabel pdNameLabel
= new JLabel("Name");
160 JLabel pdLocationLabel
= new JLabel("Location");
161 JLabel pdStatusLabel
= new JLabel("Status");
162 JLabel pdMessageLabel
= new JLabel("Message");
164 JLabel pdServerText
= new JLabel(GLPvars
.cupsServerName
);
165 JLabel pdNameText
= new JLabel(cp
.getPrinterName());
166 JLabel pdLocationText
= new JLabel(cp
.getLocation());
167 JLabel pdStatusText
= new JLabel(cp
.getStateText());
168 JLabel pdMessageText
= new JLabel(cp
.getStateReasons());
170 pdServerLabel
.setFont(labelFont
);
171 pdNameLabel
.setFont(labelFont
);
172 pdLocationLabel
.setFont(labelFont
);
173 pdStatusLabel
.setFont(labelFont
);
174 pdMessageLabel
.setFont(labelFont
);
175 pdMessageText
.setFont(messageFont
);
177 pdServerLabel
.setForeground(Color
.black
);
178 pdNameLabel
.setForeground(Color
.black
);
179 pdLocationLabel
.setForeground(Color
.black
);
180 pdStatusLabel
.setForeground(Color
.black
);
181 pdMessageLabel
.setForeground(Color
.black
);
185 if ((cp
.getStateReasons().length() > 0) &&
186 (!cp
.getStateReasons().equals("none")))
188 tablePane
= new JPanel(new GridLayout(5,2,2,2));
189 tablePane
.add(pdServerLabel
);
190 tablePane
.add(pdServerText
);
192 tablePane
.add(pdNameLabel
);
193 tablePane
.add(pdNameText
);
195 tablePane
.add(pdLocationLabel
);
196 tablePane
.add(pdLocationText
);
198 tablePane
.add(pdStatusLabel
);
199 tablePane
.add(pdStatusText
);
201 tablePane
.add(pdMessageLabel
);
202 tablePane
.add(pdMessageText
);
206 tablePane
= new JPanel(new GridLayout(4,2,2,2));
207 tablePane
.add(pdServerLabel
);
208 tablePane
.add(pdServerText
);
210 tablePane
.add(pdNameLabel
);
211 tablePane
.add(pdNameText
);
213 tablePane
.add(pdLocationLabel
);
214 tablePane
.add(pdLocationText
);
216 tablePane
.add(pdStatusLabel
);
217 tablePane
.add(pdStatusText
);
220 tablePane
.setBackground(GLPcolors
.backgroundColor
);
222 // printerStatusTable.setShowGrid(false);
223 rightConst
.gridwidth
= GridBagConstraints
.REMAINDER
;
224 rightConst
.gridx
= 0;
225 rightConst
.gridy
= 1;
226 rightConst
.fill
= GridBagConstraints
.BOTH
;
227 rightConst
.weightx
= 1.0;
228 rightConst
.weighty
= 1.0;
229 rightConst
.ipady
= 4;
230 rightLayout
.setConstraints( tablePane
, rightConst
);
231 rightPane
.add(tablePane
);
233 printerPanel
.add(leftPane
);
234 printerPanel
.add(rightPane
);
236 return(printerPanel
);
240 public JPanel
getPanel()