微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java.text.Bidi的实例源码

项目:Openjsharp    文件TextMeasurer.java   
private TextLine makeTextLineOnRange(int startPos,int limitPos) {

        int[] charsLtoV = null;
        byte[] charLevels = null;

        if (fBidi != null) {
            Bidi lineBidi = fBidi.createLineBidi(startPos,limitPos);
            charLevels = BidiUtils.getLevels(lineBidi);
            int[] charsVtoL = BidiUtils.createVisualToLogicalmap(charLevels);
            charsLtoV = BidiUtils.createInverseMap(charsVtoL);
        }

        TextLineComponent[] components = makeComponentsOnRange(startPos,limitPos);

        return new TextLine(fFrc,components,fBaselineOffsets,fChars,startPos,limitPos,charsLtoV,charLevels,fIsDirectionLTR);

    }
项目:Openjsharp    文件TextLine.java   
/**
 * Create a TextLine from the Font and character data over the
 * range.  The range is relative to both the StyledParagraph and the
 * character array.
 */
public static TextLine createLineFromText(char[] chars,StyledParagraph styledParagraph,TextLabelFactory factory,boolean isDirectionLTR,float[] baselineOffsets) {

    factory.setLineContext(0,chars.length);

    Bidi lineBidi = factory.getLineBidi();
    int[] charsLtoV = null;
    byte[] levels = null;

    if (lineBidi != null) {
        levels = BidiUtils.getLevels(lineBidi);
        int[] charsVtoL = BidiUtils.createVisualToLogicalmap(levels);
        charsLtoV = BidiUtils.createInverseMap(charsVtoL);
    }

    TextLineComponent[] components =
        getComponents(styledParagraph,chars,chars.length,levels,factory);

    return new TextLine(factory.getFontRenderContext(),baselineOffsets,isDirectionLTR);
}
项目:Openjsharp    文件TextLine.java   
/**
 * Create a TextLine from the text.  chars is just the text in the iterator.
 */
public static TextLine standardCreateTextLine(FontRenderContext frc,AttributedCharacterIterator text,char[] chars,float[] baselineOffsets) {

    StyledParagraph styledParagraph = new StyledParagraph(text,chars);
    Bidi bidi = new Bidi(text);
    if (bidi.isLeftToRight()) {
        bidi = null;
    }
    int layoutFlags = 0; // no extra info yet,bidi determines run and line direction
    TextLabelFactory factory = new TextLabelFactory(frc,bidi,layoutFlags);

    boolean isDirectionLTR = true;
    if (bidi != null) {
        isDirectionLTR = bidi.baseIsLeftToRight();
    }
    return createLineFromText(chars,styledParagraph,factory,isDirectionLTR,baselineOffsets);
}
项目:Openjsharp    文件BidiUtils.java   
/**
 * Return the level of each character into the levels array starting at start.
 * This is a convenience method for clients who prefer to use an explicit levels
 * array instead of iterating over the runs.
 *
 * @param levels the array to receive the character levels
 * @param start the starting offset into the the array
 * @throws indexoutofboundsexception if <code>start</code> is less than 0 or
 * <code>start + getLength()</code> is greater than <code>levels.length</code>.
 */
public static void getLevels(Bidi bidi,byte[] levels,int start) {
    int limit = start + bidi.getLength();

    if (start < 0 || limit > levels.length) {
        throw new indexoutofboundsexception("levels.length = " + levels.length +
            " start: " + start + " limit: " + limit);
    }

    int runcount = bidi.getruncount();
    int p = start;
    for (int i = 0; i < runcount; ++i) {
        int rlimit = start + bidi.getRunLimit(i);
        byte rlevel = (byte)bidi.getRunLevel(i);

        while (p < rlimit) {
            levels[p++] = rlevel;
        }
    }
}
项目:jdk8u-jdk    文件TextMeasurer.java   
private TextLine makeTextLineOnRange(int startPos,fIsDirectionLTR);

    }
项目:jdk8u-jdk    文件TextLine.java   
/**
 * Create a TextLine from the Font and character data over the
 * range.  The range is relative to both the StyledParagraph and the
 * character array.
 */
