📄 extenderreader.java
字号:
getAttribute(element,EXT_ATTR_DESC,list);
if(EXT_PALETTE_ELEMENT_NAME.equals(extendName)){
getAttribute(element,EXT_ATTR_GROUP,list);
}
if(smallIcon!=null)
list.add(smallIcon.createImage());
paletteList.add(list);
} catch (Exception e) {
e.printStackTrace();
paletteList.add(list);
}
}
private void setNodeType(String type,NodeElement nodeElement){
if (type != null && type.length() > 0) {
if(type.equals(ExtenderReader.PARENT))
nodeElement.setNodeType(TNodeType.PARENT_LITERAL);
else if(type.equals(ExtenderReader.CHILD))
nodeElement.setNodeType(TNodeType.CHILD_LITERAL);
else if(type.equals(ExtenderReader.TABLE))
nodeElement.setNodeType(TNodeType.TABLE_LITERAL);
else if(type.equals(ExtenderReader.ATTRICOLUMN))
nodeElement.setNodeType(TNodeType.ATTRICOLUMN_LITERAL);
else if(type.equals(ExtenderReader.OPERATIONCOLUMN))
nodeElement.setNodeType(TNodeType.OPERATIONCOLUMN_LITERAL);
else if(type.equals(ExtenderReader.OTHERS))
nodeElement.setNodeType(TNodeType.OTHERS_LITERAL);
}
}
private void setLineType(String type,Connection conn){
if (type != null && type.length() > 0) {
if(type.equals(ExtenderReader.REFERENCE))
conn.setLineType(TLineType.REFERENCE_LITERAL);
else if(type.equals(ExtenderReader.INHERITANCE))
conn.setLineType(TLineType.INHERITANCE_LITERAL);
else if(type.equals(ExtenderReader.NOTE))
conn.setLineType(TLineType.NOTE_LITERAL);
else if(type.equals(ExtenderReader.OTHERS))
conn.setLineType(TLineType.OTHERS_LITERAL);
}
}
private String getAttribute(IConfigurationElement element,String attriId){
String extStr = element.getAttribute(attriId);
if (extStr == null || extStr.length() <= 0) {
return "";
}
return extStr;
}
private void getAttribute(IConfigurationElement element,String attriId,List list){
String extStr = element.getAttribute(attriId);
if (extStr == null || extStr.length() <= 0) {
list.add("");
return;
}
list.add(extStr);
}
private String getPaletteKey(String obj1,String obj2) {
if ( obj1 == null) return null;
if ( obj2 == null) return null;
return obj1 + obj2;
}
private String getKey(String pluginId) {
if ( pluginId == null) return null;
return pluginId;
}
/**
* 根据相应gef编辑器的pluginid返回ModelCreationFactory
* @param pluginId
* @return
*/
public ModelCreationFactory getModelCreateFactory(String pluginId) {
if (pluginId != null) {
String key = getKey(pluginId);
Object modelCreateObj = modelCreateFactoryMap.get(key);
if (modelCreateObj instanceof ModelCreationFactory) {
return (ModelCreationFactory)modelCreateObj;
}
}
return null;
}
/**
* 返回创建指定扩展名的node的editpartFactory
*
* @param pluginId gef编辑器的pluginid
* @return 返回node的editpart
*/
public DiagramEditPartFactory getEditPartFactory(String pluginId) {
if (pluginId != null) {
String key = getKey(pluginId);
Object editPartObj = editPartFactoryMap.get(key);
if (editPartObj instanceof DiagramEditPartFactory) {
return (DiagramEditPartFactory)editPartObj;
}
}
return null;
}
/**
* 调用gef编辑器模型创建factory的createNodeEditPart函数
* @param editor
* @param element
* @return
*/
public NodeEditPart createNodeEditPart(AbstractGraphicalEditor editor,Element element) {
ExtenderReader extender = ExtenderReader.getInstance();
DiagramEditPartFactory factory = extender.getEditPartFactory(editor.getPluginId());
if (factory != null) {
return factory.createNodeEditPart(editor,element);
}
return null;
}
/**
* 创建ModelCreationFactory
* @param target 目标对象
* @param pluginId
* @return
*/
// public CreationFactory createPaletteCreationFactory(Object target ,String pluginId){
// ExtenderReader extender = ExtenderReader.getInstance();
// try{
// ModelCreationFactory factory = (ModelCreationFactory)extender.configElement.createExecutableExtension(EXT_ATTR_CLASS);
// if (factory != null) {
// factory.setTarget(target);
// factory.setPluginId(pluginId);
// return factory;
// }
// }
// catch(Exception e){
// e.printStackTrace();
// }
// return null;
// }
/**
* 克隆CreationFactory
* @param pluginId
* @param target
* @return
*/
public CreationFactory cloneModelCreationFactory(String pluginId,Object target){
try{
ModelCreationFactory factory = (ModelCreationFactory)createModelCreationFactory(pluginId,target);
return (CreationFactory)factory.clone();
}
catch(CloneNotSupportedException e){
e.printStackTrace();
return null;
}
}
/**
* 返回ModelCreationFactory
* @param pluginId
* @param target
* @return
*/
public CreationFactory createModelCreationFactory(String pluginId,Object target){
ExtenderReader extender = ExtenderReader.getInstance();
ModelCreationFactory factory = extender.getModelCreateFactory(pluginId);
if (factory != null) {
factory.setTarget(target);
factory.setPluginId(pluginId);
return factory;
}
return null;
}
/**
* 返回对应编辑器的palette的节点列表
* @param pluginId
* @return
*/
public List getPaletteEntryList(String pluginId){
ExtenderReader extender = ExtenderReader.getInstance();
List entryList = new ArrayList();
for (Iterator iter = extender.paletteEntryList.iterator(); iter.hasNext();) {
List element = (List) iter.next();
String key = extender.getPaletteKey((String)element.get(0),(String)element.get(1));
if(key.startsWith(pluginId)){
entryList.add( element);
}
}
return entryList;
}
/**
* 返回对应编辑器的palette的连线列表
* @param pluginId
* @return
*/
public List getPaletteLineList(String pluginId){
ExtenderReader extender = ExtenderReader.getInstance();
List entryList = new ArrayList();
for (Iterator iter = extender.paletteLineList.iterator(); iter.hasNext();) {
List element = (List) iter.next();
String key = extender.getPaletteKey((String)element.get(0),(String)element.get(1));
if(key.startsWith(pluginId)){
entryList.add( element);
}
}
return entryList;
}
/**
* 返回编辑器图元属性xml的路径
* @param pluginId
* @return
*/
public String getFilePath(String pluginId){
ExtenderReader extender = ExtenderReader.getInstance();
String path = (String)extender.modelPropertyMap.get(pluginId);
return path;
}
/**
* 返回属性节点
* @param pluginId
* @return
*/
public NodeElement getAtriNode(String pluginId){
if(nodeAttriMap.containsKey(pluginId))
return (NodeElement)nodeAttriMap.get(pluginId);
else{
getAttriAndOperNode(pluginId);
if(nodeAttriMap.containsKey(pluginId))
return (NodeElement)nodeAttriMap.get(pluginId);
else
return null;
}
}
/**
* 返回操作节点
* @param pluginId
* @return
*/
public NodeElement getOperNode(String pluginId){
if(nodeOperMap.containsKey(pluginId))
return (NodeElement)nodeOperMap.get(pluginId);
else{
getAttriAndOperNode(pluginId);
if(nodeOperMap.containsKey(pluginId))
return (NodeElement)nodeOperMap.get(pluginId);
else
return null;
}
}
public List<String> getLinkIdList(String pluginId){
ExtenderReader extender = ExtenderReader.getInstance();
if(extender.linkIdMap.get(pluginId)==null){
List<String> list = new ArrayList<String>();
extender.linkIdMap.put(pluginId, list);
return list;
}
else{
return (List<String>)extender.linkIdMap.get(pluginId);
}
}
private void getAttriAndOperNode(String pluginId){
List nodeList = ExtenderReader.getInstance().getPaletteEntryList(pluginId);
for (Iterator iter = nodeList.iterator(); iter.hasNext();) {
List list = (List) iter.next();
String name = (String)list.get(1);
NodeElement element = (NodeElement)list.get(2);
if(element.getNodeType()==TNodeType.ATTRICOLUMN_LITERAL){
setNodeInfo(element,name);
nodeAttriMap.put(pluginId, element);
}
else if(element.getNodeType()==TNodeType.OPERATIONCOLUMN_LITERAL){
setNodeInfo(element,name);
nodeOperMap.put(pluginId, element);
}
}
}
private void setNodeInfo(Object node,String name){
if(node instanceof Element){
((Element)node).setName(name);
((Element)node).setId(name);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -