📄 bentcornerfigure.java
字号:
/*******************************************************************************
* $Header: /cvsroot/EOS6/work_dir/niegy/com.primeton.studio.gef.ui/src/com/primeton/studio/gef/ui/figure/BentCornerFigure.java,v 1.1 2006/12/08 07:04:32 niegy Exp $
* $Revision: 1.1 $
* $Date: 2006/12/08 07:04:32 $
*
*==============================================================================
*
* Copyright (c) 2001-2006 Primeton Technologies, Ltd.
* All rights reserved.
*
* Created on 2006-12-5
*******************************************************************************/
package com.primeton.studio.gef.ui.figure;
import org.eclipse.draw2d.ColorConstants;
import org.eclipse.draw2d.Figure;
import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.geometry.PointList;
import org.eclipse.draw2d.geometry.Rectangle;
/**
* 实现卷角的功能
*
* @author niegy (mailto:niegy@primeton.com)
*/
/*
* 修改历史
* $Log: BentCornerFigure.java,v $
* Revision 1.1 2006/12/08 07:04:32 niegy
* 重构代码
*
*/
public class BentCornerFigure extends Figure {
/**
* 默认的卷角大小
*/
protected static int DEFAULT_CORNER_SIZE = 10;
/**
* 卷角大小
*/
private int cornerSize;
/**
* 构造函数,初试化式样
*
*/
public BentCornerFigure() {
setBackgroundColor(ColorConstants.orange);
setForegroundColor(ColorConstants.black);
setCornerSize(DEFAULT_CORNER_SIZE);
}
/**
* 返回卷角大小
* @return
*/
public int getCornerSize() {
return cornerSize;
}
/**
* @see org.eclipse.draw2d.Figure#paintFigure(org.eclipse.draw2d.Graphics)
*/
protected void paintFigure(Graphics graphics) {
Rectangle rect = getBounds().getCopy();
graphics.translate(getLocation());
// fill the note
PointList outline = new PointList();
outline.addPoint(0, 0);
outline.addPoint(rect.width - cornerSize, 0);
outline.addPoint(rect.width - 1, cornerSize);
outline.addPoint(rect.width - 1, rect.height - 1);
outline.addPoint(0, rect.height - 1);
graphics.fillPolygon(outline);
// draw the inner outline
PointList innerLine = new PointList();
innerLine.addPoint(rect.width - cornerSize - 1, 0);
innerLine.addPoint(rect.width - cornerSize - 1, cornerSize);
innerLine.addPoint(rect.width - 1, cornerSize);
innerLine.addPoint(rect.width - cornerSize - 1, 0);
innerLine.addPoint(0, 0);
innerLine.addPoint(0, rect.height - 1);
innerLine.addPoint(rect.width - 1, rect.height - 1);
innerLine.addPoint(rect.width - 1, cornerSize);
graphics.drawPolygon(innerLine);
graphics.translate(getLocation().getNegated());
}
/**
* 设置卷角大小
* @param newSize
*/
public void setCornerSize(int newSize) {
cornerSize = newSize;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -