home *** CD-ROM | disk | FTP | other *** search
Java Source | 1996-08-14 | 3.4 KB | 130 lines |
- // PrintRequestor
- // A general purpose requestor for choosing a printer.
- import java.awt.*;
- import java.util.Vector;
-
- public class PrintRequestor extends FixedFrame
- {
- JFScomponent parent;
- Vector pabbr = new Vector(); // known printer abbreviations
- Vector ptype = new Vector(); // printer types
- Vector pdesc = new Vector(); // printer descriptions
- Vector pcomm = new Vector(); // print commands
- DoubleListPanel list;
- Button print, cancel;
-
- PrintRequestor(JFScomponent p, JFSclient client)
- {
- super(new Dimension(300,200));
- parent = p;
-
- // create interface
- setLayout(new BorderLayout());
- add("North",new Label("Server printers"));
- list = new DoubleListPanel("Printer","Type");
- add("Center",list);
- Panel bot = new Panel();
- bot.setLayout(new FlowLayout(FlowLayout.RIGHT));
- bot.add(print = new Button("Print"));
- bot.add(cancel = new Button("Cancel"));
- add("South",bot);
- setTitle("Select a printer");
-
- // fill list with known printers
- try client.getprinters(pabbr, ptype, pdesc, pcomm);
- catch(RequestException e) {
- new ErrorWindow("Could not read printers file");
- return;
- }
- if (pabbr.size() == 0) {
- new ErrorWindow("No printers are defined");
- return;
- }
- for(int i=0; i<pabbr.size(); i++)
- list.addItem((String)pabbr.elementAt(i),
- (String)ptype.elementAt(i));
- list.select(0);
- pack();
- show();
- }
-
- public boolean handleEvent(Event evt)
- {
- if (evt.id == Event.WINDOW_DESTROY ||
- evt.id == Event.ACTION_EVENT && evt.target == cancel)
- dispose();
- else if (evt.id == Event.ACTION_EVENT && evt.target == print) {
- // Call the parent JFScomponent's print method
- int sel = list.selected();
- try {
- String abbr = (String)pabbr.elementAt(sel),
- type = (String)ptype.elementAt(sel),
- desc = (String)pdesc.elementAt(sel);
- parent.print(abbr, type);
- new MessageWindow("Print status","Printing to "+abbr+
- " ("+desc+") complete");
- }
- catch(RequestException e)
- new ErrorWindow(parent.getClass().getName()+" : "+
- e.getMessage());
- dispose();
- }
- else if (evt.id == Event.ACTION_EVENT && evt.target == list &&
- ((String)evt.arg).equals("Double")) {
- // Display info about a printer
- int sel = list.selected();
- new PrinterInfo((String)pabbr.elementAt(sel),
- (String)ptype.elementAt(sel),
- (String)pdesc.elementAt(sel),
- (String)pcomm.elementAt(sel));
- }
- return super.handleEvent(evt);
- }
- }
-
- // PrinterInfo
- // A window displaying the details of a printer
- class PrinterInfo extends FixedFrame
- {
- Button close;
-
- PrinterInfo(String abbr, String type, String desc, String comm)
- {
- super(new Dimension(300,200));
-
- // create user interface
- setLayout(new BorderLayout());
- Panel left = new Panel();
- left.setLayout(new GridLayout(4,1));
- left.add(new Label("Name"));
- left.add(new Label("Type"));
- left.add(new Label("Description"));
- left.add(new Label("Command"));
- add("West",left);
- Panel right = new Panel();
- right.setLayout(new GridLayout(4,1));
- right.add(new StaticTextField(abbr));
- right.add(new StaticTextField(type));
- right.add(new StaticTextField(desc));
- right.add(new StaticTextField(comm));
- add("Center",right);
- Panel bot = new Panel();
- bot.setLayout(new FlowLayout(FlowLayout.RIGHT));
- bot.add(close = new Button("Close"));
- add("South",bot);
-
- setTitle("Printer details");
- pack();
- show();
- }
-
- public boolean handleEvent(Event evt)
- {
- if (evt.id == Event.WINDOW_DESTROY ||
- evt.id == Event.ACTION_EVENT && evt.target == close)
- dispose();
- return super.handleEvent(evt);
- }
- }
-
-