Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
title主题示例实现
collapsetrue
@Authorize(callSignKey = Constants.PLUING_ID)
public class ThemeGreen extends AbstractThemeVariousProvider {

    @Override
    public String name() {
        return "AcrossGreen";
    }

    @Override
    public String text() {
        return "横向目录";
    }

    @Override
    public String coverPath() {
        return "/com/fr/solution/theme/green/files/cover.png";
    }

    @Override
    public String scriptPath() {
        PluginLicense pluginLicense = PluginLicenseManager.getInstance().getPluginLicenseByID(MongoConstants.PLUGIN_ID);
        if (pluginLicense.isAvailable()) {
            return "/com/fr/solution/theme/green/files/theme.js";
        } else {
            return "";
        }
    }

    @Override
    public String stylePath() {
        PluginLicense pluginLicense = PluginLicenseManager.getInstance().getPluginLicenseByID(MongoConstants.PLUGIN_ID);
        if (pluginLicense.isAvailable()) {
            return "/com/fr/solution/theme/green/files/style.css";
        } else {
            return "";
        }
    }
}

其中callSignKey的值就是插件的ID,是需要和plugin上述示例中,callSignKey的值就是插件的ID,是需要和plugin.xml中的id字段一致的。xml中的id字段一致的,如果插件试用期已过,那么就会返回空的路径,导致这个插件的并不会起作用了,当然,也可以使用其他更多的方式进行购买提醒。

注意事项

  1. 注解和授权控制代码并非要在一个类上;
  2. 一般是来说,同时含有设计器接口和非设计器接口的插件,Authorize注解只应该加在除extra-designer标签以外的接入点实现类上。

 

效果自测

报表注册插件lic试用期内设计器*1设计器中的服务器环境*2服务器环境*3
未注册无/有无限试用期正常正常正常
注册正常正常正常
注册过期过期过期
注册已授权已授权已授权

*1:设计器是指包含有为设计器部分做的插件,比如设计器的菜单,对话框等;

*2:指的是包含有为服务器部分做的插件,在设计器中包含有的jetty服务器环境的运行情况;

*3:指的是包含有为服务器部分做的插件,在tomcat等其他独立java web容器中的运行情况;Authorize注解只应该加在除extra-designer标签以外的接入点实现类上。