elementproxy.java
来自「mywork是rcp开发的很好的例子」· Java 代码 · 共 64 行
JAVA
64 行
package net.sf.component.simplenote;
import java.io.File;
import org.eclipse.swt.custom.PaintObjectEvent;
import org.eclipse.swt.widgets.Composite;
/**
* 抽取了一个image和file的父类
* @author levin
* 2007.03.15
*/
public abstract class ElementProxy {
public String src;
public int width;
public int height;
public ElementProxy() {
}
public ElementProxy(String html) {
}
//取html表示
public abstract String getHtml();
//取metrics:ascent,descent,width
public abstract int[] getMetrics();
//保存
public abstract void save(String basePath);
//绘制
public abstract void draw(String basePath,PaintObjectEvent event,Composite parent);
//清场
public abstract void dispose();
//取占位符
public abstract String getPlaceholder();
public String toString(){
return getHtml();
}
//取文件名,不重复
protected synchronized File createEmbedFile(String basePath,String fileSuffix) {
long currentTime = System.currentTimeMillis();
File parent=new File(basePath,"embed");
if(! parent.exists() || ! parent.isDirectory())
parent.mkdir();
File file = null;
do {
file = new File(parent, Long.toHexString(currentTime) + fileSuffix);
currentTime++;
} while (file.exists());
return file;
}
//一个工厂方法
public static ElementProxy getInstance(String html){
if(html.startsWith("<img"))
return new ImageProxy(html);
else
return new FileProxy(html);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?