用于描述一个web组件所使用的的JS和CSS文件的路径,可以根据客户端的不同,返回不同的文件路径。
package com.fr.web.struct; import com.fr.web.struct.browser.RequestClient; import com.fr.web.struct.category.ScriptPath; import com.fr.web.struct.category.StylePath; /** * web端所用到的原子组件 */ public interface Atom { /** * 该原子组件所使用的javascript脚本 * * @param req 请求客户端 * @return 脚本路径 */ ScriptPath script(RequestClient req); /** * 该原子组件所使用的css样式表 * * @param req 请求客户端 * @return css路径 */ StylePath style(RequestClient req); /** * 自身的过滤器,根据这个过滤器决定是否输出到web端 * @return 过滤器 */ Filter filter(); } |
package com.fr.web.struct; public interface Filter { boolean accept(); } |
示例实现片段:
@Override public Filter filter() { return new Filter() { public boolean accept() { return "com.fr.plugin.decision.theme.original".equals(AppearanceConfig.getInstance().getThemeId()); } }; } |
表示只有id为com.fr.plugin.decision.theme.original的主题插件的的JS和CSS才会输出到浏览器端,其他安装的主题插件使用的JS和CSS都不会输出到浏览器端。
ScriptPath使用参考文档:Atom接口。
StylePath使用参考文档:Atom接口。
通常情况,不需要直接实现这个接口,而是继承抽象类:com.fr.web.struct.Component
而如果一个组件是由其他几个Atom组件组合而成的,可以通过继承:com.fr.web.struct.AssembleComponent来描述组合组件。