diff options
| author | clemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2009-11-05 19:05:14 +0000 | 
|---|---|---|
| committer | clemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2009-11-05 19:05:14 +0000 | 
| commit | 83e8c95ea7d257166d350a59bfd81e9833ec14fd (patch) | |
| tree | 1d989268e21e0ea2de24be718f40e5e86df74bbd /bkucommon/src/main/java/at | |
| parent | 9f66f6cc09fd4d010b270d8a83b204728b9336e1 (diff) | |
| download | mocca-83e8c95ea7d257166d350a59bfd81e9833ec14fd.tar.gz mocca-83e8c95ea7d257166d350a59bfd81e9833ec14fd.tar.bz2 mocca-83e8c95ea7d257166d350a59bfd81e9833ec14fd.zip | |
[#484] European Language support 
git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@535 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4
Diffstat (limited to 'bkucommon/src/main/java/at')
| -rw-r--r-- | bkucommon/src/main/java/at/gv/egiz/bku/viewer/ResourceFontLoader.java | 61 | ||||
| -rw-r--r-- | bkucommon/src/main/java/at/gv/egiz/bku/viewer/ValidatorFactory.java | 23 | 
2 files changed, 79 insertions, 5 deletions
| diff --git a/bkucommon/src/main/java/at/gv/egiz/bku/viewer/ResourceFontLoader.java b/bkucommon/src/main/java/at/gv/egiz/bku/viewer/ResourceFontLoader.java new file mode 100644 index 00000000..8cab581d --- /dev/null +++ b/bkucommon/src/main/java/at/gv/egiz/bku/viewer/ResourceFontLoader.java @@ -0,0 +1,61 @@ +/* + * Copyright 2008 Federal Chancellery Austria and + * Graz University of Technology + *  + * Licensed 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 at.gv.egiz.bku.viewer; + +import at.gv.egiz.bku.gui.viewer.FontProviderException; +import at.gv.egiz.bku.gui.viewer.FontProvider; +import java.awt.Font; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * Loads font(s) as classpath resource. + * Loaded fonts are shared within all instances in this VM (classloader) + * @author Clemens Orthacker <clemens.orthacker@iaik.tugraz.at> + */ +public class ResourceFontLoader implements FontProvider { +   +  public static final String FONT_RESOURCE = "DejaVuLGCSansMono.ttf"; + +  protected final static Log log = LogFactory.getLog(ResourceFontLoader.class); + +  /** TextValidator and (local) SecureViewerDialog (see LocalStalFactory) use ResourceFontLoader, load resource only once  */ +  protected static Font font; + +  /** +   * +   * @return +   * @throws FontProviderException encapsulating FontFormatException (if resource doesn't contain the plain format)  +   * or IOException (if resource cannot be retrieved) +   */ +  @Override +  public Font getFont() throws FontProviderException { +    if (font == null) { +      try { +        if (log.isDebugEnabled()) { +          log.debug("loading " + getClass().getClassLoader().getResource(FONT_RESOURCE)); +        } +        font = Font.createFont(Font.PLAIN, getClass().getClassLoader().getResourceAsStream(FONT_RESOURCE)); +      } catch (Exception ex) { +        log.error("failed to load font", ex); +        throw new FontProviderException("failed to load font", ex); +      } +    } +    log.trace("font resource loaded"); +    return font; +  } +} diff --git a/bkucommon/src/main/java/at/gv/egiz/bku/viewer/ValidatorFactory.java b/bkucommon/src/main/java/at/gv/egiz/bku/viewer/ValidatorFactory.java index e16a261e..ad9bf6bb 100644 --- a/bkucommon/src/main/java/at/gv/egiz/bku/viewer/ValidatorFactory.java +++ b/bkucommon/src/main/java/at/gv/egiz/bku/viewer/ValidatorFactory.java @@ -17,6 +17,8 @@  package at.gv.egiz.bku.viewer;  import java.io.IOException; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException;  import java.net.URL;  import java.util.Collections;  import java.util.Enumeration; @@ -108,14 +110,25 @@ public class ValidatorFactory {      return null;    } -   + +  /** +   * +   * @throws InvocationTargetException if className's (nullary) constructor throws exception +   */    private Validator createValidatorInstance(String className)        throws ClassNotFoundException, InstantiationException, -      IllegalAccessException { -     +      IllegalAccessException, NoSuchMethodException, InvocationTargetException { +      try { -      Class<?> implClass = classLoader.loadClass(className); -      return (Validator) implClass.newInstance(); +      Constructor<?> implConstructor = classLoader.loadClass(className).getConstructor((Class[])null); +      return (Validator) implConstructor.newInstance((Object[])null); +    } catch (InvocationTargetException ex) { +      //ex from constructor +      log.error("Failed to initialize validator class '" + className + "': " + ex.getCause().getMessage(), ex.getCause()); +      throw ex; +    } catch (NoSuchMethodException ex) { +      log.error("Validator class '" + className + "' has no nullary constructor", ex); +      throw ex;      } catch (ClassNotFoundException e) {        log.error("Validator class '" + className + "' not found.", e);        throw e; | 
