StepDialogInterface 接口

一个方向

弄清楚 label、input、combobox、数据源、checkbox 控件等等的使用方法。
kettle 是采用 java 的 swt 来进行界面开发的

构造函数

下面是构造函数的代码:

public ObfusDialog(Shell parent, Object in, TransMeta tr, String sname)
{
    super(parent, (BaseStepMeta)in, tr, sname);
    meta=(ObfusMeta)in;
}

此构造函数是供 kettle 的内核来实例化插件使用的,这里只介绍in参数,通过这个参数,kettle 的内核将 ObfusMeta 传递了进来。

顾名思义,ObfusMeta是专门用来存放控件元数据的,其他元数据主要包括控件的配置参数。例如,下图中红色圈出的部分,都属于处理数据的元数据。

控件的配置

当插件运行时,主要是在 Obfus 中的processRow方法中处理数据的,ketlte 的内核调用 Obfus 的init方法来传入 ObfusMeta 的。请看

    public boolean init(  StepMetaInterface smi
                                      , StepDataInterface sdi) {
        meta  =(ObfusMeta)smi;
        data   =(ObfusData)sdi;
        super.init(smi, sdi);
        return true;
    }

Obfus 的processRow方法中,kettle 的内核会将 data、meta 都传进来的,这样一来就可以得到控件的配置信息了。

元数据的组织方式

控件中的元数据是保存在 Meta 中的 private、public 的变量中的。在 Dialog 中,当用户编辑好控件的配置后,点击确定,可以在相应点击事件的方法中将配置信息保存到 Meta 中。

你可能感兴趣的:(StepDialogInterface 接口)