⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 verbatim.java

📁 jboss规则引擎
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
      LineCountEmitter lcEmitter = new LineCountEmitter();      rtf.replay(lcEmitter);      int numLines = lcEmitter.lineCount();      int listingModulus = numLines < modulus ? 1 : modulus;      double log10numLines = Math.log(numLines) / Math.log(10);      int listingWidth = width < log10numLines+1	? (int) Math.floor(log10numLines + 1)	: width;      Controller controller = context.getController();      NamePool namePool = controller.getNamePool();      NumberLinesEmitter nlEmitter = new NumberLinesEmitter(controller,							    namePool,							    startinglinenumber,							    listingModulus,							    listingWidth,							    separator,							    foStylesheet);      rtf.replay(nlEmitter);      return nlEmitter.getResultTreeFragment();    } catch (TransformerException e) {      // This "can't" happen.      System.out.println("Transformer Exception in numberLines");      return rtf;    }  }  /**   * <p>Setup the parameters associated with callouts</p>   *   * <p>This method queries the stylesheet for the variables   * associated with line numbering. It is called automatically before   * callouts are processed. The context is used to retrieve the values,   * this allows templates to redefine these variables.</p>   *   * <p>The following variables are queried. If the variables do not   * exist, builtin defaults will be used (but you may also get a bunch   * of messages from the Java interpreter).</p>   *   * <dl>   * <dt><code>callout.graphics</code></dt>   * <dd>Are we using callout graphics? A value of 0 or "" is false,   * any other value is true. If callout graphics are not used, the   * parameters related to graphis are not queried.</dd>   * <dt><code>callout.graphics.path</code></dt>   * <dd>Specifies the path to callout graphics.</dd>   * <dt><code>callout.graphics.extension</code></dt>   * <dd>Specifies the extension ot use for callout graphics.</dd>   * <dt><code>callout.graphics.number.limit</code></dt>   * <dd>Identifies the largest number that can be represented as a   * graphic. Larger callout numbers will be represented using text.</dd>   * <dt><code>callout.defaultcolumn</code></dt>   * <dd>Specifies the default column for callout bullets that do not   * specify a column.</dd>   * <dt><code>stylesheet.result.type</code></dt>   * <dd>Specifies the stylesheet result type. The value is either 'fo'   * (for XSL Formatting Objects) or it isn't. (builtin default: html).</dd>   * </dl>   *   * @param context The current stylesheet context   *   */  private static void setupCallouts(Context context) {    NamePool namePool = context.getController().getNamePool();    boolean useGraphics = false;    boolean useUnicode = false;    int unicodeStart = 49;    int unicodeMax = 0;    String unicodeFont = "";    // Hardcoded defaults    defaultColumn = 60;    graphicsPath = null;    graphicsExt = null;    graphicsMax = 0;    foStylesheet = false;    calloutsSetup = true;    Value variable = null;    String varString = null;    // Get the stylesheet type    varString = getVariable(context, "stylesheet.result.type");    foStylesheet = (varString.equals("fo"));    // Get the default column    varString = getVariable(context, "callout.defaultcolumn");    try {      defaultColumn = Integer.parseInt(varString);    } catch (NumberFormatException nfe) {      System.out.println("$callout.defaultcolumn is not a number: "			 + varString);    }    // Use graphics at all?    varString = getVariable(context, "callout.graphics");    useGraphics = !(varString.equals("0") || varString.equals(""));    // Use unicode at all?    varString = getVariable(context, "callout.unicode");    useUnicode = !(varString.equals("0") || varString.equals(""));    if (useGraphics) {      // Get the graphics path      varString = getVariable(context, "callout.graphics.path");      graphicsPath = varString;      // Get the graphics extension      varString = getVariable(context, "callout.graphics.extension");      graphicsExt = varString;      // Get the number limit      varString = getVariable(context, "callout.graphics.number.limit");      try {	graphicsMax = Integer.parseInt(varString);      } catch (NumberFormatException nfe) {	System.out.println("$callout.graphics.number.limit is not a number: "			   + varString);	graphicsMax = 0;      }      fCallout = new FormatGraphicCallout(namePool,					  graphicsPath,					  graphicsExt,					  graphicsMax,					  foStylesheet);    } else if (useUnicode) {      // Get the starting character      varString = getVariable(context, "callout.unicode.start.character");      try {	unicodeStart = Integer.parseInt(varString);      } catch (NumberFormatException nfe) {	System.out.println("$callout.unicode.start.character is not a number: "			   + varString);	unicodeStart = 48;      }      // Get the number limit      varString = getVariable(context, "callout.unicode.number.limit");      try {	unicodeMax = Integer.parseInt(varString);      } catch (NumberFormatException nfe) {	System.out.println("$callout.unicode.number.limit is not a number: "			   + varString);	unicodeStart = 0;      }      // Get the font      unicodeFont = getVariable(context, "callout.unicode.font");      if (unicodeFont == null) {	unicodeFont = "";      }      fCallout = new FormatUnicodeCallout(namePool,					  unicodeFont,					  unicodeStart,					  unicodeMax,					  foStylesheet);    } else {      fCallout = new FormatTextCallout(namePool, foStylesheet);    }  }  /**   * <p>Insert text callouts into a verbatim environment.</p>   *   * <p>This method examines the <tt>areaset</tt> and <tt>area</tt> elements   * in the supplied <tt>areaspec</tt> and decorates the supplied   * result tree fragment with appropriate callout markers.</p>   *   * <p>If a <tt>label</tt> attribute is supplied on an <tt>area</tt>,   * its content will be used for the label, otherwise the callout   * number will be used, surrounded by parenthesis. Callout numbers may   * also be represented as graphics. Callouts are   * numbered in document order. All of the <tt>area</tt>s in an   * <tt>areaset</tt> get the same number.</p>   *   * <p>Only the <tt>linecolumn</tt> and <tt>linerange</tt> units are   * supported. If no unit is specifed, <tt>linecolumn</tt> is assumed.   * If only a line is specified, the callout decoration appears in   * the defaultColumn. Lines will be padded with blanks to reach the   * necessary column, but callouts that are located beyond the last   * line of the verbatim environment will be ignored.</p>   *   * <p>Callouts are inserted before the character at the line/column   * where they are to occur.</p>   *   * <p>If graphical callouts are used, and the callout number is less   * than or equal to the $callout.graphics.number.limit, the following image   * will be generated for HTML:   *   * <pre>   * &lt;img src="$callout.graphics.path/999$callout.graphics.ext"   *         alt="conumber">   * </pre>   *   * If the $stylesheet.result.type is 'fo', the following image will   * be generated:   *   * <pre>   * &lt;fo:external-graphic src="$callout.graphics.path/999$callout.graphics.ext"/>   * </pre>   *   * <p>If the callout number exceeds $callout.graphics.number.limit,   * the callout will be the callout number surrounded by   * parenthesis.</p>   *   * @param context The stylesheet context.   * @param areaspecNodeList The source node set that contains the areaspec.   * @param rtf_ns The result tree fragment of the verbatim environment.   *   * @return The modified result tree fragment.   */  public static NodeSetValue insertCallouts (Context context,					     NodeList areaspecNodeList,					     NodeSetValue rtf_ns) {    FragmentValue rtf = (FragmentValue) rtf_ns;    setupCallouts(context);    try {      Controller controller = context.getController();      NamePool namePool = controller.getNamePool();      CalloutEmitter cEmitter = new CalloutEmitter(controller,						   namePool,						   defaultColumn,						   foStylesheet,						   fCallout);      cEmitter.setupCallouts(areaspecNodeList);      rtf.replay(cEmitter);      return cEmitter.getResultTreeFragment();    } catch (TransformerException e) {      // This "can't" happen.      System.out.println("Transformer Exception in insertCallouts");      return rtf;    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -