Java tutorial
/** * Copyright (c) 2005-2006 Aptana, Inc. * * 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. If redistributing this code, * this entire header must remain intact. */ package com.aptana.ide.wizards; import java.io.File; import java.lang.reflect.InvocationTargetException; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.wizard.Wizard; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IImportWizard; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.actions.WorkspaceModifyOperation; import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin; import com.aptana.ide.librarymanager.LibraryInfo; import com.aptana.ide.librarymanager.LibraryManager; /** * @author Paul Colton */ public class LibraryImportWizard extends Wizard implements IImportWizard { LibraryWizardPage page; IProject _project; /** * */ public LibraryImportWizard() { super(); } /** * @see org.eclipse.jface.wizard.Wizard#performFinish() */ public boolean performFinish() { try { WorkspaceModifyOperation op = new WorkspaceModifyOperation() { protected void execute(IProgressMonitor monitor) { createProject(monitor != null ? monitor : new NullProgressMonitor()); } }; getContainer().run(false, true, op); } catch (InvocationTargetException x) { return false; } catch (InterruptedException x) { return false; } return true; } /** * createProject * * @param monitor */ protected void createProject(IProgressMonitor monitor) { if (_project != null && page.getSelectedLibraries().length > 0) { LibraryProjectWizard.copyLibraryFiles(monitor, _project, page.getSelectedLibraries()); } } /** * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, * org.eclipse.jface.viewers.IStructuredSelection) */ public void init(IWorkbench workbench, IStructuredSelection s) { Object firstItem = s.getFirstElement(); if (firstItem instanceof IProject) { this._project = (IProject) firstItem; } else { _project = null; MessageDialog.openInformation(workbench.getActiveWorkbenchWindow().getShell(), Messages.LibraryImportWizard_ImportJavaScriptLibrary, Messages.LibraryImportWizard_CanOnlyImportIntoTopLevel); } } /** * @see org.eclipse.jface.wizard.Wizard#addPages() */ public void addPages() { if (_project != null) { super.addPages(); // TEMP IStructuredContentProvider provider = new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { // String pluginDir = CoreUIUtils.getPluginLocation(ProjectsPlugin.getDefault()); // String sourceDir = pluginDir + "/" + LibraryProjectWizard.librariesDirectory; //$NON-NLS-1$ // // File f = new File(sourceDir); // File[] files = f.listFiles(); // ArrayList dirs = new ArrayList(); // for (int i = 0; i < files.length; i++) // { // File file = files[i]; // if (file.isDirectory()) // { // String name = file.getName(); // dirs.add(name); // LibraryProjectWizard.dirHash.put(name, file.getAbsolutePath()); // } // } // return (String[]) dirs.toArray(new String[0]); return LibraryManager.getInstance().getLibraryInfoExtensions(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }; ILabelProvider labelProvider = new ILabelProvider() { public Image getImage(Object element) { Image result = null; if (element instanceof LibraryInfo) { String iconFile = ((LibraryInfo) element).getIconFile(); if (iconFile != null && iconFile.length() > 0) { File file = new File(iconFile); result = new Image(Display.getDefault(), file.getAbsolutePath()); } } return result; } public String getText(Object element) { return element.toString(); } public void addListener(ILabelProviderListener listener) { // TODO Auto-generated method stub } public void dispose() { // TODO Auto-generated method stub } public boolean isLabelProperty(Object element, String property) { // TODO Auto-generated method stub return false; } public void removeListener(ILabelProviderListener listener) { // TODO Auto-generated method stub } }; page = new LibraryWizardPage(Messages.LibraryImportWizard_JavaScriptLibraries, provider, labelProvider); page.setTitle(Messages.LibraryImportWizard_ImportJavaScriptLibrary); page.setDescription(Messages.LibraryImportWizard_ImportLibraryDescription); addPage(page); } } /** * @see org.eclipse.jface.wizard.Wizard#dispose() */ public void dispose() { // TODO Auto-generated method stub super.dispose(); if (page != null) { page.dispose(); } } /** * (non-Javadoc) Method declared on BasicNewResourceWizard. */ protected void initializeDefaultPageImageDescriptor() { ImageDescriptor desc = IDEWorkbenchPlugin.getIDEImageDescriptor("wizban/newprj_wiz.gif");//$NON-NLS-1$ setDefaultPageImageDescriptor(desc); } }