1、从TextEditor继承,调用setSourceViewerConfiguration,并传进去一个从SourceViewerConfiguration 继承的配置类,就可以实现各种代码editor。
2、swt尽量使用GridLayout布局(不是java.awt中的GridLayout,而是swt中的)和GridData域。文章:http://coolbear.yculblog.com/post.89429.html
3、得到文件的编辑器的方法:
public static IEditorPart findEditor(IFile file){
IEditorReference[] editors = getActivePage().getEditorReferences();;
for (int i = 0; i < editors.length; i++) {
IEditorPart part = (IEditorPart)editors[i].getPart(false);
if (part != null ){
IEditorInput input = part.getEditorInput();
if(input instanceof FileEditorInput && ((FileEditorInput)input).getFile().equals(file))
return part;
}
}
return null;
}
4、得到工作区中所有工程的方法:
IProject[] projects = ResourcesPlugin.getWorkspace().getRoot()
.getProjects();
这在开发自己的工程向导的时候很有用处。
5、工程特有文件判断方法
project.getFile("cownew.prj").exists();
project.getDescription().hasNature();
给工程增加Nature的方法:
IProjectDescription desc = project.getDescription();
String[] oldNatureIds = desc.getNatureIds();
String[] newNatureIds = new String[oldNatureIds.length +1];
System.arraycopy(oldNatureIds, 0, newNatureIds, 0, oldNatureIds.length);
newNatureIds[oldNatureIds.length] = "CowNewNature";
desc.setNatureIds(newNatureIds);
project.setDescription(desc, monitor);
6、创建文件夹的方法:
IFolder folder = project.getFolder("myfold");
if (folder!=null && !folder.exists())
folder.create(false, true, null);
7、弹出包选择对话框的方法:
ElementListSelectionDialog dialog = new ElementListSelectionDialog(
getShell(), new LabelProvider());
dialog.setIgnoreCase(false);
dialog.setElements(getAllPackages().toArray());
String path = currentPackage();
dialog.setInitialSelections(new Object[] { path });
dialog.open();
fPKName.setText((String) dialog.getFirstResult());
public List getAllPackages() {
List list = new ArrayList();
IResource res = getFirstSelection();
IProject project = res.getProject();
File file = project.getFolder("src").getLocation().toFile();
File[] fs = file.listFiles();
for (int i = 0; i < fs.length; i++) {
if (fs[i].isDirectory())
iterator("", fs[i], list);
}
Collections.sort(list);
return list;
}
8 objectClass="org.eclipse.core.resources.IFile"代表菜单应用到文件
9 透视图的的实现很简单,就是在构造函数里边打开一些视图,使一些action(这样菜单和按钮也就都可用)可以用,比如:
String editorArea = layout.getEditorArea();
IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT,
0.30f, editorArea);
left.addView(PACKAGE_VIEW_ID);
layout.setEditorAreaVisible(true);
layout.addShowViewShortcut(IDESystem.BUSINESSVIEW_ID);