⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uibuilder.java

📁 基于eclipse的工具开发代码
💻 JAVA
字号:
package com.cownew.uidesigner.builder;import java.util.Map;import org.eclipse.core.resources.IFile;import org.eclipse.core.resources.IProject;import org.eclipse.core.resources.IResource;import org.eclipse.core.resources.IResourceDelta;import org.eclipse.core.resources.IResourceDeltaVisitor;import org.eclipse.core.resources.IResourceVisitor;import org.eclipse.core.resources.IncrementalProjectBuilder;import org.eclipse.core.runtime.CoreException;import org.eclipse.core.runtime.IProgressMonitor;public class UIBuilder extends IncrementalProjectBuilder{	// BuilderId比较奇怪,它是由“插件id”+“.”+“构建器id”组成的	public static final String BUILDER_ID = "com.cownew.uidesigner.UIBuilder";	protected IProject[] build(int kind, Map args, IProgressMonitor monitor)			throws CoreException	{		if (kind == FULL_BUILD)		{			fullBuild(monitor);		} else		{			IResourceDelta delta = getDelta(getProject());			if (delta == null)			{				fullBuild(monitor);			} else			{				incrementalBuild(delta, monitor);			}		}		return null;	}	private void fullBuild(final IProgressMonitor monitor) throws CoreException	{		getProject().accept(new UIFullBuildVisitor(monitor));	}	private void incrementalBuild(IResourceDelta delta, IProgressMonitor monitor)			throws CoreException	{		delta.accept(new UIDeltaVisitor(monitor));	}}class UIDeltaVisitor implements IResourceDeltaVisitor{	private IProgressMonitor monitor;	public UIDeltaVisitor(IProgressMonitor monitor)	{		this.monitor = monitor;	}	public boolean visit(IResourceDelta delta) throws CoreException	{		IResource resource = delta.getResource();		if (!(resource instanceof IFile))		{			// 返回值表示是否继续遍历			return true;		}		String ext = resource.getFileExtension();		if (!ext.equalsIgnoreCase("ui"))		{			return true;		}		IFile file = (IFile) resource;		switch (delta.getKind())		{		// 增加了一个AUI文件		case IResourceDelta.ADDED:			BuilderUtils.buildUI(file, monitor);			break;		// AUI文件被删除		case IResourceDelta.REMOVED:			BuilderUtils.deleteJava(file, monitor);			break;		// AUI文件被编辑		case IResourceDelta.CHANGED:			BuilderUtils.buildUI(file, monitor);			break;		}		return true;	}}class UIFullBuildVisitor implements IResourceVisitor{	private IProgressMonitor monitor;	public UIFullBuildVisitor(IProgressMonitor monitor)	{		this.monitor = monitor;	}	public boolean visit(IResource resource)	{		if (!(resource instanceof IFile))		{			return true;		}		String ext = resource.getFileExtension();		if (!ext.equalsIgnoreCase("ui"))		{			return true;		}		BuilderUtils.buildUI((IFile) resource, monitor);		return true;	}}

⌨️ 快捷键说明

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