Package sun.awt.windows

Source Code of sun.awt.windows.WFontPeer

/*
* This file is modified by Ivan Maidanski <ivmai@ivmaisoft.com>
* Project name: JCGO-SUNAWT (http://www.ivmaisoft.com/jcgo/)
*/

/*
* @(#)WFontPeer.java   1.16 03/01/23
*
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/

package sun.awt.windows;

import java.security.AccessController;
import java.security.PrivilegedAction;
import sun.io.CharToByteConverter;
import sun.awt.PlatformFont;

public class WFontPeer extends PlatformFont {

    public WFontPeer(String name, int style){
        super(name, style);
    }

    public CharToByteConverter
        getFontCharset(final String charsetName, String fontName){

        CharToByteConverter fc;
        if (charsetName.equals("default")){
            fc = (CharToByteConverter)charsetRegistry.get(fontName);
        } else {
            fc = (CharToByteConverter)charsetRegistry.get(charsetName);
        }
        if (fc instanceof CharToByteConverter){
            return fc;
        }

        Class fcc = (Class)AccessController.doPrivileged(new PrivilegedAction() {
            public Object run() {
                try {
                    return Class.forName(charsetName, true,
                        Thread.currentThread().getContextClassLoader());
                } catch(ClassNotFoundException e) {
                    try {
                        return Class.forName("sun.io." + charsetName, true,
                            Thread.currentThread().getContextClassLoader());
                    } catch (ClassNotFoundException exx) {
                        try {
                            return Class.forName("sun.awt.windows." + charsetName,
                                true, Thread.currentThread().getContextClassLoader());
                        } catch(ClassNotFoundException ex) {
                            return null;
                        }
                    }
                }
            }
        });

        if (fcc == null) {
            fc = getDefaultFontCharset(fontName);
        }

        if (fc == null) {
            try {
                fc = (CharToByteConverter)fcc.newInstance();
            } catch(Exception e) {
                return getDefaultFontCharset(fontName);
            }
        }

        if (charsetName.equals("default")){
            charsetRegistry.put(fontName, fc);
        } else {
            charsetRegistry.put(charsetName, fc);
        }
        return fc;
    }


    private CharToByteConverter getDefaultFontCharset(String fontName){
        return new WDefaultFontCharset(fontName);
    }
}
TOP

Related Classes of sun.awt.windows.WFontPeer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.