Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 296345 | Differences between
and this patch

Collapse All | Expand All

(-)serverui/org/eclipse/wst/server/ui/internal/ServerUIPlugin.java (-1 / +46 lines)
Lines 1-5 Link Here
1
/*******************************************************************************
1
/*******************************************************************************
2
 * Copyright (c) 2003, 2008 IBM Corporation and others.
2
 * Copyright (c) 2003, 2009 IBM Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 43-48 Link Here
43
import org.eclipse.wst.server.ui.internal.wizard.fragment.NewRuntimeWizardFragment;
43
import org.eclipse.wst.server.ui.internal.wizard.fragment.NewRuntimeWizardFragment;
44
import org.eclipse.wst.server.ui.internal.wizard.fragment.NewServerWizardFragment;
44
import org.eclipse.wst.server.ui.internal.wizard.fragment.NewServerWizardFragment;
45
import org.eclipse.wst.server.ui.internal.wizard.fragment.TasksWizardFragment;
45
import org.eclipse.wst.server.ui.internal.wizard.fragment.TasksWizardFragment;
46
import org.eclipse.wst.server.ui.wizard.ServerCreationWizardPageExtension;
46
import org.eclipse.wst.server.ui.wizard.WizardFragment;
47
import org.eclipse.wst.server.ui.wizard.WizardFragment;
47
48
48
import org.eclipse.osgi.util.NLS;
49
import org.eclipse.osgi.util.NLS;
Lines 87-92 Link Here
87
88
88
	// cached copy of all runtime wizards
89
	// cached copy of all runtime wizards
89
	private static Map<String, WizardFragmentData> wizardFragments;
90
	private static Map<String, WizardFragmentData> wizardFragments;
91
	
92
	// Cached copy of all server wizard UI modifier
93
	private static List<ServerCreationWizardPageExtension> serverCreationWizardPageExtensions;
90
94
91
	// cached initial selection provider
95
	// cached initial selection provider
92
	private static InitialSelectionProvider selectionProvider;
96
	private static InitialSelectionProvider selectionProvider;
Lines 716-721 Link Here
716
	}
720
	}
717
721
718
	/**
722
	/**
723
	 * Returns the list of server creation wizard modifier.
724
	 *
725
	 * @return the list of server creation wizard modifier, or an empty list if none could be found
726
	 */
727
	public static List<ServerCreationWizardPageExtension> getServerCreationWizardPageExtensions() {
728
		if (serverCreationWizardPageExtensions == null) {
729
			loadServerCreationWizardPageExtensions();
730
		}
731
		return serverCreationWizardPageExtensions;
732
	}
733
734
	/**
735
	 * Load the Server creation wizard page modifiers.
736
	 */
737
	private static synchronized void loadServerCreationWizardPageExtensions() {
738
		if (serverCreationWizardPageExtensions != null)
739
			return;
740
		
741
		Trace.trace(Trace.CONFIG, "->- Loading .serverCreationWizardPageExtension extension point ->-");
742
		serverCreationWizardPageExtensions = new ArrayList<ServerCreationWizardPageExtension>();
743
		IExtensionRegistry registry = Platform.getExtensionRegistry();
744
		IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerUIPlugin.PLUGIN_ID, "serverCreationWizardPageExtension");
745
		
746
		for (IConfigurationElement curConfigElement: cf) {
747
			try {
748
				// Create the class here already since the usage of the server wizard page will need to use all the extensions
749
				// in all the calls.  Therefore, there is no need for lazy loading here.
750
				ServerCreationWizardPageExtension curExtension = (ServerCreationWizardPageExtension)curConfigElement.createExecutableExtension("class");
751
				Trace.trace(Trace.CONFIG, "  Loaded serverCreationWizardPageExtension: " + cf[0].getAttribute("id") + ", loaded class=" + curExtension);
752
				if (curExtension != null)
753
					serverCreationWizardPageExtensions.add(curExtension);
754
755
			} catch (Throwable t) {
756
				Trace.trace(Trace.SEVERE, "  Could not load serverCreationWizardPageExtension: " + cf[0].getAttribute("id"), t);
757
			}
758
		}
759
		
