com.siteview.mde.internal.ui.editor.schema.NewClassCreationWizard.java Source code

Java tutorial

Introduction

Here is the source code for com.siteview.mde.internal.ui.editor.schema.NewClassCreationWizard.java

Source

/*******************************************************************************
 *  Copyright (c) 2000, 2008 IBM Corporation and others.
 *  All rights reserved. This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License v1.0
 *  which accompanies this distribution, and is available at
 *  http://www.eclipse.org/legal/epl-v10.html
 * 
 *  Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package com.siteview.mde.internal.ui.editor.schema;

import com.siteview.mde.internal.ui.editor.monitor.JavaAttributeWizard;

import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.jdt.core.*;
import org.eclipse.jdt.ui.wizards.NewClassWizardPage;
import org.eclipse.jdt.ui.wizards.NewInterfaceWizardPage;
import org.eclipse.jface.viewers.StructuredSelection;
import com.siteview.mde.internal.ui.util.TextUtil;

public class NewClassCreationWizard extends JavaAttributeWizard {

    private boolean fIsInterface;

    private IPackageFragment packageName = null;
    private String className = null;
    private IPackageFragmentRoot packageRoot = null;

    public NewClassCreationWizard(IProject project, boolean isInterface, String value) {
        super(project, null, null, null);
        try {
            initializeValues(project, value);
        } catch (JavaModelException e) {
            // Ignore
        }
        fIsInterface = isInterface;
    }

    public void addPages() {
        if (fIsInterface)
            fMainPage = new NewInterfaceWizardPage();
        else
            fMainPage = new NewClassWizardPage();
        addPage(fMainPage);
        if (fIsInterface) {
            ((NewInterfaceWizardPage) fMainPage).init(StructuredSelection.EMPTY);
            if (className != null)
                ((NewInterfaceWizardPage) fMainPage).setTypeName(className, true);
            if (packageRoot != null)
                ((NewInterfaceWizardPage) fMainPage).setPackageFragmentRoot(packageRoot, true);
            if (packageName != null)
                ((NewInterfaceWizardPage) fMainPage).setPackageFragment(packageName, true);
        } else {
            ((NewClassWizardPage) fMainPage).init(StructuredSelection.EMPTY);
            if (className != null)
                ((NewClassWizardPage) fMainPage).setTypeName(className, true);
            if (packageRoot != null)
                ((NewClassWizardPage) fMainPage).setPackageFragmentRoot(packageRoot, true);
            if (packageName != null)
                ((NewClassWizardPage) fMainPage).setPackageFragment(packageName, true);
        }
    }

    private void initializeValues(IProject project, String value) throws JavaModelException {
        value = TextUtil.trimNonAlphaChars(value);
        IJavaProject javaProject = JavaCore.create(project);
        IPackageFragmentRoot srcEntryDft = null;
        IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
                srcEntryDft = roots[i];
                break;
            }
        }
        if (srcEntryDft != null)
            packageRoot = srcEntryDft;
        else
            packageRoot = javaProject.getPackageFragmentRoot(javaProject.getResource());

        String packageNameString = null;
        int index = value.lastIndexOf("."); //$NON-NLS-1$
        if (index == -1) {
            className = value;
        } else {
            className = value.substring(index + 1);
            packageNameString = value.substring(0, index);
        }
        if (packageNameString != null && packageRoot != null) {
            IFolder packageFolder = project.getFolder(packageNameString);
            packageName = packageRoot.getPackageFragment(packageFolder.getProjectRelativePath().toOSString());
        }
    }
}