⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 validatoreditor.java

📁 一个很好实用的工作流OSWORKFLOW开发例子.有着非常优秀的灵活性.
💻 JAVA
字号:
package com.opensymphony.workflow.designer.editor;

import java.util.HashMap;
import java.util.Map;
import java.awt.*;

import com.opensymphony.workflow.designer.ResourceManager;
import com.opensymphony.workflow.designer.dialogs.DialogUtils;
import com.opensymphony.workflow.designer.WorkflowGraphModel;
import com.opensymphony.workflow.designer.WorkflowDesigner;
import com.opensymphony.workflow.designer.spi.DefaultValidatorPlugin;
import com.opensymphony.workflow.designer.spi.ValidatorPlugin;
import com.opensymphony.workflow.loader.AbstractDescriptor;
import com.opensymphony.workflow.loader.ConfigValidatorDescriptor;
import com.opensymphony.workflow.loader.ValidatorDescriptor;
import com.opensymphony.workflow.loader.DescriptorFactory;

/**
 * @author Andrea Capitani (a.capitani@leonardomultimedia.it)
 *         Date: Nov 22, 2004
 *         Time: 10:25:07 AM
 */
public class ValidatorEditor
{
  protected AbstractDescriptor descriptor;
  protected WorkflowGraphModel model;

  public ValidatorEditor(AbstractDescriptor descriptor)
  {
    this.descriptor = descriptor;
  }

  public WorkflowGraphModel getModel()
  {
    return model;
	}
	
	public AbstractDescriptor getDescriptor()
	{
		return descriptor;
	}

  public void setModel(WorkflowGraphModel model)
  {
    this.model = model;
  }

  public ValidatorDescriptor add()
  {
    ConfigValidatorDescriptor validator = getValidator();
    if (validator == null)
    {
      return null;
    }

    validator = editValidator(validator, WorkflowDesigner.INSTANCE);

    if (validator != null)
    {
      ValidatorDescriptor val = DescriptorFactory.getFactory().createValidatorDescriptor();
      val.setParent(getParent());
      val.setType(validator.getType());
      val.getArgs().putAll(validator.getArgs());
      return val;
    }
    else
    {
      return null;
    }
  }

  public void modify(ValidatorDescriptor val)
  {
    ConfigValidatorDescriptor validator;
		
		// TODO [kap] verificare qui perch� manca il nome del validator
		// vedere anche come � fatto il metodo modify di RegisterEditor e/o FunctionEditor  
		
		validator = new ConfigValidatorDescriptor(getModel().getPalette());
		validator.setType(val.getType());
    
    validator.getArgs().putAll(val.getArgs());

    validator = editValidator(validator, WorkflowDesigner.INSTANCE);

    if (validator != null)
    {
      val.getArgs().putAll(validator.getArgs());
    }
  }

  private ConfigValidatorDescriptor editValidator(ConfigValidatorDescriptor config, Component parent)
  {
    // get plugin
    String clazz = config.getPlugin();
    if (clazz == null || clazz.length() == 0)
    {
      clazz = "com.opensymphony.workflow.designer.spi.DefaultValidatorPlugin";
    }
    ValidatorPlugin valImpl;
    try
    {
      valImpl = (ValidatorPlugin)Class.forName(clazz).newInstance();
    }
    catch(Exception e1)
    {
      e1.printStackTrace();
      valImpl = new DefaultValidatorPlugin();
    }

    valImpl.setValidator(config);

    // put the parameter
    Map args = new HashMap();
    args.put("cell", descriptor);

    if (!valImpl.editValidator(args, parent))
    {
      // cancel
      return null;
    }
    config = valImpl.getValidator();
    return config;
  }

  protected AbstractDescriptor getParent()
  {
  	return descriptor;
  }

	protected ConfigValidatorDescriptor getValidator()
	{
		ConfigValidatorDescriptor template = (ConfigValidatorDescriptor)DialogUtils.getUserSelection(getModel().getPalette().getValidators(),
			ResourceManager.getString("validator.select"),
			ResourceManager.getString("validator.select"), 
			WorkflowDesigner.INSTANCE);
		if (template!=null)
			return new ConfigValidatorDescriptor(template);
		return null;
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -