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 } |