X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/wizards/NewTypeWizardPage.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/wizards/NewTypeWizardPage.java index 6fa222c..582eda6 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/wizards/NewTypeWizardPage.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/wizards/NewTypeWizardPage.java @@ -14,18 +14,20 @@ import java.util.ArrayList; import java.util.List; import net.sourceforge.phpdt.core.Flags; +import net.sourceforge.phpdt.core.IBuffer; import net.sourceforge.phpdt.core.ICompilationUnit; import net.sourceforge.phpdt.core.IJavaElement; import net.sourceforge.phpdt.core.IPackageFragment; +import net.sourceforge.phpdt.core.ISourceRange; import net.sourceforge.phpdt.core.IType; import net.sourceforge.phpdt.core.ToolFactory; import net.sourceforge.phpdt.core.compiler.IScanner; import net.sourceforge.phpdt.core.compiler.ITerminalSymbols; import net.sourceforge.phpdt.core.compiler.InvalidInputException; import net.sourceforge.phpdt.externaltools.internal.ui.StatusInfo; -import net.sourceforge.phpdt.internal.corext.template.Template; -import net.sourceforge.phpdt.internal.corext.template.Templates; +import net.sourceforge.phpdt.internal.corext.codemanipulation.StubUtility; import net.sourceforge.phpdt.internal.corext.template.php.JavaContext; +import net.sourceforge.phpdt.internal.corext.template.php.Templates; import net.sourceforge.phpdt.internal.ui.PHPUiImages; import net.sourceforge.phpdt.internal.ui.util.SWTUtil; import net.sourceforge.phpdt.internal.ui.wizards.NewWizardMessages; @@ -41,10 +43,18 @@ import net.sourceforge.phpdt.internal.ui.wizards.dialogfields.Separator; import net.sourceforge.phpdt.internal.ui.wizards.dialogfields.StringButtonDialogField; import net.sourceforge.phpdt.internal.ui.wizards.dialogfields.StringButtonStatusDialogField; import net.sourceforge.phpdt.internal.ui.wizards.dialogfields.StringDialogField; +import net.sourceforge.phpdt.ui.PreferenceConstants; import net.sourceforge.phpeclipse.PHPeclipsePlugin; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.text.templates.Template; +import org.eclipse.jface.text.templates.TemplateException; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; @@ -170,7 +180,7 @@ public abstract class NewTypeWizardPage extends NewContainerWizardPage { private SelectionButtonDialogFieldGroup fAccMdfButtons; private SelectionButtonDialogFieldGroup fOtherMdfButtons; - // private IType fCreatedType; + private IType fCreatedType; protected IStatus fEnclosingTypeStatus; protected IStatus fPackageStatus; @@ -194,7 +204,7 @@ public abstract class NewTypeWizardPage extends NewContainerWizardPage { */ public NewTypeWizardPage(boolean isClass, String pageName) { super(pageName); - // fCreatedType= null; + fCreatedType= null; fIsClass = isClass; @@ -395,7 +405,7 @@ public abstract class NewTypeWizardPage extends NewContainerWizardPage { Button button = fEnclosingTypeDialogField.getChangeControl(composite); gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); - gd.heightHint = SWTUtil.getButtonHeigthHint(button); + gd.heightHint = SWTUtil.getButtonHeightHint(button); gd.widthHint = SWTUtil.getButtonWidthHint(button); button.setLayoutData(gd); } @@ -1274,14 +1284,14 @@ public abstract class NewTypeWizardPage extends NewContainerWizardPage { * * @param monitor a progress monitor to report progress. */ -// public void createType(IProgressMonitor monitor) throws CoreException, InterruptedException { -// if (monitor == null) { -// monitor = new NullProgressMonitor(); -// } -// -// monitor.beginTask(NewWizardMessages.getString("NewTypeWizardPage.operationdesc"), 10); //$NON-NLS-1$ -// ICompilationUnit createdWorkingCopy = null; -// try { + public void createType(IProgressMonitor monitor) throws CoreException, InterruptedException { + if (monitor == null) { + monitor = new NullProgressMonitor(); + } + + monitor.beginTask(NewWizardMessages.getString("NewTypeWizardPage.operationdesc"), 10); //$NON-NLS-1$ + ICompilationUnit createdWorkingCopy = null; + try { // IPackageFragmentRoot root = getPackageFragmentRoot(); // IPackageFragment pack = getPackageFragment(); // if (pack == null) { @@ -1292,26 +1302,26 @@ public abstract class NewTypeWizardPage extends NewContainerWizardPage { // String packName = pack.getElementName(); // pack = root.createPackageFragment(packName, true, null); // } -// -// monitor.worked(1); -// -// String clName = getTypeName(); -// -// boolean isInnerClass = isEnclosingTypeSelected(); -// -// IType createdType; + + monitor.worked(1); + + String clName = getTypeName(); + + boolean isInnerClass = isEnclosingTypeSelected(); + + IType createdType; // ImportsStructure imports; -// int indent = 0; -// -// IPreferenceStore store = PreferenceConstants.getPreferenceStore(); + int indent = 0; + + IPreferenceStore store = PreferenceConstants.getPreferenceStore(); // String[] prefOrder = JavaPreferencesSettings.getImportOrderPreference(store); // int threshold = JavaPreferencesSettings.getImportNumberThreshold(store); // -// String lineDelimiter = null; + String lineDelimiter = null; // if (!isInnerClass) { -// lineDelimiter = System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$ + lineDelimiter = System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$ // -// ICompilationUnit parentCU = pack.createCompilationUnit(clName + ".java", "", false, new SubProgressMonitor(monitor, 2)); //$NON-NLS-1$ //$NON-NLS-2$ +// ICompilationUnit parentCU = pack.createCompilationUnit(clName + ".php", "", false, new SubProgressMonitor(monitor, 2)); //$NON-NLS-1$ //$NON-NLS-2$ // createdWorkingCopy = (ICompilationUnit) parentCU.getSharedWorkingCopy(null, JavaUI.getBufferFactory(), null); // // imports = new ImportsStructure(createdWorkingCopy, prefOrder, threshold, false); @@ -1324,7 +1334,7 @@ public abstract class NewTypeWizardPage extends NewContainerWizardPage { // // createdWorkingCopy.getBuffer().setContents(cuContent); // -// createdType = createdWorkingCopy.getType(clName); + createdType = createdWorkingCopy.getType(clName); // } else { // IType enclosingType = getEnclosingType(); // @@ -1363,41 +1373,41 @@ public abstract class NewTypeWizardPage extends NewContainerWizardPage { // // add imports for superclass/interfaces, so types can be resolved correctly // imports.create(false, new SubProgressMonitor(monitor, 1)); // -// ICompilationUnit cu = createdType.getCompilationUnit(); -// synchronized (cu) { -// cu.reconcile(); -// } + ICompilationUnit cu = createdType.getCompilationUnit(); + synchronized (cu) { + cu.reconcile(); + } // createTypeMembers(createdType, new ImportsManager(imports), new SubProgressMonitor(monitor, 1)); // // // add imports // imports.create(false, new SubProgressMonitor(monitor, 1)); -// -// synchronized (cu) { -// cu.reconcile(); -// } -// ISourceRange range = createdType.getSourceRange(); -// -// IBuffer buf = cu.getBuffer(); -// String originalContent = buf.getText(range.getOffset(), range.getLength()); -// String formattedContent = StubUtility.codeFormat(originalContent, indent, lineDelimiter); -// buf.replace(range.getOffset(), range.getLength(), formattedContent); -// if (!isInnerClass) { -// String fileComment = getFileComment(cu); -// if (fileComment != null && fileComment.length() > 0) { -// buf.replace(0, 0, fileComment + lineDelimiter); -// } -// cu.commit(false, new SubProgressMonitor(monitor, 1)); -// } else { -// monitor.worked(1); -// } -// fCreatedType = createdType; -// } finally { -// if (createdWorkingCopy != null) { -// createdWorkingCopy.destroy(); -// } -// monitor.done(); -// } -// } + + synchronized (cu) { + cu.reconcile(); + } + ISourceRange range = createdType.getSourceRange(); + + IBuffer buf = cu.getBuffer(); + String originalContent = buf.getText(range.getOffset(), range.getLength()); + String formattedContent = StubUtility.codeFormat(originalContent, indent, lineDelimiter); + buf.replace(range.getOffset(), range.getLength(), formattedContent); + if (!isInnerClass) { + String fileComment = getFileComment(cu); + if (fileComment != null && fileComment.length() > 0) { + buf.replace(0, 0, fileComment + lineDelimiter); + } + cu.commit(false, new SubProgressMonitor(monitor, 1)); + } else { + monitor.worked(1); + } + fCreatedType = createdType; + } finally { + if (createdWorkingCopy != null) { + createdWorkingCopy.destroy(); + } + monitor.done(); + } + } /** * Uses the New Java file template from the code template page to generate a @@ -1445,9 +1455,9 @@ public abstract class NewTypeWizardPage extends NewContainerWizardPage { * @return the created type * @see #createType(IProgressMonitor) */ - // public IType getCreatedType() { - // return fCreatedType; - // } + public IType getCreatedType() { + return fCreatedType; + } // ---- construct cu body---------------- @@ -1614,10 +1624,16 @@ public abstract class NewTypeWizardPage extends NewContainerWizardPage { try { Template[] templates = Templates.getInstance().getTemplates(name); if (templates.length > 0) { - return JavaContext.evaluateTemplate(templates[0], parentCU, pos); + return JavaContext.evaluateTemplate(templates[0], parentCU, pos); } } catch (CoreException e) { PHPeclipsePlugin.log(e); + } catch (BadLocationException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (TemplateException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); } return null; }