📄 propertyelement.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 + -