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