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

📄 propertyelement.java

📁 对eclipse gef进行封装,可以生成图形化编辑器
💻 JAVA
字号:
/*******************************************************************************
 * $Header: /cvsroot/EOS6/work_dir/niegy/com.primeton.studio.gef.ui/src/com/primeton/studio/gef/ui/properties/PropertyElement.java,v 1.3 2006/12/16 09:04:42 niegy Exp $
 * $Revision: 1.3 $
 * $Date: 2006/12/16 09:04:42 $
 *
 *==============================================================================
 *
 * Copyright (c) 2001-2006 Primeton Technologies, Ltd.
 * All rights reserved. 
 * 
 * Created on 2006-10-30
 *******************************************************************************/


package com.primeton.studio.gef.ui.properties;

import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.List;

import com.primeton.studio.gef.core.Connection;
import com.primeton.studio.gef.core.Diagram;
import com.primeton.studio.gef.ui.parts.ExtenderReader;

/**
 * TODO此处填写 class 信息
 *
 * @author niegy (mailto:niegy@primeton.com)
 */
/*
 * 修改历史
 * $Log: PropertyElement.java,v $
 * Revision 1.3  2006/12/16 09:04:42  niegy
 * 重构代码
 *
 * Revision 1.2  2006/12/05 05:18:59  niegy
 * 修改模型,增加连线的扩展点
 *
 * Revision 1.1  2006/11/22 07:07:38  niegy
 * 增加table
 *
 * Revision 1.1  2006/11/17 03:33:20  niegy
 * create
 * 
 */
public class PropertyElement { 
    private com.primeton.studio.gef.core.Element element;    
    private String pluginId;
    
    public PropertyElement(com.primeton.studio.gef.core.Element element,String pluginId) {
        this.element = element;
        this.pluginId = pluginId;
    }   
    
    private String invokeMothod(Class className,String id) throws Exception{
    	Method[] methods = className.getMethods();
        for (int i = 0; i < methods.length; i++) {
            Method method = methods[i];
            if(("get"+id).equalsIgnoreCase(method.getName())
            		|| ("is"+id).equalsIgnoreCase(method.getName())){
           	 	Object value = method.invoke(element, null);
           	 	if(value == null)
           	 		return "";
           	 	else if(value instanceof String)
           	 		return (String)value;
           	 	else
           	 		return value.toString();
            } 
        }   
        return "";
    }
    
    private void invokeMothod(Class className,String id, String value) throws Exception{
    	  Method[] methods = className.getMethods();
          for (int i = 0; i < methods.length; i++) {
              Method method = methods[i];
              if(("set"+id).equalsIgnoreCase(method.getName())){
            	  String type = method.getParameterTypes()[0].getName();
            	  if(type.equals("int"))
            		  method.invoke(element,Integer.parseInt(value));// new int[]{Integer.parseInt(value)});
            	  else  if(type.equals("boolean"))
            		  method.invoke(element, Boolean.parseBoolean(value));//new boolean[]{Boolean.parseBoolean(value)});
            	  else
            		  method.invoke(element, new Object[]{value});
                  return;
              } 
          }    
    }
    
    public void setAttribute(String id, String value) {  
    	try{
	    	if(element instanceof Diagram){
	    		Diagram diagram = ExtenderReader.getInstance().getEditPartFactory(pluginId).getDiagram();
	    		invokeMothod(diagram.getClass(),id,value);
	    		return;
	    	}
	    	List list = ExtenderReader.getInstance().getPaletteEntryList(pluginId);
	    	if(element instanceof Connection)
	    		list = ExtenderReader.getInstance().getPaletteLineList(pluginId);
			for (Iterator iter = list.iterator(); iter.hasNext();) {        	
					List entry = (List) iter.next();
					String name = (String)entry.get(1);
					Object targetObj = entry.get(2);
					if(element.getClass().equals(targetObj.getClass()))
						invokeMothod(element.getClass(),id,value);
	        }	        	
		} 
		catch(Exception e){
    		e.printStackTrace();
    	}
    }
        
    public String getAttribute(String id) {
    	try{
    		if(element instanceof Diagram){
	    		Diagram diagram = ExtenderReader.getInstance().getEditPartFactory(pluginId).getDiagram();
	    		String value = invokeMothod(diagram.getClass(),id);
	    		return value;
	    	}
    		
	    	List list = ExtenderReader.getInstance().getPaletteEntryList(pluginId);
	    	if(element instanceof Connection)
	    		list = ExtenderReader.getInstance().getPaletteLineList(pluginId);
			for (Iterator iter = list.iterator(); iter.hasNext();) {
	        	
					List entry = (List) iter.next();
					String name = (String)entry.get(1);
					Object targetObj = entry.get(2);
					if(element.getClass().equals(targetObj.getClass())){
						String value = invokeMothod(element.getClass(),id);
						return value;
					}				
						
	        	}	        	
		} 
		catch(Exception e){
    		e.printStackTrace();
    	}
        return "";
    }
    
}

⌨️ 快捷键说明

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