📄 geftoolsutil.java
字号:
/*******************************************************************************
* $Header: /cvsroot/EOS6/work_dir/niegy/com.primeton.studio.gef.ui/src/com/primeton/studio/gef/ui/GefToolsUtil.java,v 1.3 2006/12/30 02:45:04 niegy Exp $
* $Revision: 1.3 $
* $Date: 2006/12/30 02:45:04 $
*
*==============================================================================
*
* Copyright (c) 2001-2006 Primeton Technologies, Ltd.
* All rights reserved.
*
* Created on 2006-12-19
*******************************************************************************/
package com.primeton.studio.gef.ui;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
import org.eclipse.gef.palette.ConnectionCreationToolEntry;
import org.eclipse.gef.palette.MarqueeToolEntry;
import org.eclipse.gef.palette.PaletteContainer;
import org.eclipse.gef.palette.PaletteDrawer;
import org.eclipse.gef.palette.PaletteGroup;
import org.eclipse.gef.palette.PaletteRoot;
import org.eclipse.gef.palette.PaletteSeparator;
import org.eclipse.gef.palette.PanningSelectionToolEntry;
import org.eclipse.gef.palette.ToolEntry;
import org.eclipse.gef.requests.CreationFactory;
import org.eclipse.jface.resource.ImageDescriptor;
import com.primeton.studio.gef.core.Connection;
import com.primeton.studio.gef.core.CoreFactory;
import com.primeton.studio.gef.core.Diagram;
import com.primeton.studio.gef.core.NodeElement;
import com.primeton.studio.gef.core.Note;
import com.primeton.studio.gef.core.TNodeType;
import com.primeton.studio.gef.ui.parts.ExtenderReader;
/**
* get工具类
*
* @author niegy (mailto:niegy@primeton.com)
*/
/*
* 修改历史
* $Log: GefToolsUtil.java,v $
* Revision 1.3 2006/12/30 02:45:04 niegy
* 重构代码
*
* Revision 1.2 2006/12/29 08:13:41 niegy
* ?修改拖图元到编辑器中出现异常的bug
*
* Revision 1.1 2006/12/20 02:57:07 niegy
* 重构代码
*
*/
public class GefToolsUtil {
public static PaletteContainer createToolPaletteContainer(PaletteRoot palette,String pluginid) {
PaletteGroup toolGroup = new PaletteGroup("tools"); //$NON-NLS-1$
// Add a selection tool to the group
ToolEntry tool = new PanningSelectionToolEntry();
toolGroup.add(tool);
palette.setDefaultEntry(tool);
// Add a marquee tool to the group
toolGroup.add(new MarqueeToolEntry());
// Add a (unnamed) separator to the group
toolGroup.add(new PaletteSeparator());
List list = ExtenderReader.getInstance().getPaletteLineList(pluginid);
for (Iterator iter = list.iterator(); iter.hasNext();) {
try{
List element = (List) iter.next();
String name = (String)element.get(1);
Object targetObj = element.get(2);
ImageDescriptor smallIcon = GefUiPluginImages.GEF_CONNECTION_16;//(ImageDescriptor)element.get(3);
ImageDescriptor largeIcon = GefUiPluginImages.GEF_CONNECTION_32;//(ImageDescriptor)element.get(4);
if(element.get(3) instanceof ImageDescriptor)
smallIcon = (ImageDescriptor)element.get(3);
if(element.get(4) instanceof ImageDescriptor)
largeIcon = (ImageDescriptor)element.get(4);
String desc = (String)element.get(5);
createEntryLine(toolGroup,name,desc,targetObj,smallIcon,largeIcon,pluginid);
}
catch(Exception e){
e.printStackTrace();
}
}
return toolGroup;
}
public static List<PaletteDrawer> createNodesPaletteContainer(String pluginid,boolean isExistNote) {
Map<String, PaletteDrawer> map = new HashMap<String, PaletteDrawer>();
// PaletteDrawer paletteDrawer = new PaletteDrawer("nodes");
// map.put("nodes", paletteDrawer);
List list = ExtenderReader.getInstance().getPaletteEntryList(pluginid);
for (Iterator iter = list.iterator(); iter.hasNext();) {
try{
List element = (List) iter.next();
String name = (String)element.get(1);
Object targetObj = element.get(2);
// String methodName = (String)element.get(3);
// Method method = factory.getClass().getMethod(methodName, null);
// Object targetObj = method.invoke(factory, null);
ImageDescriptor smallIcon = null;
ImageDescriptor largeIcon = null;
if(element.get(3) instanceof ImageDescriptor)
smallIcon = (ImageDescriptor)element.get(3);
if(element.get(4) instanceof ImageDescriptor)
largeIcon = (ImageDescriptor)element.get(4);
String desc = (String)element.get(5);
String group = (String)element.get(6);
PaletteDrawer paletteDrawer = getPaletteDrawer(map,group);
createEntry(paletteDrawer,name,desc,targetObj,smallIcon,largeIcon,pluginid);
}
catch(Exception e){
e.printStackTrace();
}
}
if(isExistNote){
Note note = CoreFactory.eINSTANCE.createNote();
note.setNodeType(TNodeType.NOTE_LITERAL);
PaletteDrawer paletteDrawer = getPaletteDrawer(map,"nodes");
createNoteEntry(paletteDrawer,"note","note",note,GefUiPluginImages.GEF_NOTE_16
,GefUiPluginImages.GEF_NOTE_32,pluginid);
}
List<PaletteDrawer> paletteDrawerList = new ArrayList<PaletteDrawer>();
for (Iterator iter = map.values().iterator(); iter.hasNext();) {
PaletteDrawer element = (PaletteDrawer) iter.next();
paletteDrawerList.add(element);
}
return paletteDrawerList;
}
private static PaletteDrawer getPaletteDrawer(Map<String, PaletteDrawer> map,String key){
if(map.get(key) != null){
return map.get(key);
}
else{
PaletteDrawer paletteDrawer = new PaletteDrawer(key);
map.put(key, paletteDrawer);
return paletteDrawer;
}
}
protected static void createNoteEntry(PaletteDrawer paletteDrawer,String name,String comment,Object target ,ImageDescriptor smallIcon,
ImageDescriptor largeIcon,String pluginid){
createEntry(paletteDrawer,name,comment,target,smallIcon
,largeIcon,pluginid);
}
private static void createEntry(PaletteDrawer paletteDrawer,
String name,String comment,Object target ,ImageDescriptor smallIcon,
ImageDescriptor largeIcon,String pluginid){
CreationFactory factory = ExtenderReader.getInstance().cloneModelCreationFactory(pluginid,target);
CombinedTemplateCreationEntry creationEntry = new CombinedTemplateCreationEntry(
name,
comment,
target,//.getClass(),
factory,
smallIcon, //$NON-NLS-1$
largeIcon); //$NON-NLS-1$
paletteDrawer.add(creationEntry);
}
private static void createEntryLine(PaletteGroup toolGroup,
String name,String comment ,Object target ,ImageDescriptor smallIcon,
ImageDescriptor largeIcon,String pluginid){
CreationFactory factory = ExtenderReader.getInstance().cloneModelCreationFactory(pluginid,target);
ConnectionCreationToolEntry creationEntry = new ConnectionCreationToolEntry(
name,
comment,
factory,
smallIcon, //$NON-NLS-1$
largeIcon); //$NON-NLS-1$
toolGroup.add(creationEntry);
}
public static void iniLinkId(Diagram diagram,String key){
List<String> list = ExtenderReader.getInstance().getLinkIdList(key);
list.clear();
for (Iterator iter = diagram.getNodes().iterator(); iter.hasNext();) {
NodeElement element = (NodeElement) iter.next();
for (Iterator iterator = element.getSourceConnections().iterator(); iterator.hasNext();) {
Connection conn = (Connection) iterator.next();
list.add(conn.getId());
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -