Java源码示例:org.fit.net.DataURLHandler
示例1
public void displayURL(String urlstring)
{
try {
if (!urlstring.startsWith("http:") &&
!urlstring.startsWith("https:") &&
!urlstring.startsWith("ftp:") &&
!urlstring.startsWith("file:") &&
!urlstring.startsWith("data:"))
urlstring = "http://" + urlstring;
URL url = DataURLHandler.createURL(null, urlstring);
urlText.setText(url.toString());
while (historyPos < history.size())
history.remove(history.size() - 1);
history.add(url);
historyPos++;
displayURLSwingBox(url);
} catch (Exception e) {
System.err.println("*** Error: "+e.getMessage());
e.printStackTrace();
}
}
示例2
/**
* Parses the source using the given infrastructure and returns the resulting style sheet.
* The imports are handled recursively.
*/
protected StyleSheet parseAndImport(Object source, NetworkProcessor network, String encoding, SourceType type,
StyleSheet sheet, Preparator preparator, URL base, List<MediaQuery> media)
throws CSSException, IOException {
CSSParser parser = createParser(source, network, encoding, type, base);
CSSParserExtractor extractor = parse(parser, type, preparator, media);
for (int i = 0; i < extractor.getImportPaths().size(); i++) {
String path = extractor.getImportPaths().get(i);
List<MediaQuery> imedia = extractor.getImportMedia().get(i);
if (((imedia == null || imedia.isEmpty()) && CSSFactory.getAutoImportMedia().matchesEmpty()) //no media query specified
|| CSSFactory.getAutoImportMedia().matchesOneOf(imedia)) //or some media query matches to the autoload media spec
{
URL url = DataURLHandler.createURL(base, path);
try {
parseAndImport(url, network, encoding, SourceType.URL, sheet, preparator, url, imedia);
} catch (IOException e) {
log.warn("Couldn't read imported style sheet: {}", e.getMessage());
}
} else
log.trace("Skipping import {} (media not matching)", path);
}
return addRulesToStyleSheet(extractor.getRules(), sheet);
}
示例3
@Override
protected String registerExternalFont(TermURI urlstring, String format)
throws MalformedURLException, IOException
{
String nameFound = null;
if (format == null || FontDecoder.supportedFormats.contains(format))
{
URL url = DataURLHandler.createURL(urlstring.getBase(), urlstring.getValue());
String regName = FontDecoder.findRegisteredFont(url);
if (regName == null)
{
DocumentSource imgsrc = getViewport().getConfig().createDocumentSource(url);
Font newFont;
try {
newFont = FontDecoder.decodeFont(imgsrc, format);
} catch (FontFormatException e) {
throw new IOException(e);
}
if (GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(newFont))
log.debug("Registered font: {}", newFont.getFontName());
else
log.debug("Failed to register font: {} (not fatal, probably already existing)", newFont.getFontName());
regName = newFont.getFontName();
FontDecoder.registerFont(url, regName);
}
nameFound = regName;
}
return nameFound;
}
示例4
/**
* Creates a data source based on the URL string. The data: urls are automatically
* recognized and processed.
* @param urlstring The URL string
* @throws IOException
*/
public DefaultDocumentSource(String urlstring) throws IOException
{
super(null, urlstring);
URL url = DataURLHandler.createURL(null, urlstring);
con = createConnection(url);
is = null;
}
示例5
/**
* Creates a data source based on the URL string. The data: urls are automatically
* recognized and processed.
* @param base The base URL to be used for the relative URLs in the urlstring
* @param urlstring The URL string
* @throws IOException
*/
public DefaultDocumentSource(URL base, String urlstring) throws IOException
{
super(base, urlstring);
URL url = DataURLHandler.createURL(base, urlstring);
con = createConnection(url);
is = null;
}
示例6
@Override
protected void processNode(StyleSheet result, Node current, Object source)
{
// base uri
URL base = ((SourceData) source).base;
// allowed media
MediaSpec media = ((SourceData) source).media;
// network processor
NetworkProcessor network = ((SourceData) source).network;
Element elem = (Element) current;
try {
// embedded style-sheet
if (isEmbeddedStyleSheet(elem, media)) {
result = pf.append(extractElementText(elem), network, null,
SourceType.EMBEDDED, result, base);
log.debug("Matched embedded CSS style");
}
// linked style-sheet
else if (isLinkedStyleSheet(elem, media)) {
URL uri = DataURLHandler.createURL(base, matcher.getAttribute(elem, "href"));
result = pf.append(uri, network, encoding, SourceType.URL,
result, uri);
log.debug("Matched linked CSS style");
}
// in-line style and default style
else {
if (elem.getAttribute("style") != null && elem.getAttribute("style").length() > 0) {
result = pf.append(
elem.getAttribute("style"), network,
null, SourceType.INLINE,
elem, true, result, base);
log.debug("Matched inline CSS style");
}
if (elem.getAttribute("XDefaultStyle") != null && elem.getAttribute("XDefaultStyle").length() > 0) {
result = pf.append(
elem.getAttribute("XDefaultStyle"), network,
null, SourceType.INLINE,
elem, false, result, base);
log.debug("Matched default CSS style");
}
}
} catch (CSSException ce) {
log.error("THROWN:", ce);
} catch (IOException ioe) {
log.error("THROWN:", ioe);
}
}
示例7
/**
* Creates a new instance of ReplacedImage.
*
* @param owner
* the owning Box.
* @param ctx
* the visual context applied during rendering.
* @param baseurl
* the base url used for loading images from.
* @param src
* the source URL
*
* @see ElementBox
* @see VisualContext
* @see URL
*/
public ReplacedImage(ElementBox owner, VisualContext ctx, URL baseurl, String src)
{
super(owner);
this.ctx = ctx;
base = baseurl;
try
{
url = DataURLHandler.createURL(base, src);
} catch (MalformedURLException e) {
url = null;
log.error("URL: " + e.getMessage());
}
}