public static TextLine createLineFromText(char[] chars,isDirectionLTR);
}
项目:jdk8u-jdk    文件TextLine.java   
/**
 * Create a TextLine from the text.  chars is just the text in the iterator.
 */
public static TextLine standardCreateTextLine(FontRenderContext frc,baselineOffsets);
}
项目:jdk8u-jdk    文件BidiUtils.java   
/**
 * Return the level of each character into the levels array starting at start.
 * This is a convenience method for clients who prefer to use an explicit levels
 * array instead of iterating over the runs.
 *
 * @param levels the array to receive the character levels
 * @param start the starting offset into the the array
 * @throws indexoutofboundsexception if <code>start</code> is less than 0 or
 * <code>start + getLength()</code> is greater than <code>levels.length</code>.
 */
public static void getLevels(Bidi bidi,int start) {
    int limit = start + bidi.getLength();

    if (start < 0 || limit > levels.length) {
        throw new indexoutofboundsexception("levels.length = " + levels.length +
            " start: " + start + " limit: " + limit);
    }

    int runcount = bidi.getruncount();
    int p = start;
    for (int i = 0; i < runcount; ++i) {
        int rlimit = start + bidi.getRunLimit(i);
        byte rlevel = (byte)bidi.getRunLevel(i);

        while (p < rlimit) {
            levels[p++] = rlevel;
        }
    }
}
项目:openjdk-jdk10    文件TextMeasurer.java   
private TextLine makeTextLineOnRange(int startPos,fIsDirectionLTR);

    }
项目:openjdk-jdk10    文件TextLine.java   
/**
 * Create a TextLine from the Font and character data over the
 * range.  The range is relative to both the StyledParagraph and the
 * character array.
 */
public static TextLine createLineFromText(char[] chars,isDirectionLTR);
}
项目:openjdk-jdk10    文件TextLine.java   
/**
 * Create a TextLine from the text.  chars is just the text in the iterator.
 */
public static TextLine standardCreateTextLine(FontRenderContext frc,baselineOffsets);
}
项目:openjdk-jdk10    文件BidiUtils.java   
/**
 * Return the level of each character into the levels array starting at start.
 * This is a convenience method for clients who prefer to use an explicit levels
 * array instead of iterating over the runs.
 *
 * @param levels the array to receive the character levels
 * @param start the starting offset into the array
 * @throws indexoutofboundsexception if {@code start} is less than 0 or
 * {@code start + getLength()} is greater than {@code levels.length}.
 */
public static void getLevels(Bidi bidi,int start) {
    int limit = start + bidi.getLength();

    if (start < 0 || limit > levels.length) {
        throw new indexoutofboundsexception("levels.length = " + levels.length +
            " start: " + start + " limit: " + limit);
    }

    int runcount = bidi.getruncount();
    int p = start;
    for (int i = 0; i < runcount; ++i) {
        int rlimit = start + bidi.getRunLimit(i);
        byte rlevel = (byte)bidi.getRunLevel(i);

        while (p < rlimit) {
            levels[p++] = rlevel;
        }
    }
}
项目:openjdk9    文件TextMeasurer.java   
private TextLine makeTextLineOnRange(int startPos,fIsDirectionLTR);

    }
项目:openjdk9    文件TextLine.java   
/**
 * Create a TextLine from the Font and character data over the
 * range.  The range is relative to both the StyledParagraph and the
 * character array.
 */
public static TextLine createLineFromText(char[] chars,isDirectionLTR);
}
项目:openjdk9    文件TextLine.java   
/**
 * Create a TextLine from the text.  chars is just the text in the iterator.
 */
public static TextLine standardCreateTextLine(FontRenderContext frc,baselineOffsets);
}
项目:openjdk9    文件BidiUtils.java   
/**
 * Return the level of each character into the levels array starting at start.
 * This is a convenience method for clients who prefer to use an explicit levels
 * array instead of iterating over the runs.
 *
 * @param levels the array to receive the character levels
 * @param start the starting offset into the array
 * @throws indexoutofboundsexception if {@code start} is less than 0 or
 * {@code start + getLength()} is greater than {@code levels.length}.
 */
