01: /*******************************************************************************
02: * Copyright (c) 2000, 2006 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.pde.ui;
11:
12: import org.eclipse.core.resources.IProject;
13: import org.eclipse.jface.viewers.IStructuredSelection;
14: import org.eclipse.pde.core.plugin.IPluginModelBase;
15:
16: /**
17: * An interface for extension editor wizards. Clients should implement this
18: * interface if they are plugging into PDE using
19: * <samp>org.eclipse.pde.ui.newExtension </samp> extension point and want to
20: * register wizards for custom editing of the selected extensions and extension
21: * elements in the plug-in manifest wizard.
22: *
23: * @since 3.0
24: */
25: public interface IExtensionEditorWizard extends IBasePluginWizard {
26: /**
27: * Initializes the wizard with the project of the plug-in and the model
28: * object for the plug-in manifest file. Java code and other resorces should
29: * be created in the source folder under the provided project. Changes in
30: * the plug-in manifest should be made using the APIs of the provided model.
31: * Changing the model will make the model dirty. This will show up in the UI
32: * indicating that the currently opened manifest file is modified and needs
33: * to be saved.
34: * <p>
35: * The wizard is opened on a current selection in the extension tree. It is
36: * supposed to modify the selected element and/or its children using plug-in
37: * model APIs. The setters on the APIs will cause the model to be dirty and
38: * make the editor dirty as well. Saving the editor will commit the changes
39: * made by the wizard to the edited file.
40: *
41: * @param project
42: * the plug-in project resource where the new code and resources
43: * should go
44: * @param pluginModel
45: * the model instance that should be used to modify the plug-in
46: * manifest
47: * @param selection
48: * the currently selected extension or extension element in the
49: * manifest editor extension tree
50: *
51: */
52: public void init(IProject project, IPluginModelBase pluginModel,
53: IStructuredSelection selection);
54: }
|