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 + -
显示快捷键?