java folder_Java FolderSelectionDialog 选择workspace目录

private void selectFromWorkspace(Shell shell) {

FolderSelectionDialog dialog = new FolderSelectionDialog(shell, new WorkbenchLabelProvider(),

new WorkbenchContentProvider());

IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();

dialog.setInput(workspaceRoot);

dialog.setTitle("Select path");

dialog.setMessage("Select a folder or archive of from your workspace");

ViewerFilter filter = new ArchiveFileFilter((List) null, false, false);

dialog.addFilter(filter); // new TypedViewerFilter(new Class[] { IProject.class, IFolder.class, IFile.class }));

String entryText = _entryText.getText();

if (!entryText.trim().isEmpty()) {

try {

// Try to find the resource in order to pre-select it in the dialog

IStringVariableManager stringVariableManager = VariablesPlugin.getDefault().getStringVariableManager();

String resolved = stringVariableManager.performStringSubstitution(entryText.trim());

Path resolvedPath = new Path(resolved);

IPath relativePath = resolvedPath.makeRelativeTo(workspaceRoot.getLocation());

IResource resource = workspaceRoot.findMember(relativePath);

System.out.println("resource: " + resource);

dialog.setInitialSelection(resource);

} catch (CoreException ex) {

ex.printStackTrace();

}

}

if (dialog.open() == Window.OK) {

IResource resource = (IResource) dialog.getFirstResult();

// resource.getLocation();

String entry = FileBasedContentEditorUtils.getProjectRelativePath(resource);

// format("{workspace_loc:%s}", resource.getLocation());

_entryText.setText(entry);

}}

private IContainer chooseContainer(IPath outputPath) {

Class>[] acceptedClasses= new Class[] { IProject.class, IFolder.class };

ISelectionStatusValidator validator= new TypedElementSelectionValidator(acceptedClasses, false);

IProject[] allProjects= fWorkspaceRoot.getProjects();

ArrayList rejectedElements= new ArrayList(allProjects.length);

IProject currProject= fCurrJProject.getProject();

for (int i= 0; i 

if (!allProjects[i].equals(currProject)) {

rejectedElements.add(allProjects[i]);

}

}

ViewerFilter filter= new TypedViewerFilter(acceptedClasses, rejectedElements.toArray());

ILabelProvider lp= new WorkbenchLabelProvider();

ITreeContentProvider cp= new WorkbenchContentProvider();

IResource initSelection= null;

if (outputPath != null) {

initSelection= fWorkspaceRoot.findMember(outputPath);

}

FolderSelectionDialog dialog= new FolderSelectionDialog(getShell(), lp, cp);

dialog.setTitle(NewWizardMessages.BuildPathsBlock_ChooseOutputFolderDialog_title);

dialog.setValidator(validator);

dialog.setMessage(NewWizardMessages.BuildPathsBlock_ChooseOutputFolderDialog_description);

dialog.addFilter(filter);

dialog.setInput(fWorkspaceRoot);

dialog.setInitialSelection(initSelection);

dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));

if (dialog.open() == Window.OK) {

return (IContainer)dialog.getFirstResult();

}

return null;}

private String handleBuildWorkbenchDirectorySelection( final Shell parent ) {

ILabelProvider lp = new WorkbenchLabelProvider();

ITreeContentProvider cp = new WorkbenchContentProvider();

Class>[] acceptedClasses = new Class[] { IProject.class, IFolder.class };

ViewerFilter filter = new TypedViewerFilter( acceptedClasses );

FolderSelectionDialog dialog = new FolderSelectionDialog( parent, lp, cp );

dialog.setTitle( "Output directory" );

dialog.setMessage( "Select output directory" );

dialog.addFilter( filter );

dialog.setInput( ResourcesPlugin.getWorkspace().getRoot() );

if ( dialog.open() == Window.OK ) {

IContainer c = (IContainer) dialog.getFirstResult();

return "${workspace}/" + c.getProject().getName() + "/" + c.getProjectRelativePath().toString();

}

return null;}

private void selectFolder() {

try {

IProject currProject = getProject();

IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot();

IResource init = null;

if (params.getRoot() != null) {

init = wsroot.findMember(currProject.getName() + params.getRoot());

}

Class[] acceptedClasses = new Class[] { IProject.class, IFolder.class };

ISelectionStatusValidator validator = new TypedElementSelectionValidator(acceptedClasses, false);

IProject[] allProjects = wsroot.getProjects();

ArrayList rejectedElements = new ArrayList(allProjects.length);

for (int i = 0; i 

if (!allProjects[i].equals(currProject)) {

rejectedElements.add(allProjects[i]);

}

}

ViewerFilter filter = new TypedViewerFilter(acceptedClasses, rejectedElements.toArray());

FolderSelectionDialog dialog = new FolderSelectionDialog(

getShell(),

new WorkbenchLabelProvider(),

new WorkbenchContentProvider());

dialog.setTitle(HTMLPlugin.getResourceString("HTMLProjectPropertyPage.WebRoot"));

dialog.setMessage(HTMLPlugin.getResourceString("HTMLProjectPropertyPage.WebRoot"));

dialog.setInput(wsroot);

dialog.setValidator(validator);

dialog.addFilter(filter);

dialog.setInitialSelection(init);

if (dialog.open() == Dialog.OK) {

textWebAppRoot.setText(getFolderName(dialog.getFirstResult()));

}

} catch (Throwable t) {

HTMLPlugin.openAlertDialog(t.toString());

}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值