usecasefigure.java
来自「mywork是rcp开发的很好的例子」· Java 代码 · 共 73 行
JAVA
73 行
package net.sf.freenote.uml.figure;
import java.util.HashMap;
import java.util.Map;
import net.sf.freenote.ShapesPlugin;
import net.sf.freenote.directedit.DirectEditable;
import net.sf.util.StringUtil;
import org.eclipse.draw2d.BorderLayout;
import org.eclipse.draw2d.Ellipse;
import org.eclipse.draw2d.Label;
import org.eclipse.swt.graphics.Image;
/**
* 显示用例
* @author levin
* @since 2008-1-29 下午02:57:59
*/
public class UseCaseFigure extends Ellipse implements DirectEditable {
private static Map<String,Image> levelImages=new HashMap<String,Image>();
private Label descLabel;
private String desc;
static{
for(String level:new String[]{"cloud","kite","wave","shellfish","fish"})
levelImages.put(level, ShapesPlugin.getImageDescriptor("icons/uc_level_"+level+".gif").createImage());
}
public UseCaseFigure() {
super();
setLayoutManager(new BorderLayout());
descLabel=new Label();
add(descLabel,BorderLayout.CENTER);
}
public void setDesc(String name) {
this.desc=name;
descLabel.setText(StringUtil.rtrim(name,"+!-"));
descLabel.setIcon(levelImages.get(getUcLevel()));
}
@Override
public String getDesc() {
return desc;
}
public Label getDescLabel() {
return descLabel;
}
//判断用例的级别 cloud/kite/wave/shellfish/fish
public String getUcLevel(){
String level="null";
if(getDesc() !=null && getDesc().length() > 2){
char c1=getDesc().charAt(getDesc().length()-2);
char c2=getDesc().charAt(getDesc().length()-1);
switch(c2){
case '+':
level="kite";
if(c1 == '+') level="cloud";
break;
case '-':
level="shellfish";
if(c1 == '-') level="fish";
break;
case '!':
level="wave";
default:
}
}
return level;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?