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

📄 enumgeneratorenewwizardpage.java

📁 基于eclipse的工具开发代码
💻 JAVA
字号:
package com.cownew.enumgenerator.wizards;import org.eclipse.core.runtime.IStatus;import org.eclipse.jdt.core.ICompilationUnit;import org.eclipse.jdt.core.IJavaElement;import org.eclipse.jdt.core.IJavaProject;import org.eclipse.jdt.core.IPackageFragment;import org.eclipse.jdt.core.JavaModelException;import org.eclipse.jdt.ui.IJavaElementSearchConstants;import org.eclipse.jdt.ui.JavaUI;import org.eclipse.jdt.ui.wizards.NewContainerWizardPage;import org.eclipse.jface.dialogs.Dialog;import org.eclipse.jface.dialogs.MessageDialog;import org.eclipse.jface.viewers.ISelection;import org.eclipse.jface.viewers.IStructuredSelection;import org.eclipse.jface.window.Window;import org.eclipse.swt.SWT;import org.eclipse.swt.events.ModifyEvent;import org.eclipse.swt.events.ModifyListener;import org.eclipse.swt.events.SelectionAdapter;import org.eclipse.swt.events.SelectionEvent;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.Label;import org.eclipse.swt.widgets.Text;import org.eclipse.ui.dialogs.SelectionDialog;import com.cownew.enumgenerator.Activator;public class EnumGeneratoreNewWizardPage extends NewContainerWizardPage{	private Text packageText;	private Text fileText;	private ISelection selection;	public EnumGeneratoreNewWizardPage(ISelection selection)	{		super("wizardPage");		setTitle("新增枚举类");		setDescription("此向导页创建一个枚举类文件");		this.selection = selection;	}	public void createControl(Composite parent)	{		initializeDialogUnits(parent);				Composite container = new Composite(parent, SWT.NULL);		GridLayout layout = new GridLayout();		container.setLayout(layout);		layout.numColumns = 3;		layout.verticalSpacing = 9;				Label labelSrcFolder = new Label(container, SWT.WRAP);		labelSrcFolder.setText("please select the source folder to store the code");		GridData gdSrcFolder = new GridData();		gdSrcFolder.widthHint = convertWidthInCharsToPixels(60);		gdSrcFolder.horizontalSpan = 3;		labelSrcFolder.setLayoutData(gdSrcFolder);		createContainerControls(container, 3);		initContainerPage(getInitialJavaElement((IStructuredSelection)selection));				Label labelPackage = new Label(container, SWT.NULL);		labelPackage.setText("包:");		packageText = new Text(container, SWT.BORDER | SWT.SINGLE);		GridData gd = new GridData(GridData.FILL_HORIZONTAL);		packageText.setLayoutData(gd);		packageText.setEditable(false);		packageText.addModifyListener(new ModifyListener() {			public void modifyText(ModifyEvent e)			{				dialogChanged();			}		});		Button button = new Button(container, SWT.PUSH);		button.setText("浏览...");		button.addSelectionListener(new SelectionAdapter() {			public void widgetSelected(SelectionEvent e)			{				handleBrowse();			}		});				Label labelFileName = new Label(container, SWT.NULL);		labelFileName.setText("文件名:");		fileText = new Text(container, SWT.BORDER | SWT.SINGLE);		gd = new GridData(GridData.FILL_HORIZONTAL);		fileText.setLayoutData(gd);				fileText.addModifyListener(new ModifyListener() {			public void modifyText(ModifyEvent e)			{				dialogChanged();			}		});		initialize();		dialogChanged();		setControl(container);		Dialog.applyDialogFont(container);	}	protected IStatus containerChanged()	{		IStatus status = super.containerChanged();		updateStatus(status);		return status;	}		private void initialize()	{		if (selection != null && selection.isEmpty() == false				&& selection instanceof IStructuredSelection)		{			IStructuredSelection ssel = (IStructuredSelection) selection;			if (ssel.size() > 1)				return;			Object obj = ssel.getFirstElement();			if (obj instanceof IPackageFragment)			{				IPackageFragment pckFragment = (IPackageFragment)obj;				packageText.setText(pckFragment.getElementName());			}			else if (obj instanceof ICompilationUnit)			{				ICompilationUnit cu = (ICompilationUnit) obj;				// cu的父容器一定是一个包,所以直接通过cu.getParent()得到java				// 文件所在的包				packageText.setText(cu.getParent().getElementName());			}					}		fileText.setText("*.java");	}	private void handleBrowse()	{		IJavaProject javaProject = getCurrentJavaProject();		if(javaProject==null)		{			MessageDialog.openWarning(getShell(), "error", "请在Java项目内运行此向导!");		}				SelectionDialog dialog = null;		try		{			dialog = JavaUI.createPackageDialog(getShell(), 					javaProject,IJavaElementSearchConstants.CONSIDER_REQUIRED_PROJECTS);		} catch (JavaModelException jme)		{			MessageDialog.openWarning(getShell(), "error", jme.getMessage());			Activator.logException(jme);		}		if (dialog.open() != Window.OK)		{			return;		}		IPackageFragment pck = (IPackageFragment) dialog.getResult()[0];		if (pck != null)		{			packageText.setText(pck.getElementName());		}	}		private IJavaProject getCurrentJavaProject()	{		if (selection != null && selection.isEmpty() == false				&& selection instanceof IStructuredSelection)		{			IStructuredSelection ssel = (IStructuredSelection) selection;			Object obj = ssel.getFirstElement();			if(obj instanceof IJavaElement)			{				return ((IJavaElement)obj).getJavaProject();			}		}		return null;					}	private void dialogChanged()	{		String pckName = packageText.getText();		String fileName = fileText.getText();		if (pckName==null||pckName.length() == 0)		{			updateMsg("请指定包");			return;		}		if (fileName==null||fileName.length() == 0)		{			updateMsg("请输入文件名");			return;		}		if (fileName.replace('\\', '/').indexOf('/', 1) > 0||				fileName.contains("*")||fileName.contains("?"))		{			updateMsg("文件名不合法");			return;		}		int dotLoc = fileName.lastIndexOf('.');		if (dotLoc != -1)		{			String ext = fileName.substring(dotLoc + 1);			if (ext.equalsIgnoreCase("java") == false)			{				updateMsg("文件扩展名必须是 \"java\"");				return;			}		}		updateMsg(null);	}	protected void updateMsg(String message)	{		setErrorMessage(message);		setPageComplete(message==null);	}	public String getPackageName()	{		return packageText.getText();	}	public String getFileName()	{		return fileText.getText();	}}

⌨️ 快捷键说明

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