【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

一、特殊名词介绍

二、接口/方法/对象源码——【FineReport V10 2020-11-08】

RequestClient.java
package com.fr.web.struct.browser;

import com.fr.common.annotations.Open;

/**
 * 发起请求的客户端
 */
@Open
public interface RequestClient {

    /**
     * 是否为IE
     * @return 是ie则返回true
     */
    boolean isIE();

    /**
     * 是否为Ie6、7、8版本
     *
     * @return  是IE低版本返回true
     */
    boolean isLowIEVersion();

}
BrowserProvider.java
package com.fr.stable.web;

import com.fr.web.struct.browser.RequestClient;

/**
 * Created by IntelliJ IDEA.
 * Author : Richer
 * Version: 6.5.6
 * Date: 12-10-24
 * Time: 下午4:02
 */
public interface BrowserProvider extends RequestClient {

	/**
	 * 返回浏览器.
	 */
	String getBrowser();

	/**
	 * 返回FlashPlayer的解压URL
	 */
	String getFlashPlayerInstallerURL();

	/**
     * 是否为ie11
     * @return 是ie11返回true
     */
    boolean isIE11();

    /**
     *是否是webkit内核
     * @return是webkit内核返回true
     */
    public boolean isWebkit();

    /**
     * 是否为FireFox
     * @return 是FireFox则返回true
     */
    boolean isFireFox();

	/**
	 * 是否为怪异模式
     * @return 是否为怪异模式
	 */
	boolean isQuirksModel();

	/**
	 * 是否处理Center
     * @return 是否处理Center
	 */
	boolean shouldWrapCenter();

	/**
	 * 是否为zoomcss使用相对位置
     * @return 是否为zoomcss使用相对位置
	 */
	boolean shouldRelativePosition4ZoomCSS();

	/**
	 * 是否考虑VML
     * @return 是否考虑VML
	 */
	boolean shouldConsiderVML();

	/**
	 * 是否支持canvas
     * @return 是否支持canvas
	 */
	boolean supportCanvas();

	/**
	 * 是否write可变大小的Feature
     * @return 是否write可变大小的Feature
	 */
	boolean shouldWriteResizableFeature();

	/**
	 * 是否为盒型模式.
     * @return 是否为盒型模式.
	 */
	boolean supportBoxModel();

	/**
	 * 是否考虑头部的TD
     * @return 是否考虑头部的TD
	 */
	boolean shouldConsiderHeavyTD();

	/**
	 * 是否为缺失的右边框做些..
     * @return 是则为true
	 */
	boolean shouldDoSomeStuff4MissingRightBorderOfTable();

	/**
	 * 是否考虑折线边框
     * @return 是否考虑折线边框
	 */
	boolean shouldConsiderLineBorder();

	/**
	 * 为Tail处理隐藏的行.
     * @param isTrandition 是否非page或view
     * @return 是否为Tail处理隐藏的行
	 */
	boolean justDealWithTheHiddenRowsOfTail(boolean isTrandition);

	/**
	 * 是否添加隐藏的Tr
     * @return 是否添加隐藏的Tr
	 */
	boolean shouldAddHiddenTr();

	/**
	 * 是否改变宽度 适应边框宽度.
     * @return 是否改变宽度 适应边框宽度.
	 */
	boolean shouldModifyWidth4PainterAccordingToBorderWidth();

	/**
	 * 是否支持透明图片
     * @return 是否支持透明图片
	 */
	boolean supportTransparentImage();


	/**
	 * 是否使用table中的td 宽度属性.
     * @return 是否使用table中的td 宽度属性.
	 */
	boolean isUseTDWidthInTable();

	/**
	 * 是否需要屏蔽 图片选中时焦点虚线
	 * @return 是否需要屏蔽 图片选中时焦点虚线
	 */
	boolean isNoBlurInImage();

	/**
	 * 是否需要调整Line-Height
     * @return 是否需要调整Line-Height
	 */
	boolean needAdjustLineHeight();

	/**
	 * Span是否会考虑隐藏行
	 * @return 是否会考虑隐藏行
	 */
	boolean countHiddenItemForSpan();

    /**
     * 是否跳过空的冻结部分 IE6需要
     * @return 是返回true
     */
    boolean skipEmptyPart();

    /**
     * 是否在前面增加空白tr IE67冻结需要
     * @return 是返回true
     */
    boolean addHiddenTRAhead();

    /**
     * 根据边框调整行高 ie67冻结
     * @return 是返回true
     */
    boolean fixRowByBorder();

    /**
     * 冻结调整偏移
     * @return 冻结调整偏移
     */
    boolean fixFrozenOffsetByBorder();

    /**
     * 是否需要补充空白tr
     *
     * @return 是否需要补充空白tr
     *
     */
    boolean isNeedAppendBlankTD();
}


三、接口/方法/对象说明

RequestClient接口,截止目前在所有的插件接口内,仅作为接口方法的入参使用。实际带入到插件接口方法内部的参数对象也仅仅只有 com.fr.web.Browser 一种。Browser也是一个开放类,所有成员方法均可以在插件中使用。

该接口的作用也比较单一,就是向相关的接口提供当前请求客户端(一般指浏览器)信息。

接口的各方法,在注释中已有完整的说明,此处不再赘述。

四、常用链接

3种插件中较为稳定的接口说明

五、开源案例


一、特殊名词介绍

二、接口/方法/对象源码

这部分方法比较零散,会根据接口文档和专题的需要逐渐补充

1.获取当前设计器的工作区  DesignerFrame frame = DesignerContext.getDesignerFrame();

2.获取当前设计器的编辑区模板  JTemplate template = DesignerContext.getDesignerFrame().getSelectedJTemplate();

3.创建一个图标按钮  new UIButton(IOUtils.readIcon("/com/fr/base/images/cell/control/remove.png"));

4.获取当前设计器编辑的cpt报表的sheet页  ((JWorkBook) template).getEditingElementCase();

5.刷新当前的工作区状态 template.fireTargetModified();

6.设计器消息弹窗 FineJOptionPane.showMessageDialog(弹窗归属的主体,消息内容文本),主体如果不知道是啥就设置成frame。

三、接口/方法/对象说明


四、常用链接

DesignerFrameUpButtonProvider-设计器顶部工作区图标工具栏按钮扩展

五、开源案例


  • No labels