public static void getLevels(Bidi bidi,int start) {
    int limit = start + bidi.getLength();

    if (start < 0 || limit > levels.length) {
        throw new indexoutofboundsexception("levels.length = " + levels.length +
            " start: " + start + " limit: " + limit);
    }

    int runcount = bidi.getruncount();
    int p = start;
    for (int i = 0; i < runcount; ++i) {
        int rlimit = start + bidi.getRunLimit(i);
        byte rlevel = (byte)bidi.getRunLevel(i);

        while (p < rlimit) {
            levels[p++] = rlevel;
        }
    }
}
项目:Java8CN    文件TextMeasurer.java   
private TextLine makeTextLineOnRange(int startPos,fIsDirectionLTR);

    }
项目:Java8CN    文件TextLine.java   
/**
 * Create a TextLine from the Font and character data over the
 * range.  The range is relative to both the StyledParagraph and the
 * character array.
 */
public static TextLine createLineFromText(char[] chars,isDirectionLTR);
}
项目:Java8CN    文件TextLine.java   
/**
 * Create a TextLine from the text.  chars is just the text in the iterator.
 */
public static TextLine standardCreateTextLine(FontRenderContext frc,baselineOffsets);
}
项目:memoir    文件Helper.java   
/**
 * This method determines if the direction of a substring is right-to-left.
 * If the string is empty that determination is based on the default system language
 * Locale.getDefault().
 * The method can handle invalid substring deFinitions (start > end etc.),in which case the
 * method returns False.
 *
 * @return True if the text direction is right-to-left,false otherwise.
 */
public static boolean isRTL(CharSequence s,int start,int end) {
    if (s == null || s.length() == 0) {
        // empty string --> determine the direction from the default language
        return isRTL(Locale.getDefault());
    }

    if (start == end) {
        // if no character is selected we need to expand the selection
        start = Math.max(0,--start);
        if (start == end) {
            end = Math.min(s.length(),++end);
        }
    }

    try {
        Bidi bidi = new Bidi(s.subSequence(start,end).toString(),Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);
        return ! bidi.baseIsLeftToRight();
    }
    catch (indexoutofboundsexception e) {
        return false;
    }
}
项目:jdk8u_jdk    文件TextMeasurer.java   
private TextLine makeTextLineOnRange(int startPos,fIsDirectionLTR);

    }
项目:jdk8u_jdk    文件TextLine.java   
/**
 * Create a TextLine from the Font and character data over the
 * range.  The range is relative to both the StyledParagraph and the
 * character array.
 */
public static TextLine createLineFromText(char[] chars,isDirectionLTR);
}
项目:jdk8u_jdk    文件TextLine.java   
/**
 * Create a TextLine from the text.  chars is just the text in the iterator.
 */
public static TextLine standardCreateTextLine(FontRenderContext frc,baselineOffsets);
}
项目:jdk8u_jdk    文件BidiUtils.java   
/**
 * Return the level of each character into the levels array starting at start.
 * This is a convenience method for clients who prefer to use an explicit levels
 * array instead of iterating over the runs.
 *
 * @param levels the array to receive the character levels
 * @param start the starting offset into the the array
 * @throws indexoutofboundsexception if <code>start</code> is less than 0 or
 * <code>start + getLength()</code> is greater than <code>levels.length</code>.
 */
public static void getLevels(Bidi bidi,int start) {
    int limit = start + bidi.getLength();

    if (start < 0 || limit > levels.length) {
        throw new indexoutofboundsexception("levels.length = " + levels.length +
            " start: " + start + " limit: " + limit);
    }

    int runcount = bidi.getruncount();
    int p = start;
    for (int i = 0; i < runcount; ++i) {
        int rlimit = start + bidi.getRunLimit(i);
        byte rlevel = (byte)bidi.getRunLevel(i);

        while (p < rlimit) {
            levels[p++] = rlevel;
        }
    }
}
项目:lookaside_java-1.8.0-openjdk    文件TextMeasurer.java   
private TextLine makeTextLineOnRange(int startPos,fIsDirectionLTR);

    }
项目:lookaside_java-1.8.0-openjdk    文件TextLine.java   
/**
 * Create a TextLine from the Font and character data over the
 * range.  The range is relative to both the StyledParagraph and the
 * character array.
 */
public static TextLine createLineFromText(char[] chars,isDirectionLTR);
}
项目:lookaside_java-1.8.0-openjdk    文件TextLine.java   
/**
 * Create a TextLine from the text.  chars is just the text in the iterator.
 */
public static TextLine standardCreateTextLine(FontRenderContext frc,baselineOffsets);
}
项目:lookaside_java-1.8.0-openjdk    文件BidiUtils.java   
/**
 * Return the level of each character into the levels array starting at start.
 * This is a convenience method for clients who prefer to use an explicit levels
 * array instead of iterating over the runs.
 *
 * @param levels the array to receive the character levels
 * @param start the starting offset into the the array
 * @throws indexoutofboundsexception if <code>start</code> is less than 0 or
 * <code>start + getLength()</code> is greater than <code>levels.length</code>.
 */
public static void getLevels(Bidi bidi,int start) {
    int limit = start + bidi.getLength();

    if (start < 0 || limit > levels.length) {
        throw new indexoutofboundsexception("levels.length = " + levels.length +
            " start: " + start + " limit: " + limit);
    }

    int runcount = bidi.getruncount();
    int p = start;
    for (int i = 0; i < runcount; ++i) {
        int rlimit = start + bidi.getRunLimit(i);
        byte rlevel = (byte)bidi.getRunLevel(i);

        while (p < rlimit) {
            levels[p++] = rlevel;
        }
    }
}
项目:Doctor    文件Helper.java   
/**
 * This method determines if the direction of a substring is right-to-left.
 * If the string is empty that determination is based on the default system language
 * Locale.getDefault().
 * The method can handle invalid substring deFinitions (start > end etc.),Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);
        return ! bidi.baseIsLeftToRight();
    }
    catch (indexoutofboundsexception e) {
        return false;
    }
}
项目:Android-RTEditor    文件Helper.java   
/**
 * This method determines if the direction of a substring is right-to-left.
 * If the string is empty that determination is based on the default system language
 * Locale.getDefault().
 * The method can handle invalid substring deFinitions (start > end etc.),Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);
        return ! bidi.baseIsLeftToRight();
    }
    catch (indexoutofboundsexception e) {
        return false;
    }
}
项目:VarJ    文件TextMeasurer.java   
private TextLine makeTextLineOnRange(int startPos,fIsDirectionLTR);

    }
项目:VarJ    文件TextLine.java   
/**
 * Create a TextLine from the Font and character data over the
 * range.  The range is relative to both the StyledParagraph and the
 * character array.
 */
public static TextLine createLineFromText(char[] chars,isDirectionLTR);
}
项目:VarJ    文件TextLine.java   
/**
 * Create a TextLine from the text.  chars is just the text in the iterator.
 */
public static TextLine standardCreateTextLine(FontRenderContext frc,baselineOffsets);
}
项目:jdk-1.7-annotated    文件TextMeasurer.java   
private TextLine makeTextLineOnRange(int startPos,fIsDirectionLTR);

    }
项目:jdk-1.7-annotated    文件TextLine.java   
/**
 * Create a TextLine from the Font and character data over the
 * range.  The range is relative to both the StyledParagraph and the
 * character array.
 */
public static TextLine createLineFromText(char[] chars,isDirectionLTR);
}
项目:jdk-1.7-annotated    文件TextLine.java   
/**
 * Create a TextLine from the text.  chars is just the text in the iterator.
 */
public static TextLine standardCreateTextLine(FontRenderContext frc,baselineOffsets);
}
项目:infobip-open-jdk-8    文件TextMeasurer.java   
private TextLine makeTextLineOnRange(int startPos,fIsDirectionLTR);

    }
项目:infobip-open-jdk-8    文件TextLine.java   
/**
 * Create a TextLine from the Font and character data over the
 * range.  The range is relative to both the StyledParagraph and the
 * character array.
 */
public static TextLine createLineFromText(char[] chars,isDirectionLTR);
}
项目:infobip-open-jdk-8    文件TextLine.java   
/**
 * Create a TextLine from the text.  chars is just the text in the iterator.
 */
public static TextLine standardCreateTextLine(FontRenderContext frc,baselineOffsets);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。