添加业务逻辑

DashboardViewAssistant 是一个辅助组件,可以用来管理仪表盘。它是 prototype scope 的 Spring bean,其 init 方法中,可以获得托管的仪表盘实例。

如果需要允许用户打开和关闭某些业务逻辑或让用户选择一个预定义的业务逻辑提供者,可以使用此辅助 bean。

下面看一个 VisitScheduleAssistant 服务的示例,可以重加载 visits(拜访):

@Component("sample_VisitScheduleAssistant")
@Scope("prototype") (1)
public class VisitScheduleAssistant implements DashboardViewAssistant { (2)

    protected Dashboard dashboard;

    @Override
    public void init(Dashboard dashboard) { (3)
        this.dashboard = dashboard;
    }

    @EventListener
    public void dashboardEventListener(DashboardUpdatedEvent event){ (4)
        ScreenFragment widget = dashboard.getWidget("visits-calendar"); (5)
        if (widget instanceof VisitsCalendarWidget){ (6)
            VisitsCalendarWidget visitsCalendarWidget = (VisitsCalendarWidget) widget;
            visitsCalendarWidget.reloadSchedule();
        }
    }

}
1 辅助 bean 需要是 prototype bean scope。
2 需要实现 DashboardViewAssistant 接口。
3 重写 init 方法,保存仪表盘将来使用。
4 订阅 DashboardUpdatedEvent - 由仪表盘扩展组件在每次需要刷新仪表盘时发送。
5 以指定 id 获取小部件。
6 检查部件类型为 VisitsCalendarWidget,并调用 reloadSchedule() 方法。

下面是 VisitsCalendarWidgetreloadSchedule() 方法的实现,用来加载 visits:

@Autowired
private DataLoader visitsDl;

public void reloadSchedule(){
    visitsDl.load();
}

然后,在配置仪表盘时,可以在 仪表盘编辑界面 设置辅助 bean。