misc changes
[phpeclipse.git] / net.sourceforge.phpeclipse / src / com / xaraya / wizard / XarayaModuleContainerPage.java
diff --git a/net.sourceforge.phpeclipse/src/com/xaraya/wizard/XarayaModuleContainerPage.java b/net.sourceforge.phpeclipse/src/com/xaraya/wizard/XarayaModuleContainerPage.java
deleted file mode 100644 (file)
index b3b14f8..0000000
+++ /dev/null
@@ -1,385 +0,0 @@
-package com.xaraya.wizard;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.io.PipedInputStream;
-import java.io.PipedOutputStream;
-import java.io.PrintStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.StringTokenizer;
-
-import net.sourceforge.phpdt.internal.ui.util.StringUtil;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.dialogs.ContainerGenerator;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.IHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.misc.ResourceAndContainerGroup;
-
-public class XarayaModuleContainerPage extends WizardPage implements Listener {
-       private static final int SIZING_CONTAINER_GROUP_HEIGHT = 250;
-       private IStructuredSelection currentSelection;
-       private IContainer currentParent;
-       NewXarayaResourceWizard wizard;
-       private IPath newModulePath;
-       private IFolder newModule;
-       
-       // widgets
-       private ResourceAndContainerGroup resourceGroup;
-
-public XarayaModuleContainerPage(String pageName, IStructuredSelection selection) {
-       super(XarayaModuleMessages.getString("Xaraya.label.container"));
-       setTitle(pageName);
-       setDescription(XarayaModuleMessages.getString("Xaraya.label.container")); 
-       this.currentSelection = selection;
-}
-
-public void createControl(Composite parent) {
-       initializeDialogUnits(parent);
-       // top level group
-       Composite composite = new Composite(parent,SWT.NONE);
-       composite.setFont(parent.getFont());
-       composite.setLayout(new GridLayout());
-       composite.setLayoutData(new GridData(
-               GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL));
-
-       WorkbenchHelp.setHelp(composite, IHelpContextIds.NEW_FOLDER_WIZARD_PAGE);
-
-       resourceGroup = new ResourceAndContainerGroup(composite,this,
-               XarayaModuleMessages.getString("Xaraya.label.container"),
-               XarayaModuleMessages.getString("Xaraya.label.modversionname"),
-                       false, SIZING_CONTAINER_GROUP_HEIGHT); //$NON-NLS-2$ //$NON-NLS-1$
-       resourceGroup.setAllowExistingResources(false);
-       initializePage();
-       validatePage();
-       // Show description on opening
-       setErrorMessage(null);
-       setMessage(null);
-       setControl(composite);
-}
-
-protected void createFolder(IFolder folderHandle, IProgressMonitor monitor) throws CoreException {
-    try {
-        // Create the folder resource in the workspace
-        // Update: Recursive to create any folders which do not exist already
-        if (!folderHandle.exists()) {
-            IContainer parent= folderHandle.getParent();
-            if (parent instanceof IFolder && (!((IFolder)parent).exists())) {
-                createFolder((IFolder)parent, monitor);
-            }
-                       folderHandle.create(false, true, monitor);
-        }
-    }
-    catch (CoreException e) {
-        // If the folder already existed locally, just refresh to get contents
-        if (e.getStatus().getCode() == IResourceStatus.PATH_OCCUPIED)
-            folderHandle.refreshLocal(IResource.DEPTH_INFINITE, new SubProgressMonitor(monitor, 500));
-        else
-            throw e;
-    }
-
-    if (monitor.isCanceled())
-        throw new OperationCanceledException();
-}
-
-protected IFolder createFolderHandle(IPath folderPath) {
-       return IDEWorkbenchPlugin.getPluginWorkspace().getRoot().getFolder(folderPath);
-}
-
-public IFolder createNewModuleFolder() {
-       if (newModule != null)
-               return newModule;
-
-       // create the new folder and cache it if successful
-       final IPath containerPath = resourceGroup.getContainerFullPath();
-       newModulePath = containerPath.append(resourceGroup.getResource());
-       final IFolder newModuleHandle = createFolderHandle(newModulePath);
-
-       WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
-               public void execute(IProgressMonitor monitor) throws CoreException {
-                       try {
-                               monitor.beginTask(WorkbenchMessages.getString("WizardNewFolderCreationPage.progress"), 2000); //$NON-NLS-1$
-                               ContainerGenerator generator = new ContainerGenerator(containerPath);
-                               generator.generateContainer(new SubProgressMonitor(monitor, 1000));
-                               createFolder(newModuleHandle, new SubProgressMonitor(monitor, 1000));
-                       } finally {
-                               monitor.done();
-                       }
-               }
-       };
-
-       try {
-               getContainer().run(true, true, op);
-       } catch (Exception e) {
-               return null;
-       }
-       newModule = newModuleHandle;
-       return newModule;
-}
-
-public boolean createNewGuiFolder() {
-       final IPath containerPath = newModulePath;
-       IPath newFolderPath = containerPath.append(XarayaModuleMessages.getString("Xaraya.folder.gui"));
-       final IFolder newFolderHandle = createFolderHandle(newFolderPath);
-
-       WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
-               public void execute(IProgressMonitor monitor) throws CoreException {
-                       try {
-                               monitor.beginTask(WorkbenchMessages.getString("WizardNewFolderCreationPage.progress"), 2000); //$NON-NLS-1$
-                               ContainerGenerator generator = new ContainerGenerator(containerPath);
-                               generator.generateContainer(new SubProgressMonitor(monitor, 1000));
-                               createFolder(newFolderHandle, new SubProgressMonitor(monitor, 1000));
-                       } finally {
-                               monitor.done();
-                       }
-               }
-       };
-
-       try {
-               getContainer().run(true, true, op);
-       } catch (Exception e) {
-               return false;
-       } 
-       return true;
-}
-
-protected void createFile(IFile fileHandle, InputStream contents, IProgressMonitor monitor) throws CoreException {
-       if (contents == null)
-               contents = new ByteArrayInputStream(new byte[0]);
-
-       try {
-                       fileHandle.create(contents, false, monitor);
-       }
-       catch (CoreException e) {
-               // If the file already existed locally, just refresh to get contents
-               if (e.getStatus().getCode() == IResourceStatus.PATH_OCCUPIED)
-                       fileHandle.refreshLocal(IResource.DEPTH_ZERO, null);
-               else
-                       throw e;
-       }
-
-       if (monitor.isCanceled())
-               throw new OperationCanceledException();
-}
-
-protected IFile createFileHandle(IPath filePath) {
-       return IDEWorkbenchPlugin.getPluginWorkspace().getRoot().getFile(filePath);
-}
-
-public Object[] createNewModuleFiles(){
-       ArrayList fileAL = new ArrayList();
-       boolean isGuiDirCreated = false;
-       fileAL.add(createNewFile(XarayaModuleMessages.getString("Xaraya.files.init")));
-       fileAL.add(createNewFile(XarayaModuleMessages.getString("Xaraya.files.version")));
-       if (XarayaVersionModel.isAdminApi()) fileAL.add(createNewFile(XarayaModuleMessages.getString("Xaraya.files.adminApi"))); 
-       if (XarayaVersionModel.isAdminGui()) {
-               fileAL.add(createNewFile(XarayaModuleMessages.getString("Xaraya.files.adminGui")));
-               isGuiDirCreated=createNewGuiFolder();
-       }  
-       if (XarayaVersionModel.isUserApi()) fileAL.add(createNewFile(XarayaModuleMessages.getString("Xaraya.files.userApi")));  
-       if (XarayaVersionModel.isUserGui()) {
-               fileAL.add(createNewFile(XarayaModuleMessages.getString("Xaraya.files.userGui")));
-               if (!isGuiDirCreated) isGuiDirCreated=createNewGuiFolder();     
-       } 
-       return fileAL.toArray();
-}
-
-public IFile createNewFile(String fileName) {
-       final IPath containerPath = newModulePath;
-       IPath newFilePath = containerPath.append(fileName);
-       final IFile newFileHandle = createFileHandle(newFilePath);
-       final InputStream initialContents = getInitialContents(fileName);
-       WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
-               protected void execute(IProgressMonitor monitor) throws CoreException,
-                       InterruptedException
-               {
-                       try {
-                               monitor.beginTask("Progress", 2000); //$NON-NLS-1$
-                               ContainerGenerator generator = new ContainerGenerator(containerPath);
-                               generator.generateContainer(new SubProgressMonitor(monitor, 1000));
-                               createFile(newFileHandle,initialContents, new SubProgressMonitor(monitor, 1000));
-                       } finally {
-                               monitor.done();
-                       }
-               }
-       };
-
-       try {
-               getContainer().run(true, true, op);
-       } catch (Exception e) {
-               return null;
-       } 
-       return newFileHandle;
-}
-
-       protected InputStream getInitialContents(String fileName) {
-               StringBuffer inputString = new StringBuffer();
-               if (fileName.equals(XarayaModuleMessages.getString("Xaraya.files.init"))) 
-                       inputString=XarayaModuleText.xarinit;
-               if (fileName.equals(XarayaModuleMessages.getString("Xaraya.files.adminGui"))) 
-                       inputString=XarayaModuleText.xaradmin;
-               if (fileName.equals(XarayaModuleMessages.getString("Xaraya.files.adminApi"))) 
-                       inputString=XarayaModuleText.xaradminapi;
-               if (fileName.equals(XarayaModuleMessages.getString("Xaraya.files.userGui"))) 
-                       inputString=XarayaModuleText.xaruser;
-               if (fileName.equals(XarayaModuleMessages.getString("Xaraya.files.userApi"))) 
-                       inputString=XarayaModuleText.xaruserapi;
-               if (fileName.equals(XarayaModuleMessages.getString("Xaraya.files.version"))) 
-                       inputString=XarayaModuleText.xarversion;
-               
-               ArrayList inserts = new ArrayList();
-               //makes things simpler to just refer to the arraylist...
-               inserts.add(XarayaModuleMessages.getString("Xaraya.insert.name"));
-               inserts.add(XarayaModuleMessages.getString("Xaraya.insert.id"));
-               inserts.add(XarayaModuleMessages.getString("Xaraya.insert.version"));
-               inserts.add(XarayaModuleMessages.getString("Xaraya.insert.description"));
-               inserts.add(XarayaModuleMessages.getString("Xaraya.insert.official"));
-               inserts.add(XarayaModuleMessages.getString("Xaraya.insert.author"));
-               inserts.add(XarayaModuleMessages.getString("Xaraya.insert.contact"));
-               inserts.add(XarayaModuleMessages.getString("Xaraya.insert.admin"));
-               inserts.add(XarayaModuleMessages.getString("Xaraya.insert.user"));
-               inserts.add(XarayaModuleMessages.getString("Xaraya.insert.securityschema"));
-               inserts.add(XarayaModuleMessages.getString("Xaraya.insert.class"));
-               inserts.add(XarayaModuleMessages.getString("Xaraya.insert.category"));
-       
-               ArrayList names = new ArrayList();
-               names.add(XarayaVersionModel.getModversionname());
-               names.add(XarayaVersionModel.getModversionid());
-               names.add(XarayaVersionModel.getModversionversion());
-               names.add(XarayaVersionModel.getModversiondescription());
-               names.add(XarayaVersionModel.getModversionofficial());
-               names.add(XarayaVersionModel.getModversionauthor());
-               names.add(XarayaVersionModel.getModversioncontact());
-               names.add(XarayaVersionModel.getModversionadmin());
-               names.add(XarayaVersionModel.getModversionuser());
-               names.add(XarayaVersionModel.getModversionsecurityschema());
-               names.add(XarayaVersionModel.getModversionclass());
-               names.add(XarayaVersionModel.getModversioncategory());
-               
-               PipedOutputStream ps = null;
-               PipedInputStream is = null;
-               String buffer = inputString.toString();         
-               for (int i=0; i<inserts.size(); i++)
-               {
-                       String insert = (String)inserts.get(i);
-                       String replace = (String)names.get(i);
-       
-      buffer = StringUtil.replaceAll(buffer, insert, replace.toLowerCase());
-                       try {
-                               ps = new PipedOutputStream();
-                               is = new PipedInputStream(ps);
-                               PrintStream os = new PrintStream(ps);
-                               os.println(buffer);
-                               os.close();
-                       } catch (Exception e) {
-                               System.out.println("writing to file:"+fileName +"failed with:"+ e);
-                       }
-               }
-               return is;
-       }
-       
-
-public void handleEvent(Event ev) {
-       setPageComplete(validatePage());
-}
-
-public boolean canFlipToNextPage() {
-       return isPageComplete();
-}
-
-protected void initializePage() {
-       Iterator enum = currentSelection.iterator();
-       if (enum.hasNext()) {
-               Object next = enum.next();
-               IResource selectedResource = null;
-               if (next instanceof IResource) {
-                       selectedResource = (IResource)next;
-               } else if (next instanceof IAdaptable) {
-                       selectedResource = (IResource)((IAdaptable)next).getAdapter(IResource.class);
-               }
-               if (selectedResource != null) {
-                       if (selectedResource.getType() == IResource.FILE)
-                               selectedResource = selectedResource.getParent();
-                       if (selectedResource.isAccessible())
-                               resourceGroup.setContainerFullPath(selectedResource.getFullPath());
-               }
-       }
-       setPageComplete(false);
-}
-
-public void setVisible(boolean visible) {
-       super.setVisible(visible);
-       if(visible)
-               resourceGroup.setFocus();
-}
-
-protected boolean validatePage() {
-       boolean valid = true;
-       String moduleName = new String();
-       IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
-    IStatus nameStatus = null;
-    String folderName = resourceGroup.getResource();
-    moduleName = folderName;
-    if (folderName.indexOf(IPath.SEPARATOR) != -1) {
-        StringTokenizer tok = new StringTokenizer(folderName, String.valueOf(IPath.SEPARATOR));
-        while (tok.hasMoreTokens()) {
-            String pathFragment = tok.nextToken();
-            nameStatus = workspace.validateName(pathFragment, IResource.FOLDER);
-            if (!nameStatus.isOK()) {
-                break;
-            }
-               }
-    }
-       //If the name status was not set validate using the name
-       if(nameStatus == null && folderName.length() > 0)
-        nameStatus = workspace.validateName(folderName, IResource.FOLDER);
-    if (nameStatus != null && !nameStatus.isOK()) {
-               setErrorMessage(nameStatus.getMessage());
-        return false;
-    }
-
-       if (!resourceGroup.areAllValuesValid()) {
-               // if blank name then fail silently
-               if (resourceGroup.getProblemType() == ResourceAndContainerGroup.PROBLEM_RESOURCE_EMPTY
-                       || resourceGroup.getProblemType() == ResourceAndContainerGroup.PROBLEM_CONTAINER_EMPTY) {
-                       setMessage(resourceGroup.getProblemMessage());
-                       setErrorMessage(null);
-               } else {
-                       setErrorMessage(resourceGroup.getProblemMessage());
-               }
-               valid = false;
-       }
-       if (valid) {
-               XarayaVersionModel.setModversionname(moduleName);
-               setErrorMessage(null);
-       } 
-       return valid;
-}
-
-}
-