unified title and description handling in wizards
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / wizards / PHPFileWizard.java
index 6e6b2da..7cae6d8 100644 (file)
@@ -9,7 +9,7 @@ package net.sourceforge.phpeclipse.wizards;
 
  Contributors:
  IBM Corporation - Initial implementation
- Klaus Hartlage - www.eclipseproject.de
+ www.phpeclipse.de
  **********************************************************************/
 
 import java.io.ByteArrayInputStream;
@@ -24,6 +24,7 @@ import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
@@ -55,12 +56,10 @@ public class PHPFileWizard extends Wizard implements INewWizard {
 
   private ISelection selection;
 
-  // the name of the file to create
-  private String fFileName;
-
   public PHPFileWizard() {
     super();
     setNeedsProgressMonitor(true);
+    setWindowTitle(PHPWizardMessages.getString("WizardNewProjectCreationPage.windowTitle"));
   }
 
   /**
@@ -115,12 +114,14 @@ public class PHPFileWizard extends Wizard implements INewWizard {
     }
     IContainer container = (IContainer) resource;
     final IFile file = container.getFile(new Path(fileName));
+    IProject project = file.getProject();
+    String projectName = project.getName();
     String className = getClassName(fileName);
 
     try {
       InputStream stream;
       if (className == null) {
-        stream = openContentStream(fileName);
+        stream = openContentStream(fileName, projectName);
       } else {
         stream = openContentStreamClass(className);
       }
@@ -148,7 +149,7 @@ public class PHPFileWizard extends Wizard implements INewWizard {
 
   /**
    * Check if the filename is like this anyname.class.php
-   * 
+   *
    * @param fFileName
    *          the filename
    * @return the anyname or null
@@ -167,7 +168,7 @@ public class PHPFileWizard extends Wizard implements INewWizard {
 
   /**
    * We will initialize file contents for a class
-   * 
+   *
    * @param className
    *          the classname
    */
@@ -186,7 +187,7 @@ public class PHPFileWizard extends Wizard implements INewWizard {
   /**
    * We will initialize file contents with a sample text.
    */
-  private InputStream openContentStream(String fileName) {
+  private InputStream openContentStream(String fileName, String projectname) {
     try {
       Template template = PHPeclipsePlugin.getDefault().getCodeTemplateStore().findTemplate(CodeTemplateContextType.NEWTYPE);
       if (template == null) {
@@ -194,8 +195,12 @@ public class PHPFileWizard extends Wizard implements INewWizard {
       }
       String lineDelimiter = System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
       CodeTemplateContext context = new CodeTemplateContext(template.getContextTypeId(), null, lineDelimiter);
-      context.setFileNameVariable(fileName);
-      return new ByteArrayInputStream(StubUtility.evaluateTemplate(context, template).getBytes());
+      context.setFileNameVariable(fileName, projectname);
+      String content=StubUtility.evaluateTemplate(context, template);
+      if (content==null) {
+         content="";
+      }
+      return new ByteArrayInputStream(content.getBytes());
     } catch (CoreException e) {
       e.printStackTrace();
       return null;
@@ -210,17 +215,11 @@ public class PHPFileWizard extends Wizard implements INewWizard {
 
   /**
    * We will accept the selection in the workbench to see if we can initialize from it.
-   * 
+   *
    * @see IWorkbenchWizard#init(IWorkbench, IStructuredSelection)
    */
   public void init(IWorkbench workbench, IStructuredSelection selection) {
     this.selection = selection;
   }
 
-  /**
-   * Sets the name of the file to create (used to set the class name in the new file)
-   */
-  public void setFileName(String name) {
-    fFileName = name;
-  }
 }
\ No newline at end of file