src/solaris/classes/sun/print/UnixPrintServiceLookup.java

Print this page




 256             PrintService oldPS = (PrintService)(printerList.get(index));
 257             uri = oldPS.getAttribute(PrinterURI.class);
 258             if (uri.getURI().getHost().equals("localhost")) {
 259                 IPPPrintService.debug_println(debugPrefix+"duplicate PrintService, removing existing local printer: "+oldPS);
 260                 printerList.remove(oldPS);
 261             } else {
 262                 return index;
 263             }
 264         }
 265         printerList.add(ps);
 266         return (printerList.size() - 1);
 267     }
 268 
 269 
 270     // refreshes "printServices"
 271     public synchronized void refreshServices() {
 272         /* excludes the default printer */
 273         String[] printers = null; // array of printer names
 274         String[] printerURIs = null; //array of printer URIs
 275 

 276         getDefaultPrintService();




 277         if (CUPSPrinter.isCupsRunning()) {

 278             printerURIs = CUPSPrinter.getAllPrinters();










 279             if ((printerURIs != null) && (printerURIs.length > 0)) {
 280                 printers = new String[printerURIs.length];
 281                 for (int i=0; i<printerURIs.length; i++) {
 282                     int lastIndex = printerURIs[i].lastIndexOf("/");
 283                     printers[i] = printerURIs[i].substring(lastIndex+1);
 284                 }
 285             }
 286         } else {
 287             if (isMac() || isSysV()) {
 288                 printers = getAllPrinterNamesSysV();
 289             } else if (isAIX()) {
 290                 printers = getAllPrinterNamesAIX();
 291             } else { //BSD
 292                 printers = getAllPrinterNamesBSD();
 293             }
 294         }
 295 
 296         if (printers == null) {
 297             if (defaultPrintService != null) {
 298                 printServices = new PrintService[1];


 615           security.checkPrintJobAccess();
 616         }
 617         return new MultiDocPrintService[0];
 618     }
 619 
 620 
 621     public synchronized PrintService getDefaultPrintService() {
 622         SecurityManager security = System.getSecurityManager();
 623         if (security != null) {
 624           security.checkPrintJobAccess();
 625         }
 626 
 627         // clear defaultPrintService
 628         defaultPrintService = null;
 629         String psuri = null;
 630 
 631         IPPPrintService.debug_println("isRunning ? "+
 632                                       (CUPSPrinter.isCupsRunning()));
 633         if (CUPSPrinter.isCupsRunning()) {
 634             String[] printerInfo = CUPSPrinter.getDefaultPrinter();

 635             defaultPrinter = printerInfo[0];
 636             psuri = printerInfo[1];

 637         } else {
 638             if (isMac() || isSysV()) {
 639                 defaultPrinter = getDefaultPrinterNameSysV();
 640             } else if (isAIX()) {
 641                 defaultPrinter = getDefaultPrinterNameAIX();
 642             } else {
 643                 defaultPrinter = getDefaultPrinterNameBSD();
 644             }
 645         }
 646         if (defaultPrinter == null) {
 647             return null;
 648         }
 649         defaultPrintService = null;
 650         if (printServices != null) {
 651             for (int j=0; j<printServices.length; j++) {
 652                 if (defaultPrinter.equals(getPrinterDestName(printServices[j]))) {
 653                     defaultPrintService = printServices[j];
 654                     break;
 655                 }
 656             }




 256             PrintService oldPS = (PrintService)(printerList.get(index));
 257             uri = oldPS.getAttribute(PrinterURI.class);
 258             if (uri.getURI().getHost().equals("localhost")) {
 259                 IPPPrintService.debug_println(debugPrefix+"duplicate PrintService, removing existing local printer: "+oldPS);
 260                 printerList.remove(oldPS);
 261             } else {
 262                 return index;
 263             }
 264         }
 265         printerList.add(ps);
 266         return (printerList.size() - 1);
 267     }
 268 
 269 
 270     // refreshes "printServices"
 271     public synchronized void refreshServices() {
 272         /* excludes the default printer */
 273         String[] printers = null; // array of printer names
 274         String[] printerURIs = null; //array of printer URIs
 275 
 276         try {
 277             getDefaultPrintService();
 278         } catch (Throwable t) {
 279             IPPPrintService.debug_println(debugPrefix+
 280               "Exception getting default printer : " + t);
 281         }
 282         if (CUPSPrinter.isCupsRunning()) {
 283             try {
 284                 printerURIs = CUPSPrinter.getAllPrinters();
 285                 IPPPrintService.debug_println("CUPS URIs = " + printerURIs);
 286                 if (printerURIs != null) {
 287                     for (int p = 0; p < printerURIs.length; p++) {
 288                        IPPPrintService.debug_println("URI="+printerURIs[p]);
 289                     }
 290                 }
 291             } catch (Throwable t) {
 292             IPPPrintService.debug_println(debugPrefix+
 293               "Exception getting all CUPS printers : " + t);
 294             }
 295             if ((printerURIs != null) && (printerURIs.length > 0)) {
 296                 printers = new String[printerURIs.length];
 297                 for (int i=0; i<printerURIs.length; i++) {
 298                     int lastIndex = printerURIs[i].lastIndexOf("/");
 299                     printers[i] = printerURIs[i].substring(lastIndex+1);
 300                 }
 301             }
 302         } else {
 303             if (isMac() || isSysV()) {
 304                 printers = getAllPrinterNamesSysV();
 305             } else if (isAIX()) {
 306                 printers = getAllPrinterNamesAIX();
 307             } else { //BSD
 308                 printers = getAllPrinterNamesBSD();
 309             }
 310         }
 311 
 312         if (printers == null) {
 313             if (defaultPrintService != null) {
 314                 printServices = new PrintService[1];


 631           security.checkPrintJobAccess();
 632         }
 633         return new MultiDocPrintService[0];
 634     }
 635 
 636 
 637     public synchronized PrintService getDefaultPrintService() {
 638         SecurityManager security = System.getSecurityManager();
 639         if (security != null) {
 640           security.checkPrintJobAccess();
 641         }
 642 
 643         // clear defaultPrintService
 644         defaultPrintService = null;
 645         String psuri = null;
 646 
 647         IPPPrintService.debug_println("isRunning ? "+
 648                                       (CUPSPrinter.isCupsRunning()));
 649         if (CUPSPrinter.isCupsRunning()) {
 650             String[] printerInfo = CUPSPrinter.getDefaultPrinter();
 651             if (printerInfo != null && printerInfo.length >= 2) {
 652                 defaultPrinter = printerInfo[0];
 653                 psuri = printerInfo[1];
 654             }
 655         } else {
 656             if (isMac() || isSysV()) {
 657                 defaultPrinter = getDefaultPrinterNameSysV();
 658             } else if (isAIX()) {
 659                 defaultPrinter = getDefaultPrinterNameAIX();
 660             } else {
 661                 defaultPrinter = getDefaultPrinterNameBSD();
 662             }
 663         }
 664         if (defaultPrinter == null) {
 665             return null;
 666         }
 667         defaultPrintService = null;
 668         if (printServices != null) {
 669             for (int j=0; j<printServices.length; j++) {
 670                 if (defaultPrinter.equals(getPrinterDestName(printServices[j]))) {
 671                     defaultPrintService = printServices[j];
 672                     break;
 673                 }
 674             }