package fx.custom.apl.example.ui_event;
import com.fxiaoke.functions.FunctionContext;
import com.fxiaoke.functions.Fx;
import com.fxiaoke.functions.client.DebugHelper;
import com.fxiaoke.functions.model.Remind;
import com.fxiaoke.functions.template.IUIEventAction;
import com.fxiaoke.functions.ui.UIEvent;
import com.fxiaoke.functions.utils.Maps;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class UIEventExample implements IUIEventAction {
/**
* UI事件函数的运行方法
*/
@Override
public UIEvent execute(FunctionContext context, Map<String, Object> args) {
UIEvent.Builder builder = UIEvent.Builder.create(context);
//把字段设置为只读、隐藏
builder.editMasterFields("field_I18ri__c").readOnly(true).hidden(true);
//设置提醒消息
builder.remind(Remind.Text("弹窗提醒"));
//通过修改主对象
Map map = Maps.newHashMap();
map.put("field1", "value1");//设置字段1为value1
map.put("field2", "value2");//设置字段2为value2
map.put("field3", null);//清空字段
builder.editMaster(map);
//添加一条从对象,添加从对象,必须指定业务类型,而且是当前布局展示的业务类型
//如果业务类型不匹配.从对象无法添加
builder.addDetail("detailApiName")
.set(Maps.of("a", 1, "b", 2));
//根据条件删除 从对象, 删除为where中返回为true的从对象
builder.removeDetail("detailApiName")
.where(x -> ((Integer) x.get("a")) > 0);
// 根据条件编辑从对象 和上同理只会处理where 中返回为true的从对象数据,where方法使用lambda表达式
builder.editDetail("detailApiName")
.set(Maps.of("a", 1, "b", 2))
.where(x -> ((Integer) x.get("a")) > 0);
//removeDetail和editDetail 都可以不添加where这样会直接作用于所有数据
//set的内容和editMaster的内容要保证是map也就是key:valued的形式
builder.removeDetail("detailApiName");
builder.editDetail("detailApiName")
.set(Maps.of("a", 1, "b", 2));
// 将apiName为object_0uyAd__c的从对象隐藏(注:从对象隐藏后,保存数据时会将隐藏的从对象数据清空,切记谨慎使用,可通过keepData来自定义是否保留数据。默认为false)
builder.editObject("object_0uyAd__c").hidden(true).keepData(true)
UIEvent event = builder.getUIEvent()
return event;
}
public static void main(String[] args) throws IOException {
//调试器
DebugHelper helper = new DebugHelper();
helper.init();
Map<String, Object> param = new HashMap<>();
//模拟调试的上下文,例如开发时想模拟一个客户对象的上下文,以方便开发
FunctionContext context = helper.context("object_zBB6O__c", "63fd7a30ffd89f00013c7be3");
UIEvent execute = new UIEventExample().execute(context, param);
Fx.log.info(execute);
}
}
Java接口说明
2024-10-22