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);