/** Returns the style to use if there are no matching styles. */
 private SynthStyle getDefaultStyle() {
   if (_defaultStyle == null) {
     _defaultStyle = new DefaultSynthStyle();
     ((DefaultSynthStyle) _defaultStyle).setFont(new FontUIResource("Dialog", Font.PLAIN, 12));
   }
   return _defaultStyle;
 }
  /**
   * Creates a single Style from the passed in styles. The passed in List is reverse sorted, that is
   * the most recently added style found to match will be first.
   */
  private SynthStyle mergeStyles(java.util.List styles) {
    int size = styles.size();

    if (size == 0) {
      return null;
    } else if (size == 1) {
      return (SynthStyle) ((DefaultSynthStyle) styles.get(0)).clone();
    }
    // NOTE: merging is done backwards as DefaultSynthStyleFactory reverses
    // order, that is, the most specific style is first.
    DefaultSynthStyle style = (DefaultSynthStyle) styles.get(size - 1);

    style = (DefaultSynthStyle) style.clone();
    for (int counter = size - 2; counter >= 0; counter--) {
      style = ((DefaultSynthStyle) styles.get(counter)).addTo(style);
    }
    return style;
  }