classfigure.java

来自「mywork是rcp开发的很好的例子」· Java 代码 · 共 84 行

JAVA
84
字号
package net.sf.freenote.uml.figure;

import net.sf.freenote.directedit.DirectEditable;

import org.eclipse.draw2d.ColorConstants;
import org.eclipse.draw2d.CompoundBorder;
import org.eclipse.draw2d.Figure;
import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.GridData;
import org.eclipse.draw2d.GridLayout;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.Label;
import org.eclipse.draw2d.LineBorder;
import org.eclipse.draw2d.PositionConstants;
import org.eclipse.draw2d.TitleBarBorder;
import org.eclipse.draw2d.geometry.Insets;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Text;

/**
 * class的展示
 * @author levin
 * @since 2008-2-7 下午09:04:01
 */
public class ClassFigure extends Figure implements DirectEditable{
	private static final long serialVersionUID = 1L;
	private Label descLabel;
	private TitleBarBorder nameLabel;
	
	public ClassFigure() {
		nameLabel = new TitleBarBorder(""){
			@Override
			public void paint(IFigure figure, Graphics g, Insets insets) {
				super.paint(figure, g, insets);
				//补一条分隔线,为heigh不显示,只好height-1了
				g.drawLine(tempRect.x, tempRect.y+tempRect.height-1, tempRect.x+tempRect.width, tempRect.y+tempRect.height-1);
			}
			
		};
		nameLabel.setBackgroundColor(ColorConstants.white);
		nameLabel.setTextAlignment(PositionConstants.CENTER);
		setBorder(new CompoundBorder(new LineBorder(1),nameLabel));
		descLabel=new Label();
		descLabel.setTextAlignment(PositionConstants.LEFT);
		setLayoutManager(new GridLayout());
		add(descLabel,new GridData(PositionConstants.LEFT,PositionConstants.TOP,true,false));
	}

	@Override
	public String getDesc() {
		return nameLabel.getLabel()+Text.DELIMITER+descLabel.getText();
	}

	@Override
	public void setDesc(String desc) {
		if(desc == null ) return ;
		String name=desc,field="";
		int delim=desc.indexOf(Text.DELIMITER);
		if(delim > 0){
			name=desc.substring(0,delim);
			field=desc.substring(delim+Text.DELIMITER.length());
		}
		nameLabel.setLabel(name);
		descLabel.setText(field);
	}

	public Label getDescLabel() {
		return descLabel;
	}

	@Override
	public void setBackgroundColor(Color bg) {
		super.setBackgroundColor(bg);
		nameLabel.setBackgroundColor(bg);
	}

	@Override
	public void setForegroundColor(Color fg) {
		super.setForegroundColor(fg);
		nameLabel.setTextColor(fg);
	}
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?