Module java.desktop
Package javax.imageio

Interface IIOParamController


public interface IIOParamController
要由可以确定IIOParam对象设置的对象实现的接口,可以通过向用户提供GUI来获取值,或者通过其他方式。该接口仅指定一个通用的activate方法,调用控制器,不考虑控制器如何获取值(即,控制器是通过GUI还是仅计算一组值对于此接口是无关紧要的)。

activate方法中,控制器通过查询IIOParam对象的get方法获取初始值,通过任何方式修改值,然后调用IIOParam对象的set方法修改相应的设置。通常,这些set方法将在最终提交时一次性调用,以便取消操作不会干扰现有值。一般来说,应用程序可以期望当activate方法返回true时,IIOParam对象已准备好用于读取或写入操作。

供应商可以选择为特定插件定义的IIOParam子类提供GUI。这些可以设置为相应IIOParam子类中的默认控制器。

应用程序可以覆盖任何默认GUI,并在其自己的框架中提供自己的控制器。唯一需要的是activate方法行为模态(直到取消或提交才返回),尽管它不必显示模态对话框。这样的非模态GUI组件大致编码如下:

 class MyGUI extends SomeComponent implements IIOParamController {

    public MyGUI() {
        // ...
        setEnabled(false);
    }

    public boolean activate(IIOParam param) {
        // disable other components if desired
        setEnabled(true);
        // go to sleep until either cancelled or committed
        boolean ret = false;
        if (!cancelled) {
            // set values on param
            ret = true;
        }
        setEnabled(false);
        // enable any components disabled above
        return ret;
    }
 

或者,可以使用算法过程,如数据库查找或命令行解析作为控制器,此时activate方法将简单查找或计算设置,调用IIOParam.setXXX方法,并返回true

参见:
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    activate(IIOParam param)
    激活控制器。
  • Method Details

    • activate

      boolean activate(IIOParam param)
      激活控制器。如果返回true,则IIOParam对象中的所有设置应准备好用于读取或写入操作。如果返回false,则IIOParam对象中的任何设置都不会被更改(即,用户取消了操作)。
      参数:
      param - 要修改的IIOParam对象。
      返回:
      如果IIOParam已被修改,则返回true,否则返回false
      抛出:
      IllegalArgumentException - 如果paramnull或不是正确类的实例。