| 1 11 package org.eclipse.ui.internal.browser.macosx; 12 13 import java.util.ArrayList ; 14 import java.util.StringTokenizer ; 15 16 import org.eclipse.ui.internal.browser.browsers.DefaultBrowser; 17 18 public class SafariBrowser extends DefaultBrowser { 19 20 public SafariBrowser(String id, String location, String parameters) { 21 super(id, location, parameters); 22 this.location = location; 23 this.parameters = parameters; 24 } 25 26 33 protected String [] prepareCommand(String path, String url) { 34 if (url != null && url.toLowerCase().startsWith("file:")) { url = url.substring(5); 36 } 37 38 ArrayList tokenList = new ArrayList (); 39 StringTokenizer qTokenizer = new StringTokenizer (path.trim(), 41 "\"", true); boolean withinQuotation = false; 43 String quotedString = ""; while (qTokenizer.hasMoreTokens()) { 45 String curToken = qTokenizer.nextToken(); 46 if (curToken.equals("\"")) { if (withinQuotation) { 48 tokenList.add(quotedString); 50 } else { 51 quotedString = ""; } 53 withinQuotation = !withinQuotation; 54 continue; 55 } else if (withinQuotation) { 56 quotedString = curToken; 57 continue; 58 } else { 59 StringTokenizer parser = new StringTokenizer (curToken.trim()); 61 while (parser.hasMoreTokens()) { 62 tokenList.add(parser.nextToken()); 63 } 64 } 65 } 66 boolean substituted = false; 68 for (int i = 0; i < tokenList.size(); i++) { 69 String token = (String ) tokenList.get(i); 70 String newToken = doSubstitutions(token, url); 71 if (newToken != null) { 72 tokenList.set(i, newToken); 73 substituted = true; 74 } 75 } 76 if (!substituted) 78 tokenList.add(url); 79 80 String [] command = new String [tokenList.size()]; 81 tokenList.toArray(command); 82 return command; 83 } 84 } | Popular Tags |