selectprojectandfolderdialog.java
来自「plugin for eclipse」· Java 代码 · 共 172 行
JAVA
172 行
package isis.tinydt.properties;
import isis.tinydt.TinydtProject;
import java.util.Iterator;
import java.util.List;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IResource;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.TreeEvent;
import org.eclipse.swt.events.TreeListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
public class SelectProjectAndFolderDialog extends Dialog
{
protected Tree tree = null;
protected String selectedFolder = null;
public SelectProjectAndFolderDialog(Shell parent)
{
super(parent);
}
public String getSelectedFolder()
{
return selectedFolder;
}
private void fillTreeWithFolders(TreeItem parentItem, IContainer res)
{
IResource[] members = null;
try
{
members = res.members();
}
catch(Exception e)
{
e.printStackTrace();
}
if(members != null)
{
for(int i = 0; i < members.length; ++i)
{
IResource r = members[i];
if(r instanceof IFolder)
{
TreeItem folder = new TreeItem(parentItem, SWT.NULL);
folder.setText(r.getName());
folder.setData(r.getFullPath().toString());
folder.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER));
fillTreeWithFolders(folder, (IContainer) r);
}
}
}
}
private void fillTreeWithProjects()
{
tree.removeAll();
List list = TinydtProject.getTinydtProjects();
Iterator it = list.iterator();
while(it.hasNext())
{
TinydtProject proj = (TinydtProject) it.next();
TreeItem projItem = new TreeItem(tree, SWT.NULL);
projItem.setText(proj.getProject().getName());
projItem.setData(proj.getProject().getFullPath().toString());
projItem.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_PROJECT));
fillTreeWithFolders(projItem, proj.getProject());
}
}
protected Control createContents(Composite parent)
{
parent.getShell().setText("Select folder");
parent.setSize(500, 500);
GridLayout gridLayout1 = new GridLayout();
gridLayout1.numColumns = 1;
parent.setLayout(gridLayout1);
GridData gridData1 = new GridData();
gridData1.horizontalAlignment = GridData.FILL;
gridData1.verticalAlignment = GridData.FILL;
gridData1.verticalSpan = 1;
gridData1.grabExcessHorizontalSpace = true;
gridData1.grabExcessVerticalSpace = true;
Composite c = new Composite(parent, SWT.FILL);
c.setLayoutData(gridData1);
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 2;
c.setLayout(gridLayout);
tree = new Tree(c, SWT.NONE);
GridData gridData = new GridData();
gridData.horizontalAlignment = GridData.FILL;
gridData.verticalAlignment = GridData.FILL;
gridData.verticalSpan = 3;
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
tree.setLayoutData(gridData);
/*
* tree.addTreeListener(new TreeListener() { public void
* treeExpanded(TreeEvent e) { TreeItem ti = (TreeItem) e.item;
* ti.setImage(PlatformUI.getWorkbench().getSharedImages()
* .getImage(ISharedImages.IMG_OBJ_PROJECT)); }
*
* public void treeCollapsed(TreeEvent e) { TreeItem ti = (TreeItem)
* e.item;
* ti.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_PROJECT_CLOSED)); }
* });
*/
fillTreeWithProjects();
// 'ok' button
Button buttonOk = new Button(c, SWT.PUSH);
buttonOk.setText("Ok");
buttonOk.addListener(SWT.Selection, new Listener()
{
public void handleEvent(Event event)
{
setReturnCode(OK);
TreeItem[] sel = tree.getSelection();
if( sel.length == 1 )
selectedFolder = (String)sel[0].getData();
else
selectedFolder = null;
close();
}
});
// 'cancel' button
Button buttonCancel = new Button(c, SWT.PUSH);
buttonCancel.setText("Cancel");
buttonCancel.addListener(SWT.Selection, new Listener()
{
public void handleEvent(Event event)
{
setReturnCode(CANCEL);
close();
}
});
//c.setSize(400,400);
c.pack();
return c;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?