textshape.java

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

JAVA
67
字号
package net.sf.freenote.model;

import net.sf.freenote.FreeNoteConstants;
import net.sf.freenote.directedit.DirectEditable;

import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.TextPropertyDescriptor;

public class TextShape extends Shape implements DirectEditable{
	private static final Image TEXT_ICON = createImage("icons/text.gif");
	
	private String desc;
	
	public TextShape() {
		super();
		setBackColor(new RGB(255,255,224));
		setSize(new Dimension(180,50));
	}

	@Override
	public Image getIcon() {
		return TEXT_ICON;
	}

	@Override
	public String toString() {
		return "Text " + hashCode();
	}

	@Override
	public IPropertyDescriptor[] getPropertyDescriptors() {
		IPropertyDescriptor[] propertyDescriptors = super.getPropertyDescriptors();
		IPropertyDescriptor[] ret=new IPropertyDescriptor[propertyDescriptors.length+1];
		System.arraycopy(propertyDescriptors, 0, ret, 1, propertyDescriptors.length);
		ret[0]=new TextPropertyDescriptor(FreeNoteConstants.DESC_PROPERTY, FreeNoteConstants.DESC_PROPERTY);
		return ret;
	}

	@Override
	public Object getPropertyValue(Object propertyId) {
		if(FreeNoteConstants.DESC_PROPERTY.equals(propertyId))
			return getDesc();
		return super.getPropertyValue(propertyId);
	}

	@Override
	public void setPropertyValue(Object propertyId, Object value) {
		if(FreeNoteConstants.DESC_PROPERTY.equals(propertyId))
			setDesc(String.valueOf(value));
		else
			super.setPropertyValue(propertyId, value);
	}

	public String getDesc() {
		return desc==null?desc="":desc;
	}

	public void setDesc(String textNote) {
		this.desc = textNote;
		firePropertyChange(FreeNoteConstants.DESC_PROPERTY, null, textNote);
	}
	
}

⌨️ 快捷键说明

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