Package flex2.compiler.common

Source Code of flex2.compiler.common.FontsConfiguration$Languages

/*
*
*  Licensed to the Apache Software Foundation (ASF) under one or more
*  contributor license agreements.  See the NOTICE file distributed with
*  this work for additional information regarding copyright ownership.
*  The ASF licenses this file to You under the Apache License, Version 2.0
*  (the "License"); you may not use this file except in compliance with
*  the License.  You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*
*/

package flex2.compiler.common;

import flex2.compiler.config.AdvancedConfigurationInfo;
import flex2.compiler.config.ConfigurationException;
import flex2.compiler.config.ConfigurationInfo;
import flex2.compiler.config.ConfigurationValue;
import flex2.compiler.io.VirtualFile;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;

/**
* This class defines the fonts related configuration options.  These
* options are typically set via flex-config.xml.
*
* @author Kyle Quevillon
* @author Peter Farland
*/
public class FontsConfiguration
{
   //private CompilerConfiguration compilerConfig;

  public void setCompilerConfiguration(CompilerConfiguration compilerConfig)
  {
    //this.compilerConfig = compilerConfig;
  }
 
    private ConfigurationPathResolver configResolver;

    public void setConfigPathResolver( ConfigurationPathResolver resolver )
    {
        this.configResolver = resolver;
    }

    /*
    private FontManager topLevelManager;

    /**
     * Must be called <i>after</i> configuration is committed.
     *
     * @return the last of potentially several FontManagers in the manager list
    public FontManager getTopLevelManager()
    {
        if (topLevelManager == null)
        {
            Map map = new HashMap();
            map.put(CachedFontManager.MAX_CACHED_FONTS_KEY, max_cached_fonts);
            map.put(CachedFontManager.MAX_GLYPHS_PER_FACE_KEY, max_glyphs_per_face);
            map.put(CachedFontManager.COMPATIBILITY_VERSION, compilerConfig.getCompatibilityVersionString());

            if (localFontsSnapshot != null)
            map.put(JREFontManager.LOCAL_FONTS_SNAPSHOT, localFontsSnapshot.getName());

            if (resolvedLocalFontPaths != null)
                map.put(FontManager.LOCAL_FONT_PATHS, resolvedLocalFontPaths);

            topLevelManager = FontManager.create(managers, map, languages);
        }

        return topLevelManager;
    }

    public void setTopLevelManager(FontManager manager)
    {
        topLevelManager = manager;
    }
     */

    //
    // 'compiler.fonts.flash-type' option
    //

  private boolean flashType = true;

  public boolean getFlashType()
  {
    return flashType;
  }

  public void cfgFlashType(ConfigurationValue cv, boolean val)
  {
      this.flashType = val;
  }

  public static ConfigurationInfo getFlashTypeInfo()
  {
      return new ConfigurationInfo()
      {
          public boolean isDeprecated()
          {
            return true;
          }
         
          public String getDeprecatedReplacement()
          {
            return "compiler.fonts.advanced-anti-aliasing";
          }
         
          public String getDeprecatedSince()
          {
            //C: Don't change this to VersionInfo.getFlexVersion().
            return "3.0";
          }
      };
  }

  public void cfgAdvancedAntiAliasing(ConfigurationValue cv, boolean val)
  {
      cfgFlashType(cv, val);
  }

    //
    // 'compiler.fonts.languages.language-range' option
    //

    private Languages languages = new Languages();

    public Languages getLanguagesConfiguration()
    {
        return languages;
    }

    /**
     * Defines a subconfiguration for font languages.  It contains
     * only a single option, -compiler.fonts.languages.language-range.
     */
    public static class Languages extends Properties
    {
        private static final long serialVersionUID = 7123498355710868760L;

        public void cfgLanguageRange(ConfigurationValue cv, String lang, String range)
        {
            setProperty(lang, range);
        }

        public static ConfigurationInfo getLanguageRangeInfo()
        {
            return new ConfigurationInfo(new String[]{"lang", "range"})
            {
                public boolean allowMultiple()
                {
                    return true;
                }

                public boolean isAdvanced()
                {
                    return true;
                }
            };
        }
    }

    //
    // 'compiler.fonts.local-fonts-snapshot' option
    //

    private VirtualFile localFontsSnapshot = null;
   
    public VirtualFile getLocalFontsSnapshot()
    {
      return localFontsSnapshot;
    }

    public void cfgLocalFontsSnapshot(ConfigurationValue cv, String localFontsSnapshotPath)
            throws ConfigurationException
    {
        localFontsSnapshot = ConfigurationPathResolver.getVirtualFile(localFontsSnapshotPath, configResolver, cv);
    }
    public static ConfigurationInfo getLocalFontsSnapshotInfo()
    {
        return new AdvancedConfigurationInfo();
    }


    //
    // 'compiler.fonts.local-font-paths' option
    //

    private List<String> resolvedLocalFontPaths;

    public List getLocalFontPaths()
    {
        return resolvedLocalFontPaths;
    }

    public void cfgLocalFontPaths(ConfigurationValue cv, List list)
    {
        resolvedLocalFontPaths = new ArrayList<String>();
        if (list != null)
        {
            Iterator iterator = list.iterator();
            while (iterator.hasNext())
            {
                String path = (String)iterator.next();
                try
                {
                    VirtualFile file = ConfigurationPathResolver.getVirtualFile(path, configResolver, cv);
                    resolvedLocalFontPaths.add(file.getName());
                }
                catch (ConfigurationException ex)
                {
                    // Invalid local font paths are ignored
                }
            }
        }
    }

    public static ConfigurationInfo getLocalFontPathsInfo()
    {
        return new ConfigurationInfo(-1, "path-element")
        {
            public boolean isAdvanced()
            {
                return true;
            }
        };
    }

   
    //
    // 'compiler.fonts.managers' option
    //
   
    private List managers;

    public List getManagers()
    {
        return managers;
    }

    public void cfgManagers(ConfigurationValue cv, List l)
    {
        managers = l;
    }

    public static ConfigurationInfo getManagersInfo()
    {
        return new ConfigurationInfo(-1, "manager-class")
        {
            public boolean isAdvanced()
            {
                return true;
            }
        };
    }

    //
    // 'compiler.fonts.max-cached-fonts' option
    //

    private String max_cached_fonts;

    public String getMaxCachedFonts()
    {
        return max_cached_fonts;
    }

    public void cfgMaxCachedFonts(ConfigurationValue cv, String val)
    {
        this.max_cached_fonts = val;
    }

    public static ConfigurationInfo getMaxCachedFontsInfo()
    {
        return new AdvancedConfigurationInfo();
    }

    //
    // 'compiler.fonts.max-glyphs-per-face' option
    //

    private String max_glyphs_per_face;

    public String getMaxGlyphsPerFace()
    {
        return max_glyphs_per_face;
    }

    public void cfgMaxGlyphsPerFace(ConfigurationValue cv, String val)
    {
        this.max_glyphs_per_face = val;
    }
}
TOP

Related Classes of flex2.compiler.common.FontsConfiguration$Languages

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.