当前位置: 首页 > 知识库问答 >
问题:

来自自定义类的fireEvent

娄利
2023-03-14
public class ProtokollEvent extends Event {

//variable holds all devices in given protokoll
private ObservableList<Device> devicesList;

//variable holds SaveResult
private SaveResult result;

//final ProtokollEvents
public static final EventType<ProtokollEvent> PROTOKOLL_SAVE = new EventType(ANY, "PROTOKOLL_SAVE");
public static final EventType<ProtokollEvent> PROTOKOLL_SAVE_DONE = new EventType(ANY, "PROTOKOLL_SAVE_DONE");
public static final EventType<ProtokollEvent> PROTOKOLL_UPDATED = new EventType(ANY, "PROTOKOLL_UPDATED");
public static final EventType<ProtokollEvent> PROTOKOLL_DELETED = new EventType(ANY, "PROTOKOLL_DELETED");

public ProtokollEvent() {
    this(PROTOKOLL_SAVE);
}

public ProtokollEvent(EventType<? extends Event> arg0) {
    super(arg0);
}

public ProtokollEvent(Object arg0, EventTarget arg1, EventType<? extends Event> arg2) {
    super(arg0, arg1, arg2);
}

/**
 * getDevices will return current {@link Device} as ObservableList
 *
 * @return {@link ObservableList} of type {@link Device}
 */
public ObservableList getDev() {
    return devicesList;
}
/**
 * setDevices will set devicesList
 * @param devices ObservableList {@link Device}
 */
public void setDev(ObservableList devices) {
    this.devicesList = devices;
}
/**
 * get the result which is returned from calling saveProtokoll
 * @return result {@link SaveResult}
 */
public SaveResult getResult() {
    return result;
}
/**
 * set the result which is returned after calling saveMessprotokoll in RestCall
 * @param result {@link SaveResult}
 */
public void setResult(SaveResult result) {
    this.result = result;
}
public class SaveUtils {

private MainWindowController controller;
private ObservableList<RowContainerPruefvorschriftController> rows;
private Protokoll lastSavedProtokoll;
private Protokoll currentSavingProtokoll;

public SaveUtils(MainWindowController control){
    this.controller = control;
}

private void startSaving(){
    currentSavingProtokoll = createProtokoll();
    boolean state = controller.networkOnline.get() ? saveOnline() :saveOffline();
}

public void setRows(ObservableList<RowContainerPruefvorschriftController> rows) {
    this.rows = rows;
    //if rows get set start saveing the data
    startSaving();
}

private boolean saveOffline(){
    return false;
}
private boolean saveOnline() {
    RestCall call = controller.getCall();
    //call saveMessprotokoll and look what SaveResult returns
    SaveResult result = call.saveMessprotokoll(currentSavingProtokoll);
    //create ProtokollEvent to tell all consumers if all was ok
    ProtokollEvent save = new ProtokollEvent(ProtokollEvent.PROTOKOLL_SAVE_DONE);
    save.setResult(result);
    //HOW to fire/dispatch the ProtokollEvent here??????
    //TODO: need to fire this event and listen for it in other classes
    if(result.getResult()>0){
        controller.setLoggerMessage("SavedOnline->Protokoll-Nr.:"+result.getProtokollnr());
    }
    else {
        controller.setLoggerMessage("SavedOnline not successful->Error:"+result.getError_message());
    }        
    return true;
}

共有1个答案

咸利
2023-03-14

找到解决办法了。所有事件都可以通过静态方法激发

Event.fireEvent(EventTarget eventTarget,Event event)

其中eventTarget指定事件将通过的路径(取自java文档)。所以在我的示例中,我添加了以下一行

Event.fireEvent(controller.getMainWindowBorderPane(),save);

做了...

 类似资料:
  • 在Wordpress中,我创建了一个名为“Sports”的自定义帖子类型,其分类法为“sport_locations”。使用高级自定义字段(ACF)插件,我创建了用于显示分类术语的字段。我把一切都准备好了,但是我在输出上传的图像时遇到了问题。 在ACF中,我可以选择图像的返回值为:对象,url或ID。现在我已将其设置为对象。 下面是我到目前为止的代码。我正在single-sports.php中编写

  • Rust 自定义数据类型主要是通过下面这两个关键字来创建: struct: 定义一个结构体 enum: 定义一个枚举类型 而常量的创建可以通过 const 和 static 关键字来创建。

  • 到现在,我们已经知道元类是什么鬼东西了。 那么,从始至终我们还不知道元类到底有啥用。 只是了解了一下元类。 在了解它有啥用的时候,我们先来了解下怎么自定义元类。 因为只有了解了怎么自定义才能更好的理解它的作用。 首先我们来了解下 __metaclass__ 属性 metaclass,直译为元类,简单的解释就是: 当我们定义了类以后,就可以根据这个类创建出实例,所以:先定义类,然后创建实例。 但是如

  • 存在多种方法来重新定义现有类型的行为以及提供新的类型。 重写类型编译 一个常见的需求是强制更改类型的“字符串”版本,即在create table语句或其他SQL函数(如cast)中呈现的版本。例如,应用程序可能希望强制呈现 BINARY 适用于除一个平台外的所有平台 BLOB 待渲染。在本例中,使用现有的泛型类型 LargeBinary ,是大多数用例的首选。但是为了更准确地控制类型,每个方言的编

  • 1. 包含头文件 #import <AdHubSDK/AdHubSDK.h> 2. AdHubCustomView 的创建和初始化 在需要导入广告的ViewController头文件中导入头文件并声明实例以及声明代理 #import <AdHubSDK/AdHubSDK.h> @interface AdHubCustomViewController ()<AdHubCustomViewDele

  • 我使用Wordpress Rest API将内容从WordPres斯网站导入到PHP应用程序中。这并不复杂,只是一个包含帖子列表和个人帖子页面的主页。 我在API响应中添加了一些字段,特别是获取帖子中插入的第一张图片的url的字段。 这是该部分的代码: 当我在主页中列出帖子时,它可以正常工作,但在单个帖子页面中,字段为空。对此,我唯一能给出的解释是,我有一个用于单个帖子的自定义endpoint: