设计器预览方式扩展接口示例
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

69 lines
2.2 KiB

package com.tptj.demo.hg.preview.provider;
import com.fr.design.fun.impl.AbstractPreviewProvider;
import com.fr.design.mainframe.JTemplate;
import com.fr.intelli.record.Focus;
import com.fr.log.FineLoggerFactory;
import com.fr.record.analyzer.EnableMetrics;
import java.util.HashMap;
import java.util.Map;
/**
* @author 秃破天际
* @version 10.0
* Created by 秃破天际 on 2021/9/13
**/
@EnableMetrics
public class Demo extends AbstractPreviewProvider {
@Override
public String nameForPopupItem() {
return "Demo";
}
@Override
public String iconPathForPopupItem() {
return "com/fr/design/images/m_help/preview_page.png";
}
@Override
public String iconPathForLarge() {
return "com/fr/design/images/m_help/preview_page.png";
}
@Override
public int previewTypeCode() {
//这个接口方法设计上有一定的缺陷,没有考虑到实际扩展后的序号可能多个插件之间容易冲突【相对于数字,文本冲突的概率就小得多了】
//建议开发者统一返回0就可以了,然后通过op参数来指定具体的actor
return 0;
}
@Override
public Map<String, Object> parametersForPreview(){
Map<String, Object> params = new HashMap<String, Object>();
params.put("demo","preview");
params.put("op","write");
return params;
}
@Override
@Focus(id = "com.tptj.demo.hg.preview.provider.v10", text = "PreviewProvider")
public boolean accept(JTemplate jTemplate) {
if( super.accept(jTemplate) ){
try{
//点击预览按钮的判断
FineLoggerFactory.getLogger().info("Demo PreviewProvider Is Running!{}",jTemplate.getPath());
}catch(Exception e){
}
return true;
}
return false;
}
@Override
public String getActionType() {
//这个参数一般是配合使用的,产品预览使用的标准参数是 viewlet = xxxx.cpt 如果参数出现占位或有其他特殊情况可以使用这个接口更改
//比如返回 test 最终URL上 就是 test = xxxx.cpt了
return "viewlet";
}
}