760
		Trace.trace(Trace.CONFIG, "-<- Done loading .serverCreationWizardPageExtension extension point -<-");
761
	}
762
763
	/**
719
	 * Load the initial selection provider.
764
	 * Load the initial selection provider.
720
	 */
765
	 */
721
	private static synchronized void loadInitialSelectionProvider() {
766
	private static synchronized void loadInitialSelectionProvider() {
(-)serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java (-3 / +75 lines)
Lines 10-18 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.wst.server.ui.internal.wizard.page;
11
package org.eclipse.wst.server.ui.internal.wizard.page;
12
12
13
import java.beans.PropertyChangeEvent;
13
import java.lang.reflect.InvocationTargetException;
14
import java.lang.reflect.InvocationTargetException;
14
import java.util.ArrayList;
15
import java.util.ArrayList;
15
import java.util.List;
16
import java.util.List;
17
import java.util.Map;
16
18
17
import org.eclipse.core.runtime.CoreException;
19
import org.eclipse.core.runtime.CoreException;
18
import org.eclipse.core.runtime.IStatus;
20
import org.eclipse.core.runtime.IStatus;
Lines 43-59 Link Here
43
import org.eclipse.wst.server.core.*;
45
import org.eclipse.wst.server.core.*;
44
import org.eclipse.wst.server.core.internal.ServerWorkingCopy;
46
import org.eclipse.wst.server.core.internal.ServerWorkingCopy;
45
import org.eclipse.wst.server.core.util.SocketUtil;
47
import org.eclipse.wst.server.core.util.SocketUtil;
48
import org.eclipse.wst.server.ui.*;
46
import org.eclipse.wst.server.ui.internal.*;
49
import org.eclipse.wst.server.ui.internal.*;
50
import org.eclipse.wst.server.ui.AbstractUIControl.IUIControlListener;
51
import org.eclipse.wst.server.ui.AbstractUIControl.UIControlEntry;
47
import org.eclipse.wst.server.ui.internal.viewers.ServerTypeComposite;
52
import org.eclipse.wst.server.ui.internal.viewers.ServerTypeComposite;
48
import org.eclipse.wst.server.ui.internal.wizard.TaskWizard;
53
import org.eclipse.wst.server.ui.internal.wizard.TaskWizard;
49
import org.eclipse.wst.server.ui.internal.wizard.WizardTaskUtil;
54
import org.eclipse.wst.server.ui.internal.wizard.WizardTaskUtil;
50
import org.eclipse.wst.server.ui.internal.wizard.page.HostnameComposite.IHostnameSelectionListener;
55
import org.eclipse.wst.server.ui.internal.wizard.page.HostnameComposite.IHostnameSelectionListener;
56
import org.eclipse.wst.server.ui.wizard.ServerCreationWizardPageExtension;
51
import org.eclipse.wst.server.ui.wizard.WizardFragment;
57
import org.eclipse.wst.server.ui.wizard.WizardFragment;
52
58
53
/**
59
/**
54
 * Wizard page used to create a server and configuration at the same time.
60
 * Wizard page used to create a server and configuration at the same time.
55
 */
61
 */
56
public class NewManualServerComposite extends Composite {
62
public class NewManualServerComposite extends Composite implements IUIControlListener {
57
	public interface ServerSelectionListener {
63
	public interface ServerSelectionListener {
58
		public void serverSelected(IServerAttributes server);
64
		public void serverSelected(IServerAttributes server);
59
		public void runtimeSelected(IRuntime runtime);
65
		public void runtimeSelected(IRuntime runtime);
Lines 95-104 Link Here
95
	protected String lastHostname;
101
	protected String lastHostname;
96
	protected HostnameComposite manualHostComp;
102
	protected HostnameComposite manualHostComp;
97
	IHostnameSelectionListener hostnameListener;
103
	IHostnameSelectionListener hostnameListener;
104
	protected Label hostnameLabel;
98
	protected Text hostname;
105
	protected Text hostname;
99
	protected ControlDecoration hostnameDecoration;
106
	protected ControlDecoration hostnameDecoration;
100
107
101
	protected ServerCreationCache cache = new ServerCreationCache();
108
	protected ServerCreationCache cache = new ServerCreationCache();
109
	
110
	private IServerType oldServerType;
102
111
103
	/**
112
	/**
104
	 * Creates a new server and server configuration.  If the initial
113
	 * Creates a new server and server configuration.  If the initial
Lines 144-149 Link Here
144
		IWorkbenchHelpSystem whs = PlatformUI.getWorkbench().getHelpSystem();
153
		IWorkbenchHelpSystem whs = PlatformUI.getWorkbench().getHelpSystem();
145
		whs.setHelp(this, ContextIds.NEW_SERVER_WIZARD);
154
		whs.setHelp(this, ContextIds.NEW_SERVER_WIZARD);
146
		
155
		
156
		List<ServerCreationWizardPageExtension> pageExtensionLst = ServerUIPlugin.getServerCreationWizardPageExtensions();
157
		// Add the page modifier top section UI. 
158
		for (ServerCreationWizardPageExtension curPageExtension : pageExtensionLst) {
159
			curPageExtension.createControl(ServerCreationWizardPageExtension.UI_POSITION.TOP, this);
160
			curPageExtension.setUIControlListener(this);
161
		}
162
		
147
		serverTypeComposite = new ServerTypeComposite(this, moduleType, serverTypeId, new ServerTypeComposite.ServerTypeSelectionListener() {
163
		serverTypeComposite = new ServerTypeComposite(this, moduleType, serverTypeId, new ServerTypeComposite.ServerTypeSelectionListener() {
148
			public void serverTypeSelected(IServerType type2) {
164
			public void serverTypeSelected(IServerType type2) {
149
				handleTypeSelection(type2);
165
				handleTypeSelection(type2);
Lines 156-168 Link Here
156
		serverTypeComposite.setLayoutData(data);
172
		serverTypeComposite.setLayoutData(data);
157
		whs.setHelp(serverTypeComposite, ContextIds.NEW_SERVER_TYPE);
173
		whs.setHelp(serverTypeComposite, ContextIds.NEW_SERVER_TYPE);
158
		
174
		
175
		// Add the page modifier middle section UI. 
176
		for (ServerCreationWizardPageExtension curPageExtension : pageExtensionLst) {
177
			curPageExtension.createControl(ServerCreationWizardPageExtension.UI_POSITION.MIDDLE, this);
178
		}
179
		
159
		hostnameListener = 	new IHostnameSelectionListener() {
180
		hostnameListener = 	new IHostnameSelectionListener() {
160
			public void hostnameSelected(String selectedHostname) {
181
			public void hostnameSelected(String selectedHostname) {
161
				lastHostname = selectedHostname;
182
				lastHostname = selectedHostname;
162
				setHost(selectedHostname);
183
				setHost(selectedHostname);
163
			}
184
			}
164
	    };		
185
	    };		
165
		Label hostnameLabel = new Label(this, SWT.NONE);
186
		hostnameLabel = new Label(this, SWT.NONE);
166
		hostnameLabel.setText(Messages.hostname);
187
		hostnameLabel.setText(Messages.hostname);
167
		hostname = new Text(this, SWT.SINGLE | SWT.BORDER | SWT.CANCEL);
188
		hostname = new Text(this, SWT.SINGLE | SWT.BORDER | SWT.CANCEL);
168
		hostname.setText(HostnameComposite.LOCALHOST);
189
		hostname.setText(HostnameComposite.LOCALHOST);
Lines 298-303 Link Here
298
				}
319
				}
299
			}
320
			}
300
		});
321
		});
322
		
323
		// Add the page modifier bottom section UI. 
324
		for (ServerCreationWizardPageExtension curPageExtension : pageExtensionLst) {
325
			curPageExtension.createControl(ServerCreationWizardPageExtension.UI_POSITION.TOP, this);
326
		}
327
		
301
		Dialog.applyDialogFont(this);
328
		Dialog.applyDialogFont(this);
302
	}
329
	}
303
330
Lines 344-349 Link Here
344
		return returnValue;
371
		return returnValue;
345
	}
372
	}
346
373
374
	public String getControlStringValue(String controlId) {
375
		if (controlId != null && AbstractUIControl.PROP_HOSTNAME.equals(controlId)) {
376
			return host;
377
		}	
378
		return null;
379
	}
380
	
347
	public void setHost(String host) {
381
	public void setHost(String host) {
348
		this.host = host;
382
		this.host = host;
349
		if (serverTypeComposite == null)
383
		if (serverTypeComposite == null)
Lines 387-392 Link Here
387
			((ServerWorkingCopy)server).setDefaults(null);
421
			((ServerWorkingCopy)server).setDefaults(null);
388
			runtime = server.getRuntime();
422
			runtime = server.getRuntime();
389
			listener.runtimeSelected(runtime);
423
			listener.runtimeSelected(runtime);
424
			fireServerWorkingCopyChanged();
390
			return;
425
			return;
391
		}
426
		}
392
		
427
		
Lines 412-417 Link Here
412
				}
447
				}
413
				
448
				
414
				((ServerWorkingCopy)server).setDefaults(null);
449
				((ServerWorkingCopy)server).setDefaults(null);
450
				fireServerWorkingCopyChanged();
415
			}
451
			}
416
		} catch (CoreException ce) {
452
		} catch (CoreException ce) {
417
			Trace.trace(Trace.SEVERE, "Error creating server", ce);
453
			Trace.trace(Trace.SEVERE, "Error creating server", ce);
Lines 419-425 Link Here
419
			runtime = null;
455
			runtime = null;
420
			wizard.setMessage(ce.getLocalizedMessage(), IMessageProvider.ERROR);
456
			wizard.setMessage(ce.getLocalizedMessage(), IMessageProvider.ERROR);
421
		}
457
		}
422
		
458
			
423
		if (server == null)
459
		if (server == null)
424
			wizard.setMessage(Messages.wizErrorServerCreationError, IMessageProvider.ERROR);
460
			wizard.setMessage(Messages.wizErrorServerCreationError, IMessageProvider.ERROR);
425
	}
461
	}
Lines 550-555 Link Here
550
		}
586
		}
551
		listener.runtimeSelected(runtime);
587
		listener.runtimeSelected(runtime);
552
	}
588
	}
589
	
590
	protected void fireServerWorkingCopyChanged() {
591
		List<ServerCreationWizardPageExtension> pageExtensionLst = ServerUIPlugin.getServerCreationWizardPageExtensions();
592
		// Add the page modifier top section UI. 
593
		for (ServerCreationWizardPageExtension curPageExtension : pageExtensionLst) {
594
			curPageExtension.setServerWorkingCopy(getServer());
595
		}
596
	}
553
597
554
	/**
598
	/**
555
	 * Handle the server type selection.
599
	 * Handle the server type selection.
Lines 610-615 Link Here
610
			}
654
			}
611
		}
655
		}
612
		listener.serverSelected(server);
656
		listener.serverSelected(server);
657
		// Fire the property change event. 
658
		List<ServerCreationWizardPageExtension> pageExtensionLst = ServerUIPlugin.getServerCreationWizardPageExtensions();
659
		for (ServerCreationWizardPageExtension curPageExtension : pageExtensionLst) {
660
			curPageExtension.handlePropertyChanged(new PropertyChangeEvent(this, AbstractUIControl.PROP_SERVER_TYPE, oldServerType, serverType));
661
		}
662
		// Update the old server type value.
663
		oldServerType = serverType;
613
		wizard.update();
664
		wizard.update();
614
	}
665
	}
615
666
Lines 657-660 Link Here
657
		host = newHost;
708
		host = newHost;
658
		hostnameListener.hostnameSelected(host);
709
		hostnameListener.hostnameSelected(host);
659
	}
710
	}
711
712
	public void handleUIControlMapChanged(Map<String, UIControlEntry> controlMap) {
713
		if (controlMap == null) {
714
			return;
715
		}
716
		
717
		for (String curControlId : controlMap.keySet()) {
718
			if (AbstractUIControl.PROP_HOSTNAME.equals(curControlId)) {
719
				UIControlEntry curControlEntry = controlMap.get(curControlId);
720
				if (hostnameLabel != null)
721
					hostnameLabel.setEnabled(curControlEntry.isEnabled());
722
				
723
				if (hostname != null){
724
					if (curControlEntry.getNewTextValue() != null)
725
						hostname.setText(curControlEntry.getNewTextValue());
726
					
727
					hostname.setEnabled(curControlEntry.isEnabled());
728
				}
729
			}
730
		}
731
	}
660
}
732
}
(-)plugin.properties (+1 lines)
Lines 18-23 Link Here
18
extensionPointWizardFragments=Wizard Fragments
18
extensionPointWizardFragments=Wizard Fragments
19
extensionPointInitialSelectionProvider=Initial Selection Provider
19
extensionPointInitialSelectionProvider=Initial Selection Provider
20
extensionPointAudio=Audio
20
extensionPointAudio=Audio
21
extensionPointServerCreationWizardPageExtension=Server Creation Wizard Page Extension
21
22
22
# --------------- Wizards and Views ---------------
23
# --------------- Wizards and Views ---------------
23
24
(-)plugin.xml (+1 lines)
Lines 10-15 Link Here
10
  <extension-point id="initialSelectionProvider" name="%extensionPointInitialSelectionProvider" schema="schema/initialSelectionProvider.exsd"/>
10
  <extension-point id="initialSelectionProvider" name="%extensionPointInitialSelectionProvider" schema="schema/initialSelectionProvider.exsd"/>
11
  <extension-point id="audio" name="%extensionPointAudio" schema="schema/audio.exsd"/>
11
  <extension-point id="audio" name="%extensionPointAudio" schema="schema/audio.exsd"/>
12
  <extension-point id="serverToolTip" name="%extensionPointServerToolTip" schema="schema/serverToolTip.exsd"/>
12
  <extension-point id="serverToolTip" name="%extensionPointServerToolTip" schema="schema/serverToolTip.exsd"/>
13
  <extension-point id="serverCreationWizardPageExtension" name="%extensionPointServerCreationWizardPageExtension" schema="schema/serverCreationWizardPageExtension.exsd"/>
13
14
14
<extension point="org.eclipse.ui.newWizards">
15
<extension point="org.eclipse.ui.newWizards">
15
  <category
16
  <category
(-)serverui/org/eclipse/wst/server/ui/AbstractUIControl.java (+100 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2009 IBM Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     IBM Corporation - Initial API and implementation
10
 *******************************************************************************/
11
package org.eclipse.wst.server.ui;
12
13
import java.beans.PropertyChangeEvent;
14
import java.util.HashMap;
15
import java.util.Map;
16
17
/**
18
 * Abstract UI control that allows adopter to control the UI
19
 */
20
public abstract class AbstractUIControl {
21
	// Control map describing the UI that needs to be controlled. 
22
	public Map<String, UIControlEntry> controlMap = new HashMap<String, UIControlEntry>();
23
	// UI Control listener that listens to changes in event on GUI provided by this UI control
24
	public IUIControlListener controlListener;
25
	
26
	// The list of properties supported by the existing UI control.
27
	public static final String PROP_HOSTNAME = "PROP_HOSTNAME";
28
	public static final String PROP_SERVER_TYPE = "PROP_SERVERTYPE";
29
30
	/**
31
	 * UI Control listener that listens to changes in event on GUI provided by this UI control
32
	 * IUIControlListener
33
	 */
34
	public interface IUIControlListener {
35
		/**
36
		 * Handle the UI control map change by the listener based on the given control map.
37
		 * @param controlMap the control map that describes the UI control.
38
		 */
39
		public void handleUIControlMapChanged(Map<String, UIControlEntry> controlMap);
40
		/**
41
		 * Get the value of a given control UI on the listener's page.
42
		 * @param controlId control ID of the UI on the listener's page.
43
		 * @return the String value of the given control ID field.
44
		 */
45
		public String getControlStringValue(String controlId);
46
	}
47
	
48
	/**
49
	 * UI control entry class that describes the behaviour of the UI control of specific fields or widget.
50
	 */
51
	public class UIControlEntry {
52
		private boolean isEnabled;
53
		private String newTextValue;
54
		
55
		public UIControlEntry(boolean curIsEnabled, String curNewTextValue) {
56
			isEnabled = curIsEnabled;
57
			newTextValue = curNewTextValue;
58
		}
59
60
		/**
61
		 * Gives the new text value of the given field.
62
		 * @return the new text value of the given field. If the value returns <code>null</code>, then it means
63
		 * the field do not need to be modified.
64
		 */
65
		public String getNewTextValue() {
66
			return newTextValue;
67
		}
68
69
		/**
70
		 * Return if the UI control needs to be enabled.
71
		 * @return true if value needs to be enabled; otherwise, return false.
72
		 */
73
		public boolean isEnabled() {
74
			return isEnabled;
75
		}
76
	}
77
78
	/**
79
	 * Fire the control change event for the changed control map to take effect.
80
	 */
81
	protected void fireUIControlChangedEvent() {
82
		if (controlListener != null) {
83
			controlListener.handleUIControlMapChanged(controlMap);
84
		}
85
	}
86
	
87
	/**
88
	 * Allow UI Control to react based on a property change and change the UI control.
89
	 * @param event property change event that describes the change.
90
	 */
91
	public abstract void handlePropertyChanged(PropertyChangeEvent event);
92
	
93
	/**
94
	 * Set the UI control listener that listens to the changes initialed by this UI control. 
95
	 * @param curControlListener the UI control listener
96
	 */
97
	public void setUIControlListener(IUIControlListener curControlListener) {
98
		controlListener = curControlListener;
99
	}
100
}
(-)serverui/org/eclipse/wst/server/ui/wizard/ServerCreationWizardPageExtension.java (+44 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2009 IBM Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     IBM Corporation - Initial API and implementation
10
 *******************************************************************************/
11
package org.eclipse.wst.server.ui.wizard;
12
13
import org.eclipse.swt.widgets.Composite;
14
import org.eclipse.wst.server.core.IServerWorkingCopy;
15
import org.eclipse.wst.server.ui.AbstractUIControl;
16
17
/**
18
 * A modifier class that allow adopter to modify the behaviour of the server creation wizard page.
19
 * It also has places where adopter can inject custom GUI into the server creation wizard page.
20
 */
21
public abstract class ServerCreationWizardPageExtension extends AbstractUIControl {
22
	protected IServerWorkingCopy serverWc = null;
23
	
24
	/**
25
	 * The list of position on the server creation wizard page that allows inserting custom GUI.
26
	 * UI_POSITION
27
	 */
28
	public enum UI_POSITION { TOP, MIDDLE, BOTTOM }
29
30
	/**
31
	 * Create the customer UI on the specified position.
32
	 * @param position the position on the server creation wizard page that allows inserting custom GUI.
33
	 * @param parent parent composite.
34
	 */
35
	public abstract void createControl(UI_POSITION position, Composite parent);
36
	
37
	/**
38
	 * Set the server working copy to the control to allow extension to store the extension values.
39
	 * @param curServerWc
40
	 */
41
	public void setServerWorkingCopy(IServerWorkingCopy curServerWc) {
42
		serverWc = curServerWc;
43
	}
44
}
(-)schema/serverCreationWizardPageExtension.exsd (+138 lines)
Added Link Here
1
<?xml version='1.0' encoding='UTF-8'?>
2
<!-- Schema file written by PDE -->
3
<schema targetNamespace="org.eclipse.wst.server.ui" xmlns="http://www.w3.org/2001/XMLSchema">
4
<annotation>
5
      <appInfo>
6
         <meta.schema plugin="org.eclipse.wst.server.ui" id="serverCreationWizardPageExtension" name="Server Creation Wizard Page Extension"/>
7
      </appInfo>
8
      <documentation>
9
         This extension point provides a way to for adopters to modify the first page of the server creation wizard page.  It provides mechanisms to add custom UI to different sections of the server creation wizard page.  It also allow adopter to control the display of some existing UI on the server creation wizard page.
10
      </documentation>
11
   </annotation>
12
13
   <element name="extension">
14
      <annotation>
15
         <appInfo>
16
            <meta.element />
17
         </appInfo>
18
      </annotation>
19
      <complexType>
20
         <sequence>
21
            <element ref="serverCreationWizardPageExtension"/>
22
         </sequence>
23
         <attribute name="point" type="string" use="required">
24
            <annotation>
25
               <documentation>
26
                  a fully qualified identifier of the target extension point
27
               </documentation>
28
            </annotation>
29
         </attribute>
30
         <attribute name="id" type="string">
31
            <annotation>
32
               <documentation>
33
                  an optional identifier of the extension instance
34
               </documentation>
35
            </annotation>
36
         </attribute>
37
         <attribute name="name" type="string">
38
            <annotation>
39
               <documentation>
40
                  an optional name of the extension instance
41
               </documentation>
42
            </annotation>
43
         </attribute>
44
      </complexType>
45
   </element>
46
47
   <element name="serverCreationWizardPageExtension">
48
      <annotation>
49
         <appInfo>
50
            <meta.element labelAttribute="name"/>
51
         </appInfo>
52
      </annotation>
53
      <complexType>
54
         <attribute name="id" type="string" use="required">
55
            <annotation>
56
               <documentation>
57
                  specifies a unique identifier for this extension point
58
               </documentation>
59
            </annotation>
60
         </attribute>
61
         <attribute name="class" type="string" use="required">
62
            <annotation>
63
               <documentation>
64
                  specifies the fully qualified name of the Java class that extends &lt;samp&gt;org.eclipse.wst.server.ui.wizard.ServerCreationWizardPageExtension&lt;/samp&gt;. The class must have a public 0-arg constructor.
65
               </documentation>
66
               <appInfo>
67
                  <meta.attribute kind="java" basedOn="org.eclipse.wst.server.ui.wizard.ServerCreationWizardPageExtension:"/>
68
               </appInfo>
69
            </annotation>
70
         </attribute>
71
      </complexType>
72
   </element>
73
74
   <annotation>
75
      <appInfo>
76
         <meta.section type="apiInfo"/>
77
      </appInfo>
78
      <documentation>
79
         Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that extends &lt;code&gt;org.eclipse.wst.server.ui.editor.ServerCreationWizardPageExtension&lt;/code&gt;.
80
81
This extension point currently only supports the control on the following fields on the implementation of org.eclipse.wst.server.ui.AbstractUIControl.IUIControlListener.handleUIControlMapChanged(Map&lt;String, UIControlEntry&gt;):
82
Server&apos;s host name
83
84
This extension point currently only issue property change event on the following property change:
85
Server type selection change
86
      </documentation>
87
   </annotation>
88
89
   <annotation>
90
      <appInfo>
91
         <meta.section type="since"/>
92
      </appInfo>
93
      <documentation>
94
         &lt;b&gt;This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.&lt;/b&gt;
95
      </documentation>
96
   </annotation>
97
98
   <annotation>
99
      <appInfo>
100
         <meta.section type="examples"/>
101
      </appInfo>
102
      <documentation>
103
         3.2
104
      </documentation>
105
   </annotation>
106
107
   <annotation>
108
      <appInfo>
109
         <meta.section type="implementation"/>
110
      </appInfo>
111
      <documentation>
112
         The following is an example of the extension point:
113
114
&lt;pre&gt;
115
   &lt;extension
116
         point=&quot;org.eclipse.wst.server.ui.serverCreationWizardPageExtension&quot;&gt;
117
      &lt;serverCreationWizardPageExtension
118
            id=&quot;org.eclipse.wst.server.ui.test.serverCreationWizardPageExtension&quot;
119
                        class=&quot;org.eclipse.wst.server.ui.test.internal.serverCreationWizardPageExtension.ServerCreationWizardPageExtensionTest&quot;/&gt;
120
   &lt;/extension&gt;
121
&lt;/pre&gt;
122
      </documentation>
123
   </annotation>
124
125
   <annotation>
126
      <appInfo>
127
         <meta.section type="copyright"/>
128
      </appInfo>
129
      <documentation>
130
         Copyright (c) 2009 IBM Corporation and others.&lt;br&gt;
131
All rights reserved. This program and the accompanying materials are made 
132
available under the terms of the Eclipse Public License v1.0 which accompanies 
133
this distribution, and is available at 
134
&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
135
      </documentation>
136
   </annotation>
137
138
</schema>

Return to bug 296345