| /******************************************************************************* |
| * Copyright (c) 2004, 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 |
| * yyyymmdd bug Email and other contact information |
| * -------- -------- ----------------------------------------------------------- |
| * 20060407 135415 rsinha@ca.ibm.com - Rupam Kuehner |
| * 20060407 135443 joan@ca.ibm.com - Joan Haggarty |
| * 20060410 135442 kathy@ca.ibm.com - Kathy Chan |
| * 20060410 135441 joan@ca.ibm.com - Joan Haggarty |
| * 20060410 135562 joan@ca.ibm.com - Joan Haggarty |
| * 20060411 136167 kathy@ca.ibm.com - Kathy Chan |
| * 20060417 136390/136391/136159 joan@ca.ibm.com - Joan Haggarty |
| * 20060413 135581 rsinha@ca.ibm.com - Rupam Kuehner |
| * 20060420 136158 rsinha@ca.ibm.com - Rupam Kuehner |
| * 20060420 136705 rsinha@ca.ibm.com - Rupam Kuehner |
| * 20060420 136182 kathy@ca.ibm.com - Kathy Chan |
| * 20060420 137820 rsinha@ca.ibm.com - Rupam Kuehner |
| * 20060420 135912 joan@ca.ibm.com - Joan Haggarty |
| * 20060421 136761 rsinha@ca.ibm.com - Rupam Kuehner |
| * 20060424 138052 kathy@ca.ibm.com - Kathy Chan |
| * 20060425 137831 rsinha@ca.ibm.com - Rupam Kuehner |
| * 20060426 138519 joan@ca.ibm.com - Joan Haggarty |
| * 20060427 138058 joan@ca.ibm.com - Joan Haggarty |
| * 20060504 138035 joan@ca.ibm.com - Joan Haggarty |
| * 20060524 142276 joan@ca.ibm.com - Joan Haggarty |
| * 20060529 141422 kathy@ca.ibm.com - Kathy Chan |
| * 20060605 145081 joan@ca.ibm.com - Joan Haggarty |
| * 20060607 144826 joan@ca.ibm.com - Joan Haggarty |
| * 20060607 144049 joan@ca.ibm.com - Joan Haggarty |
| * 20060614 146270 joan@ca.ibm.com - Joan Haggarty |
| * 20060616 147317 joan@ca.ibm.com - Joan Haggarty |
| * 20060717 150577 makandre@ca.ibm.com - Andrew Mak |
| * 20060726 150865 sengpl@ca.ibm.com - Seng Phung-Lu |
| * 20060803 152486 makandre@ca.ibm.com - Andrew Mak, Typing WSDL in Service definition field is very slow |
| * 20060817 140017 makandre@ca.ibm.com - Andrew Mak, longer project or server/runtime strings do not resize wizard |
| * 20060825 135570 makandre@ca.ibm.com - Andrew Mak, Service implementation URL not displayed properly on first page |
| * 20060829 155441 makandre@ca.ibm.com - Andrew Mak, web service wizard hangs during resize |
| * 20060830 155114 pmoogk@ca.ibm.com - Peter Moogk, Updated patch for this defect. |
| * 20060831 155441 makandre@ca.ibm.com - Andrew Mak, Small tweak for this bug |
| * 20061003 159142 kathy@ca.ibm.com - Kathy Chan |
| * 20061212 164177 makandre@ca.ibm.com - Andrew Mak, Incorrect validation error complaining about runtime not supporting a project type |
| * 20061212 159911 makandre@ca.ibm.com - Andrew Mak, changing service definition resets some configuration fields |
| * 20070205 172687 makandre@ca.ibm.com - Andrew Mak, NPE in Scencario Defaults preferences page |
| * 20071130 203826 kathy@ca.ibm.com - Kathy Chan |
| * 20080205 170141 kathy@ca.ibm.com - Kathy Chan |
| * 20080215 216337 pmoogk@ca.ibm.com - Peter Moogk |
| * 20080301 221034 kathy@ca.ibm.com - Kathy Chan |
| * 20080312 147442 trungha@ca.ibm.com - Trung Ha |
| * 20080318 213330 trungha@ca.ibm.com - Trung, Non-conventional Java naming prevents creating Web Services (client) |
| * 20080326 198439 kathy@ca.ibm.com - Kathy Chan |
| * 20080402 198439 kathy@ca.ibm.com - Kathy Chan |
| * 20080416 215084 gilberta@ca.ibm.com - Gilbert Andrews |
| * 20080417 227599 kathy@ca.ibm.com - Kathy Chan |
| * 20080613 236523 makandre@ca.ibm.com - Andrew Mak, Overwrite setting on Web service wizard is coupled with preference |
| * 20090926 248448 mahutch@ca.ibm.com - Mark Hutchinson, Should not resize WS Wizard for long WSDL file names |
| *******************************************************************************/ |
| package org.eclipse.jst.ws.internal.creation.ui.widgets; |
| |
| |
| import org.eclipse.core.resources.IProject; |
| import org.eclipse.core.runtime.IStatus; |
| import org.eclipse.core.runtime.Status; |
| import org.eclipse.jface.dialogs.Dialog; |
| import org.eclipse.jface.resource.ImageRegistry; |
| import org.eclipse.jface.viewers.IStructuredSelection; |
| import org.eclipse.jface.viewers.StructuredSelection; |
| import org.eclipse.jface.window.Window; |
| import org.eclipse.jst.ws.internal.consumption.ui.ConsumptionUIMessages; |
| import org.eclipse.jst.ws.internal.consumption.ui.common.DefaultingUtils; |
| import org.eclipse.jst.ws.internal.consumption.ui.common.ValidationUtils; |
| import org.eclipse.jst.ws.internal.consumption.ui.plugin.WebServiceConsumptionUIPlugin; |
| import org.eclipse.jst.ws.internal.consumption.ui.widgets.IObjectSelectionLaunchable; |
| import org.eclipse.jst.ws.internal.consumption.ui.widgets.IPackable; |
| import org.eclipse.jst.ws.internal.consumption.ui.widgets.ProjectSelectionDialog; |
| import org.eclipse.jst.ws.internal.consumption.ui.widgets.WebServiceClientTypeWidget; |
| import org.eclipse.jst.ws.internal.consumption.ui.widgets.object.IObjectSelectionWidget; |
| import org.eclipse.jst.ws.internal.consumption.ui.widgets.object.ObjectSelectionOutputCommand; |
| import org.eclipse.jst.ws.internal.consumption.ui.widgets.object.ObjectSelectionRegistry; |
| import org.eclipse.jst.ws.internal.consumption.ui.widgets.object.ObjectSelectionWidget; |
| import org.eclipse.jst.ws.internal.consumption.ui.widgets.object.Timer; |
| import org.eclipse.jst.ws.internal.consumption.ui.widgets.runtime.ProjectSelectionWidget; |
| import org.eclipse.jst.ws.internal.consumption.ui.wizard.RuntimeServerSelectionDialog; |
| import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceImpl; |
| import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceRuntimeExtensionUtils2; |
| import org.eclipse.jst.ws.internal.context.ScenarioContext; |
| import org.eclipse.jst.ws.internal.creation.ui.plugin.WebServiceCreationUIPlugin; |
| import org.eclipse.jst.ws.internal.creation.ui.widgets.runtime.ServerRuntimeSelectionWidgetDefaultingCommand; |
| import org.eclipse.jst.ws.internal.data.LabelsAndIds; |
| import org.eclipse.jst.ws.internal.data.TypeRuntimeServer; |
| import org.eclipse.jst.ws.internal.plugin.WebServicePlugin; |
| import org.eclipse.jst.ws.internal.ui.common.UIUtils; |
| import org.eclipse.osgi.util.NLS; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.accessibility.Accessible; |
| import org.eclipse.swt.accessibility.AccessibleAdapter; |
| import org.eclipse.swt.accessibility.AccessibleControlAdapter; |
| import org.eclipse.swt.accessibility.AccessibleControlEvent; |
| import org.eclipse.swt.accessibility.AccessibleEvent; |
| import org.eclipse.swt.events.ControlEvent; |
| import org.eclipse.swt.events.ControlListener; |
| import org.eclipse.swt.events.ModifyEvent; |
| import org.eclipse.swt.events.ModifyListener; |
| import org.eclipse.swt.events.SelectionAdapter; |
| import org.eclipse.swt.events.SelectionEvent; |
| import org.eclipse.swt.events.SelectionListener; |
| import org.eclipse.swt.graphics.Rectangle; |
| import org.eclipse.swt.layout.GridData; |
| import org.eclipse.swt.layout.GridLayout; |
| import org.eclipse.swt.widgets.Button; |
| import org.eclipse.swt.widgets.Combo; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Display; |
| import org.eclipse.swt.widgets.Label; |
| import org.eclipse.swt.widgets.Listener; |
| import org.eclipse.swt.widgets.Scale; |
| import org.eclipse.swt.widgets.Text; |
| import org.eclipse.ui.IWorkbench; |
| import org.eclipse.ui.PlatformUI; |
| import org.eclipse.ui.forms.HyperlinkGroup; |
| import org.eclipse.ui.forms.HyperlinkSettings; |
| import org.eclipse.ui.forms.events.HyperlinkEvent; |
| import org.eclipse.ui.forms.events.IHyperlinkListener; |
| import org.eclipse.ui.forms.widgets.Hyperlink; |
| import org.eclipse.wst.command.internal.env.core.common.StatusUtils; |
| import org.eclipse.wst.command.internal.env.core.context.ResourceContext; |
| import org.eclipse.wst.command.internal.env.ui.widgets.PageInfo; |
| import org.eclipse.wst.command.internal.env.ui.widgets.SimpleWidgetDataContributor; |
| import org.eclipse.wst.command.internal.env.ui.widgets.WidgetContributor; |
| import org.eclipse.wst.command.internal.env.ui.widgets.WidgetContributorFactory; |
| import org.eclipse.wst.command.internal.env.ui.widgets.WidgetDataEvents; |
| import org.eclipse.wst.ws.internal.parser.wsil.WebServicesParser; |
| import org.eclipse.wst.ws.internal.wsrt.IWebServiceRuntimeChecker; |
| import org.eclipse.wst.ws.internal.wsrt.WebServiceScenario; |
| |
| public class ServerWizardWidget extends SimpleWidgetDataContributor implements Runnable, IPackable { |
| |
| //INFOPOPS |
| /* CONTEXT_ID WSWSCEN0001 for the Scenario Page */ |
| private String INFOPOP_WSWSCEN_PAGE = "WSWSCEN0001"; |
| /* CONTEXT_ID WSWSCEN0010 for the Web Service Type combo box of the Scenario Page */ |
| private String INFOPOP_WSWSCEN_COMBO_SERVICETYPE = "WSWSCEN0010"; |
| /* CONTEXT_ID WSWSCEN0014 for the monitor service checkbox of the Scenario page */ |
| private String INFOPOP_WSWSCEN_CHECKBOX_MONITOR_SERVICE = "WSWSCEN0014"; |
| /* CONTEXT_ID WSWSCEN0012 for the Launch UDDI check box of the Scenario Page */ |
| private String INFOPOP_WSWSCEN_CHECKBOX_LAUNCH_WS = "WSWSCEN0012"; |
| /* CONTEXT_ID WSWSCEN0020 for the Service Implemenation text field of the Scenario Page */ |
| private String INFOPOP_WSWSCEN_TEXT_SERVICE_IMPL = "WSWSCEN0020"; |
| /* CONTEXT_ID WSWSCEN0021 for theService Slider of the Scenario Page */ |
| private String INFOPOP_WSWSCEN_SCALE_SERVICE = "WSWSCEN0021"; |
| /* CONTEXT_ID WSWSCEN0022 for the Server hyperlink of the Scenario Page */ |
| private String INFOPOP_WSWSCEN_HYPERLINK_SERVER = "WSWSCEN0022"; |
| /* CONTEXT_ID WSWSCEN0023 for the Runtime hyperlink of the Scenario Page */ |
| private String INFOPOP_WSWSCEN_HYPERLINK_RUNTIME = "WSWSCEN0023"; |
| /* CONTEXT_ID WSWSCEN0024 for theProjects hyperlink of the Scenario Page */ |
| private String INFOPOP_WSWSCEN_HYPERLINK_PROJECTS = "WSWSCEN0024"; |
| /* CONTEXT_ID WSWSCEN0030 for the Overwrite Files checkbox of the Scenario Page */ |
| private String INFOPOP_WSWSCEN_CHECKBOX_OVERWRITE = "WSWSCEN0030"; |
| |
| private ScaleSelectionListener scaleSelectionListener = new ScaleSelectionListener(); |
| private Listener statusListener_; |
| private ModifyListener objectModifyListener_ ; |
| private int validationState_; |
| boolean validObjectSelection_ = true; |
| |
| private ImageRegistry imageReg_; |
| |
| private TypeRuntimeServer ids_; |
| private LabelsAndIds labelIds_; |
| private String serviceProjectName_; |
| private IProject initialProject_; |
| private String serviceEarProjectName_; |
| private String serviceComponentType_; |
| private WebServicesParser parser_; |
| private boolean needEar_; |
| |
| private boolean developService_; |
| private boolean assembleService_; |
| private boolean deployService_; |
| |
| private IStructuredSelection objectSelection_; |
| private Boolean testService_; |
| private Boolean startService_; |
| private Boolean installService_; |
| |
| private boolean displayPreferences_; |
| private boolean preferencesPage_; |
| |
| private Composite groupComposite_; |
| private Composite hCompService_; |
| private WebServiceClientTypeWidget clientWidget_; |
| private Label serviceLabel_; |
| private Combo webserviceType_; |
| private Text serviceImpl_; |
| private Scale serviceScale_; |
| private Label topologySpot_; |
| private Button browseButton_; |
| private Button publishButton_; |
| private Button monitorButton_; |
| private Button overwriteButton_; |
| private ServiceImplSelectionDialog browseDialog_; |
| private ProjectSelectionDialog projectDialog_; |
| private Hyperlink hLinkServiceRuntime_; |
| private Hyperlink hLinkServiceServer_; |
| private Hyperlink hLinkServiceProject_; |
| private Hyperlink hLinkServiceEAR_; |
| |
| private Object objectSelectionWidget_; //may be IObjectSelectionLaunchable or IObjectSelectionWidget |
| |
| private ResourceContext resourceContext_; |
| |
| private Timer timer_ = null; |
| |
| private UIUtils utils_ = new UIUtils("org.eclipse.jst.ws.creation.ui"); |
| |
| private boolean forceRefreshRuntime = false; |
| |
| private String GRAPHIC_SERVICE_0="icons/service_test.jpg"; //$NON-NLS-N$ |
| private String GRAPHIC_SERVICE_1="icons/service_run.jpg"; //$NON-NLS-N$ |
| private String GRAPHIC_SERVICE_2="icons/service_install.jpg"; //$NON-NLS-N$ |
| private String GRAPHIC_SERVICE_3="icons/service_deploy.jpg"; //$NON-NLS-N$ |
| private String GRAPHIC_SERVICE_4="icons/service_assemble.jpg"; //$NON-NLS-N$ |
| private String GRAPHIC_SERVICE_5="icons/service_develop.jpg"; //$NON-NLS-N$ |
| |
| private String ICON_SCALE_BG_0="icons/scale0_bground.jpg"; //$NON-NLS-N$ |
| private String ICON_SCALE_BG_1="icons/scale1_bground.jpg"; //$NON-NLS-N$ |
| private String ICON_SCALE_BG_2="icons/scale2_bground.jpg"; //$NON-NLS-N$ |
| private String ICON_SCALE_BG_3="icons/scale3_bground.jpg"; //$NON-NLS-N$ |
| private String ICON_SCALE_BG_4="icons/scale4_bground.jpg"; //$NON-NLS-N$ |
| private String ICON_SCALE_BG_5="icons/scale5_bground.jpg"; //$NON-NLS-N$ |
| private String ICON_SCALE_BG_6="icons/scale6_bground.jpg"; //$NON-NLS-N$ |
| |
| private String SERVICE_RUNTIME_PREFIX = ConsumptionUIMessages.LABEL_RUNTIMES_LIST ; |
| private String SERVICE_SERVER_PREFIX = ConsumptionUIMessages.LABEL_SERVERS_LIST; |
| private String SERVICE_PROJECT_PREFIX = ConsumptionUIMessages.LABEL_SERVICE_PROJECT; |
| private String SERVICE_EAR_PREFIX = ConsumptionUIMessages.LABEL_SERVICE_EAR_PROJECT; |
| |
| /** |
| * @param displayPreferences Set to true if preferences such as overwrite should be displayed on the wizard page |
| * @param prefPage Set to true if the widget is being used on the preferences page. Alters widget layout. |
| */ |
| public ServerWizardWidget(boolean displayPreferences, boolean prefPage) { |
| displayPreferences_ = displayPreferences; |
| preferencesPage_ = prefPage; |
| initImageRegistry(); |
| validationState_ = ValidationUtils.VALIDATE_ALL; |
| } |
| |
| private Composite serviceComposite_; |
| |
| /** |
| * Run this ServerWizardWidget, which validates the entry field values. |
| */ |
| public void run() { |
| |
| // do minimal check here, this call will determine if we at least |
| // have a "validObjectSelection_" |
| checkServiceImplTextStatus(); |
| |
| if (validObjectSelection_) |
| { |
| boolean refreshRuntime = (getWebServiceScenario() != WebServiceScenario.TOPDOWN); |
| |
| if (objectSelectionWidget_ instanceof IObjectSelectionLaunchable) |
| { |
| IObjectSelectionLaunchable launchable = (IObjectSelectionLaunchable)objectSelectionWidget_; |
| callObjectTransformation(launchable.getObjectSelection(), launchable.getProject(), launchable.getComponentName(), refreshRuntime); |
| } |
| else |
| { |
| IObjectSelectionWidget widget = (IObjectSelectionWidget)objectSelectionWidget_; |
| callObjectTransformation(widget.getObjectSelection(), widget.getProject(), widget.getComponentName(), refreshRuntime); |
| } |
| } |
| else |
| setObjectSelection(null); |
| |
| // do full validation after all transformations and calculations have occurred |
| validationState_ = ValidationUtils.VALIDATE_ALL; |
| statusListener_.handleEvent(null); |
| } |
| |
| /** |
| * Pack this widget and the client-side widget as well. |
| */ |
| private void packSelf() { |
| // don't need to call packIt(), since clientWidget_ has a callback to packIt() already. |
| clientWidget_.packIt(); |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jst.ws.internal.consumption.ui.widgets.IPackable#packIt() |
| */ |
| public void packIt() { |
| groupComposite_.pack(true); |
| utils_.horizontalResize(groupComposite_.getShell(), groupComposite_, UIUtils.DEFAULT_PADDING); |
| } |
| |
| public WidgetDataEvents addControls(Composite parent, |
| Listener statusListener) { |
| |
| statusListener_ = statusListener; |
| utils_.createInfoPop(parent, INFOPOP_WSWSCEN_PAGE); |
| |
| Composite typeComposite = utils_.createComposite(parent, 3); |
| |
| webserviceType_ = utils_.createCombo(typeComposite, |
| ConsumptionUIMessages.LABEL_WEBSERVICETYPE, |
| ConsumptionUIMessages.TOOLTIP_PWPR_COMBO_TYPE, |
| INFOPOP_WSWSCEN_COMBO_SERVICETYPE, SWT.SINGLE | SWT.BORDER |
| | SWT.READ_ONLY); |
| GridData gdata1 = (GridData) webserviceType_.getLayoutData(); |
| gdata1.horizontalSpan = 2; |
| webserviceType_.setLayoutData(gdata1); |
| |
| webserviceType_.addSelectionListener(new SelectionListener(){ |
| public void widgetDefaultSelected(SelectionEvent e) {} |
| |
| public void widgetSelected(SelectionEvent e) { |
| String oldTypeId = ids_.getTypeId(); |
| int currentSelectionIdx = webserviceType_.getSelectionIndex(); |
| String currentTypeId = labelIds_.getIds_()[currentSelectionIdx]; |
| if (!oldTypeId.equals(currentTypeId)) { |
| ids_.setTypeId(currentTypeId); |
| |
| // don't need to refresh runtime or validate fields if we are on the preference page, just return |
| if (preferencesPage_) |
| return; |
| |
| int oldScenario = WebServiceRuntimeExtensionUtils2.getScenarioFromTypeId(oldTypeId); |
| int currentScenario = WebServiceRuntimeExtensionUtils2.getScenarioFromTypeId(currentTypeId); |
| |
| objectSelectionWidget_ = getSelectionWidget(); |
| // change the label for the service |
| // implementation/definition based on the web service type |
| handleTypeChange(); |
| |
| // After bug 159911, we will not refresh the runtime in TOPDOWN scenario unless we absolutely |
| // have to. Therefore, if we are switching from another scenario type, we should check if the |
| // current selections are valid for this TOPDOWN scenario, if not, try to pick a more suitable |
| // runtime. |
| if (currentScenario == WebServiceScenario.TOPDOWN) { |
| validationState_ = ValidationUtils.VALIDATE_SERVER_RUNTIME_CHANGES; |
| |
| // this will force a refresh the next time the wsdl is changed |
| forceRefreshRuntime = !checkErrorStatus().isOK(); |
| } |
| |
| //if the web service type change is from one top-down type to another |
| //top-down type leave the object selection field in tact and refresh |
| //the server/runtime project defaulting. |
| //Otherwise clear the object selection field since it's value is not valid anymore |
| if (oldScenario==WebServiceScenario.TOPDOWN && currentScenario==WebServiceScenario.TOPDOWN) |
| { |
| // if switching from one TOPDOWN scenario to another TOPDOWN scenario and |
| // we've determined that the current runtime selection is not suitable, we |
| // can refresh the runtime now (don't need to wait for the next time the |
| // wsdl is changed). |
| if (forceRefreshRuntime) { |
| refreshServerRuntimeSelection(); |
| forceRefreshRuntime = false; |
| } |
| } |
| else |
| { |
| //clear the object selection field |
| // serviceImpl may be null if on the preferences page |
| if (serviceImpl_ != null) |
| { |
| serviceImpl_.removeModifyListener(objectModifyListener_); |
| serviceImpl_.setText(""); |
| setObjectSelection(null); |
| serviceImpl_.addModifyListener(objectModifyListener_); |
| } |
| } |
| validationState_ = ValidationUtils.VALIDATE_ALL; |
| statusListener_.handleEvent(null); |
| |
| } |
| } |
| |
| }); |
| |
| // Create text field and browse for object selection if not on preferences page |
| if (!preferencesPage_) |
| { |
| //text of this label is based on the web service type selected in webserviceType_ combo |
| serviceLabel_ = new Label( typeComposite, SWT.WRAP); |
| serviceLabel_.setText(ConsumptionUIMessages.LABEL_WEBSERVICEIMPL); |
| serviceLabel_.setToolTipText(ConsumptionUIMessages.TOOLTIP_WSWSCEN_TEXT_IMPL); |
| |
| serviceImpl_ = new Text(typeComposite, SWT.LEFT | SWT.BORDER ); |
| GridData griddata = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL); |
| griddata.widthHint = 225; |
| serviceImpl_.setLayoutData( griddata ); |
| serviceImpl_.setToolTipText(ConsumptionUIMessages.TOOLTIP_WSWSCEN_TEXT_IMPL); |
| utils_.createInfoPop(serviceImpl_, INFOPOP_WSWSCEN_TEXT_SERVICE_IMPL); |
| |
| objectModifyListener_ = new ModifyListener(){ |
| public void modifyText(ModifyEvent e) { |
| if (serviceImpl_.getText().indexOf(':') > 0) { |
| timer_ = Timer.newInstance(timer_, Display.getCurrent(), ServerWizardWidget.this); |
| timer_.startTimer(); |
| } |
| else |
| run(); |
| } |
| }; |
| |
| serviceImpl_.addModifyListener(objectModifyListener_); |
| |
| browseButton_ = utils_.createPushButton(typeComposite, |
| ConsumptionUIMessages.BUTTON_BROWSE, ConsumptionUIMessages.TOOLTIP_WSWSCEN_BUTTON_BROWSE_IMPL, null); |
| |
| IWorkbench workbench = PlatformUI.getWorkbench(); |
| browseDialog_ = new ServiceImplSelectionDialog(workbench.getActiveWorkbenchWindow().getShell(), |
| new PageInfo(ConsumptionUIMessages.DIALOG_TITILE_SERVICE_IMPL_SELECTION, "", |
| new WidgetContributorFactory() |
| { |
| public WidgetContributor create() |
| { |
| return new ObjectSelectionWidget(); |
| } |
| })); |
| browseButton_.addSelectionListener(new ServiceImplBrowseListener()); |
| } |
| // Service Lifecycle section - scales for service & client, graphic |
| |
| groupComposite_ = new Composite(parent, SWT.NONE); |
| GridLayout gclayout = new GridLayout(); |
| gclayout.numColumns = 2; |
| gclayout.horizontalSpacing=0; |
| gclayout.marginHeight=0; |
| gclayout.marginBottom=5; |
| groupComposite_.setLayout( gclayout ); |
| GridData gcGridData = new GridData(SWT.BEGINNING, SWT.BEGINNING, true, true); |
| groupComposite_.setLayoutData(gcGridData); |
| |
| groupComposite_.addControlListener(new ControlListener() |
| { |
| public void controlMoved(ControlEvent e) { |
| // TODO Auto-generated method stub |
| |
| } |
| public void controlResized(ControlEvent e) { |
| groupComposite_.pack(true); |
| } |
| }); |
| |
| serviceComposite_ = new Composite(groupComposite_, SWT.NONE); |
| GridLayout gridlayout = new GridLayout(); |
| gridlayout.numColumns = 2; |
| gridlayout.horizontalSpacing=0; |
| gridlayout.marginHeight=0; |
| serviceComposite_.setLayout( gridlayout ); |
| GridData scGridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); |
| serviceComposite_.setLayoutData(scGridData); |
| |
| serviceComposite_.setToolTipText(ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_SERVICE); |
| |
| |
| serviceScale_ = new Scale(serviceComposite_, SWT.VERTICAL | SWT.BORDER); |
| utils_.createInfoPop(serviceScale_, INFOPOP_WSWSCEN_SCALE_SERVICE); |
| serviceScale_.setMinimum(0); |
| serviceScale_.setMaximum(6); |
| serviceScale_.setIncrement(1); |
| serviceScale_.setPageIncrement(1); |
| serviceScale_.addSelectionListener(scaleSelectionListener); |
| serviceScale_.setSelection(getServiceGeneration()); |
| serviceScale_.setToolTipText(ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_SERVICE); |
| |
| Accessible accessibleScale = serviceScale_.getAccessible(); |
| accessibleScale.addAccessibleListener(new AccessibleAdapter(){ |
| // return a string that describes what to do with the slider |
| // this is read by the screen reader when the slider first gets focus |
| public void getName(AccessibleEvent e) { |
| e.result = ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_SERVICE; |
| } |
| }); |
| accessibleScale.addAccessibleControlListener(new AccessibleControlAdapter(){ |
| // return a meaningful string when the screen reader |
| // attempts to get the value from the service scale |
| public void getValue(AccessibleControlEvent e) { |
| int selection = serviceScale_.getSelection(); |
| switch (selection) { |
| case 0: |
| e.result = ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_TEST; |
| break; |
| case 1: |
| e.result = ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_RUN; |
| break; |
| case 2: |
| e.result = ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_INSTALL; |
| break; |
| case 3: |
| e.result = ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_DEPLOY; |
| break; |
| case 4: |
| e.result = ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_ASSEMBLE; |
| break; |
| case 5: |
| case 6: |
| e.result = ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_DEVELOP; |
| break; |
| default: |
| break; |
| } |
| } |
| }); |
| |
| GridData layoutData1 = new GridData(); |
| layoutData1.horizontalAlignment=SWT.CENTER; |
| layoutData1.verticalAlignment = SWT.BEGINNING; |
| Rectangle scaleR = (imageReg_.get(ICON_SCALE_BG_0)).getBounds(); |
| layoutData1.heightHint=scaleR.height; |
| layoutData1.widthHint=scaleR.width+1; |
| serviceScale_.setLayoutData(layoutData1); |
| |
| topologySpot_ = new Label(serviceComposite_, SWT.BORDER | SWT.TOP ); |
| topologySpot_.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); |
| topologySpot_.setToolTipText(ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_SERVICE); |
| |
| GridData layoutData2 = new GridData(); |
| layoutData2.horizontalAlignment=SWT.BEGINNING; |
| layoutData2.verticalAlignment = SWT.BEGINNING; |
| Rectangle topR = (imageReg_.get(GRAPHIC_SERVICE_0)).getBounds(); |
| layoutData2.heightHint=topR.height; |
| layoutData2.widthHint=topR.width; |
| topologySpot_.setLayoutData(layoutData2); |
| |
| setGraphics(getServiceGeneration()); |
| |
| hCompService_ = utils_.createComposite(groupComposite_, 1); |
| |
| Label serviceDetailsLabel = new Label(hCompService_, SWT.NONE); |
| serviceDetailsLabel.setText(ConsumptionUIMessages.LABEL_SUMMARY); |
| |
| hLinkServiceServer_= new Hyperlink(hCompService_, SWT.NULL); |
| utils_.createInfoPop(hLinkServiceServer_, INFOPOP_WSWSCEN_HYPERLINK_SERVER); |
| hLinkServiceServer_.setToolTipText(ConsumptionUIMessages.TOOLTIP_PWRS_TEXT_SERVER); |
| hLinkServiceServer_.addHyperlinkListener(new IHyperlinkListener(){ |
| public void linkActivated(HyperlinkEvent e){ |
| launchRuntimeSelectionDialog(false, true); |
| } |
| public void linkEntered(HyperlinkEvent e){} |
| public void linkExited(HyperlinkEvent e){} |
| }); |
| |
| hLinkServiceRuntime_ = new Hyperlink(hCompService_, SWT.NULL); |
| utils_.createInfoPop(hLinkServiceRuntime_, INFOPOP_WSWSCEN_HYPERLINK_RUNTIME); |
| hLinkServiceRuntime_.setToolTipText(ConsumptionUIMessages.TOOLTIP_PWRS_TEXT_RUNTIME); |
| hLinkServiceRuntime_.addHyperlinkListener(new IHyperlinkListener(){ |
| public void linkActivated(HyperlinkEvent e){ |
| launchRuntimeSelectionDialog(false); |
| } |
| public void linkEntered(HyperlinkEvent e){} |
| public void linkExited(HyperlinkEvent e){} |
| }); |
| |
| IWorkbench workbench = PlatformUI.getWorkbench(); |
| projectDialog_ = new ProjectSelectionDialog(workbench.getActiveWorkbenchWindow().getShell(), |
| new PageInfo(ConsumptionUIMessages.DIALOG_TITILE_SERVICE_PROJECT_SETTINGS, "", |
| new WidgetContributorFactory() |
| { |
| public WidgetContributor create() |
| { |
| return new ProjectSelectionWidget(); |
| } |
| })); |
| |
| hLinkServiceProject_= new Hyperlink(hCompService_, SWT.NULL); |
| utils_.createInfoPop(hLinkServiceRuntime_, INFOPOP_WSWSCEN_HYPERLINK_PROJECTS); |
| hLinkServiceProject_.setToolTipText(ConsumptionUIMessages.TOOLTIP_WSWSCEN_SERVICEPROJECT_LINK); |
| hLinkServiceProject_.addHyperlinkListener(new IHyperlinkListener(){ |
| public void linkActivated(HyperlinkEvent e){ |
| launchProjectDialog(); |
| } |
| public void linkEntered(HyperlinkEvent e){} |
| public void linkExited(HyperlinkEvent e){} |
| }); |
| |
| hLinkServiceEAR_= new Hyperlink(hCompService_, SWT.NULL); |
| utils_.createInfoPop(hLinkServiceRuntime_, INFOPOP_WSWSCEN_HYPERLINK_PROJECTS); |
| hLinkServiceEAR_.setToolTipText(ConsumptionUIMessages.TOOLTIP_WSWSCEN_SERVICEPROJECT_LINK); |
| hLinkServiceEAR_.addHyperlinkListener(new IHyperlinkListener(){ |
| public void linkActivated(HyperlinkEvent e){ |
| launchProjectDialog(); |
| } |
| public void linkEntered(HyperlinkEvent e){} |
| public void linkExited(HyperlinkEvent e){} |
| }); |
| |
| hLinkServiceServer_.setText(SERVICE_SERVER_PREFIX); |
| hLinkServiceRuntime_.setText(SERVICE_RUNTIME_PREFIX); |
| hLinkServiceProject_.setText(SERVICE_PROJECT_PREFIX); |
| hLinkServiceEAR_.setText(SERVICE_EAR_PREFIX); |
| |
| HyperlinkGroup serverRuntimeGroup = new HyperlinkGroup(Display.getCurrent()); |
| |
| serverRuntimeGroup.add(hLinkServiceServer_); |
| serverRuntimeGroup.add(hLinkServiceRuntime_); |
| serverRuntimeGroup.add(hLinkServiceProject_); |
| serverRuntimeGroup.add(hLinkServiceEAR_); |
| serverRuntimeGroup.setHyperlinkUnderlineMode(HyperlinkSettings.UNDERLINE_ALWAYS); |
| |
| utils_.createHorizontalSeparator(parent, 1); |
| |
| // Add client widgets... |
| clientWidget_ = new WebServiceClientTypeWidget(false); |
| clientWidget_.addControls(parent, statusListener ); |
| clientWidget_.setPackable(this); |
| clientWidget_.enableClientSlider(serviceScale_.getSelection()<=ScenarioContext.WS_START); |
| |
| // Advanced buttons section |
| utils_.createHorizontalSeparator(parent, 3); |
| |
| Composite advancedButtonPanel = utils_.createComposite(parent, 1); |
| |
| publishButton_ = utils_.createCheckbox(advancedButtonPanel, |
| ConsumptionUIMessages.BUTTON_WSWSCEN_PUBLISH, ConsumptionUIMessages.TOOLTIP_PWPR_CHECKBOX_LAUNCH_WS, INFOPOP_WSWSCEN_CHECKBOX_LAUNCH_WS); |
| monitorButton_ = utils_.createCheckbox(advancedButtonPanel, |
| ConsumptionUIMessages.CHECKBOX_MONITOR_WEBSERVICE, ConsumptionUIMessages.TOOLTIP_PWPR_CHECKBOX_MONITOR_SERVICE, INFOPOP_WSWSCEN_CHECKBOX_MONITOR_SERVICE); |
| |
| if (displayPreferences_ && getResourceContext().isOverwriteFilesEnabled()) { |
| utils_.createHorizontalSeparator(parent, 1); |
| Composite prefButtonPanel = utils_.createComposite(parent, 1); |
| overwriteButton_ = utils_.createCheckbox(prefButtonPanel, |
| ConsumptionUIMessages.CHECKBOX_OVERWRITE_FILES, ConsumptionUIMessages.TOOLTIP_WSWSCEN_BUTTON_OVERWRITE_FILES, INFOPOP_WSWSCEN_CHECKBOX_OVERWRITE); |
| overwriteButton_.setSelection(getResourceContext() |
| .isOverwriteFilesEnabled()); |
| overwriteButton_.addSelectionListener(new SelectionAdapter() { |
| public void widgetSelected(SelectionEvent e) { |
| getResourceContext().setOverwriteFilesEnabled(overwriteButton_.getSelection()); |
| } |
| }); |
| } |
| |
| return this; |
| } |
| |
| private void launchProjectDialog() |
| { |
| String currentProjectName = getServiceProjectName(); |
| String currentEarProjectName = getServiceEarProjectName(); |
| String currentProjectType = getServiceComponentType(); |
| boolean currentNeedEar = getServiceNeedEAR(); |
| |
| projectDialog_.setProjectName(currentProjectName); |
| projectDialog_.setEarProjectName(currentEarProjectName); |
| projectDialog_.setProjectComponentType(currentProjectType); |
| projectDialog_.setNeedEAR(currentNeedEar); |
| |
| int status = projectDialog_.open(); |
| if (status == Window.OK) |
| { |
| String newProjectName = projectDialog_.getProjectName(); |
| String newEarProjectName = projectDialog_.getEarProjectName(); |
| String newProjectType = projectDialog_.getProjectComponentType(); |
| boolean newNeedEar = projectDialog_.getNeedEAR(); |
| |
| //Update project settings and validate page if selections changed. |
| if (!newProjectName.equals(currentProjectName) |
| || !newEarProjectName.equals(currentEarProjectName) |
| || !newProjectType.equals(currentProjectType) |
| || newNeedEar != currentNeedEar) { |
| setServiceProjectName(newProjectName); |
| setServiceEarProjectName(newEarProjectName); |
| setServiceComponentType(newProjectType); |
| setServiceNeedEAR(newNeedEar); |
| validationState_ = (new ValidationUtils()).getNewValidationState(validationState_, ValidationUtils.VALIDATE_PROJECT_CHANGES); |
| statusListener_.handleEvent(null); |
| } |
| |
| /*check to see if text has changed for project and EAR |
| if so, repaint links */ |
| if (!newProjectName.equals(currentProjectName)) |
| { |
| hLinkServiceProject_.pack(true); |
| packSelf(); |
| } |
| if (!newEarProjectName.equals(currentEarProjectName)) |
| { |
| hLinkServiceEAR_.pack(true); |
| packSelf(); |
| } |
| } |
| } |
| |
| private void launchRuntimeSelectionDialog(boolean clientContext) |
| { |
| launchRuntimeSelectionDialog(clientContext, false); |
| } |
| |
| private void launchRuntimeSelectionDialog(boolean clientContext, boolean selectServerFirst) |
| { |
| byte mode = clientContext ? (byte)1 : (byte)0; |
| |
| //TODO: jvh - investigate - don't think j2ee version shouldn't be hard coded (last parm) |
| // question - where to pick it up from? |
| //Remember the current values |
| TypeRuntimeServer currentServiceTRS = getServiceTypeRuntimeServer(); |
| IWorkbench workbench = PlatformUI.getWorkbench(); |
| RuntimeServerSelectionDialog rssd = new RuntimeServerSelectionDialog( |
| workbench.getActiveWorkbenchWindow().getShell(), mode, currentServiceTRS, "14"); |
| rssd.setSelectServerFirst(selectServerFirst); |
| int result = rssd.open(); |
| if (result == Window.OK) |
| { |
| TypeRuntimeServer newServiceTRS = rssd.getTypeRuntimeServer(); |
| if (!currentServiceTRS.equals(newServiceTRS)) |
| { |
| setServiceTypeRuntimeServer(newServiceTRS); |
| refreshClientServerRuntimeSelection(); |
| validationState_ = (new ValidationUtils()).getNewValidationState(validationState_, ValidationUtils.VALIDATE_SERVER_RUNTIME_CHANGES); |
| clientWidget_.setValidationState(ValidationUtils.VALIDATE_SERVER_RUNTIME_CHANGES); |
| statusListener_.handleEvent(null); //Revalidate the page since server/runtime selections changed. |
| } |
| |
| } |
| } |
| |
| public void setClientTypeRuntimeServer(TypeRuntimeServer ids) { |
| clientWidget_.setTypeRuntimeServer( ids ); |
| } |
| |
| public TypeRuntimeServer getClientTypeRuntimeServer() { |
| return clientWidget_.getTypeRuntimeServer(); |
| } |
| |
| public void setInstallClient(Boolean install) { |
| clientWidget_.setInstallClient( install ); |
| } |
| |
| public Boolean getInstallClient() { |
| return clientWidget_.getInstallClient(); |
| } |
| |
| public void setStartClient(Boolean startClient) { |
| clientWidget_.setStartClient( startClient ); |
| } |
| |
| public Boolean getStartClient() { |
| return clientWidget_.getStartClient(); |
| } |
| |
| public void setTestClient(Boolean testClient) { |
| clientWidget_.setTestClient( testClient ); |
| } |
| |
| public Boolean getTestClient() { |
| return clientWidget_.getTestClient(); |
| } |
| |
| public void setDevelopClient(boolean develop) { |
| clientWidget_.setDevelopClient( develop ); |
| } |
| |
| public boolean getDevelopClient() { |
| return clientWidget_.getDevelopClient(); |
| } |
| |
| public void setAssembleClient(boolean assemble) { |
| clientWidget_.setAssembleClient( assemble ); |
| } |
| |
| public boolean getAssembleClient() { |
| return clientWidget_.getAssembleClient(); |
| } |
| |
| public void setDeployClient(boolean deploy) { |
| clientWidget_.setDeployClient( deploy ); |
| } |
| |
| public boolean getDeployClient() { |
| return clientWidget_.getDeployClient(); |
| } |
| |
| private void handleTypeChange() |
| { |
| if (!preferencesPage_) { |
| int scenario = getWebServiceScenario(); |
| |
| if (scenario == WebServiceScenario.BOTTOMUP) |
| { |
| serviceLabel_.setText(ConsumptionUIMessages.LABEL_WEBSERVICEIMPL); |
| } |
| else if (scenario == WebServiceScenario.TOPDOWN) |
| { |
| serviceLabel_.setText(ConsumptionUIMessages.LABEL_WEBSERVICEDEF); |
| } |
| } |
| } |
| |
| public void setServiceTypeRuntimeServer(TypeRuntimeServer ids) { |
| LabelsAndIds labelIds = WebServiceRuntimeExtensionUtils2 |
| .getServiceTypeLabels(); |
| // rskreg |
| int selection = 0; |
| String[] serviceIds = labelIds.getIds_(); |
| String selectedId = ids.getTypeId(); |
| |
| webserviceType_.setItems(labelIds.getLabels_()); |
| |
| // Now find the selected one. |
| for (int index = 0; index < serviceIds.length; index++) { |
| if (selectedId.equals(serviceIds[index])) { |
| selection = index; |
| break; |
| } |
| } |
| webserviceType_.select(selection); |
| |
| ids_ = ids; |
| |
| if (ids_ != null) |
| { |
| String serviceServerText = ""; |
| String serverId = ids_.getServerId(); |
| if (serverId != null && serverId.length()>0) |
| { |
| serviceServerText = WebServiceRuntimeExtensionUtils2.getServerLabelById(serverId); |
| } |
| String serviceRuntimeText = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(ids_.getRuntimeId()); |
| |
| String currentServerText = hLinkServiceServer_.getText(); |
| String currentRuntimeText = hLinkServiceRuntime_.getText(); |
| String newServerText = SERVICE_SERVER_PREFIX + " " + serviceServerText; |
| String newRuntimeText = SERVICE_RUNTIME_PREFIX + " " + serviceRuntimeText; |
| hLinkServiceServer_.setText(newServerText); |
| hLinkServiceRuntime_.setText(newRuntimeText); |
| |
| /*check to see if text has changed for server or runtime |
| if so, repaint links */ |
| if (!newServerText.equals(currentServerText)) |
| { |
| hLinkServiceServer_.pack(true); |
| packSelf(); |
| } |
| |
| if (!newRuntimeText.equals(currentRuntimeText)) |
| { |
| hLinkServiceRuntime_.pack(true); |
| packSelf(); |
| } |
| } |
| labelIds_ = labelIds; |
| handleTypeChange(); |
| |
| if (projectDialog_ != null) |
| projectDialog_.setTypeRuntimeServer(ids_); |
| |
| |
| //When the server changes, the state of needEar could change. |
| //If the the server change results in a change in the state of needEar, |
| //update needEar and serviceEarProjectName. |
| ValidationUtils vu = new ValidationUtils(); |
| boolean oldNeedEar = getServiceNeedEAR(); |
| boolean serviceProjectOrProjectTypeNeedsEar; |
| |
| if (!oldNeedEar) |
| { |
| //If an EAR was not needed previously it could have been because of the project/project type or the server. |
| //If it was because of the project/project type, changing the server should have no impact |
| //on the state of needEar. |
| serviceProjectOrProjectTypeNeedsEar = vu.projectOrProjectTypeNeedsEar(getServiceProjectName(), getServiceComponentType()); |
| } |
| else |
| { |
| serviceProjectOrProjectTypeNeedsEar = true; |
| } |
| |
| //boolean serviceProjectOrProjectTypeNeedsEar = vu.projectOrProjectTypeNeedsEar(getServiceProjectName(), getServiceComponentType()); |
| if (serviceProjectOrProjectTypeNeedsEar) |
| { |
| //Could not rule out need for an Ear from the project/project type so changing the server |
| //may impact the need for an Ear. |
| |
| boolean currentServiceServerNeedsEar = vu.serverNeedsEAR(getServiceTypeRuntimeServer().getServerId()); |
| if (oldNeedEar != currentServiceServerNeedsEar) |
| { |
| //Update needEar and serviceEarProjectName. |
| if (currentServiceServerNeedsEar) |
| { |
| //Calculate a reasonable default for the Ear project name |
| String earProjectName = DefaultingUtils.getDefaultEARProjectName(getServiceProjectName()); |
| setServiceNeedEAR(currentServiceServerNeedsEar); |
| setServiceEarProjectName(earProjectName); |
| } |
| else |
| { |
| setServiceNeedEAR(currentServiceServerNeedsEar); |
| setServiceEarProjectName(""); |
| } |
| |
| } |
| } |
| } |
| |
| public TypeRuntimeServer getServiceTypeRuntimeServer() { |
| return ids_; |
| } |
| |
| public void setServiceGeneration(int value) |
| { |
| serviceScale_.setSelection(value); |
| setGraphics(value); |
| |
| //enable client widget based on service scale setting |
| clientWidget_.enableClientSlider(value<=ScenarioContext.WS_START); |
| |
| /*for popup case need to make sure that the UI is refreshed based on |
| changes to data*/ |
| packSelf(); |
| } |
| |
| public int getServiceGeneration() |
| { |
| return serviceScale_.getSelection(); |
| } |
| |
| public boolean getDevelopService() { |
| return developService_; |
| } |
| |
| public void setDevelopService(boolean developService) { |
| this.developService_ = developService; |
| } |
| |
| public boolean getAssembleService() { |
| return assembleService_; |
| } |
| |
| public void setAssembleService(boolean assembleService) { |
| this.assembleService_ = assembleService; |
| } |
| |
| public boolean getDeployService() { |
| return deployService_; |
| } |
| |
| public void setDeployService(boolean deployService) { |
| this.deployService_ = deployService; |
| } |
| |
| public Boolean getStartService(){ |
| return startService_; |
| } |
| |
| public void setStartService(Boolean value) { |
| startService_=value; |
| } |
| |
| public Boolean getInstallService() { |
| return installService_; |
| } |
| |
| public void setInstallService(Boolean value) { |
| installService_=value; |
| } |
| |
| public Boolean getTestService() { |
| return |
| new Boolean( testService_.booleanValue() || clientWidget_.getTestClient().booleanValue()); |
| } |
| |
| public void setTestService(Boolean value) { |
| testService_= value; |
| } |
| public Boolean getMonitorService() { |
| return new Boolean(monitorButton_.getSelection()); |
| } |
| |
| public void setMonitorService(Boolean value) { |
| monitorButton_.setSelection(value.booleanValue()); |
| } |
| |
| public Boolean getPublishService() { |
| return new Boolean(publishButton_.getSelection()); |
| } |
| |
| public void setPublishService(Boolean value) { |
| publishButton_.setSelection( value.booleanValue() ); |
| } |
| |
| public Boolean getGenerateProxy() { |
| return new Boolean(clientWidget_.getGenerateProxy()); |
| } |
| |
| public void setClientGeneration(int value) |
| { |
| clientWidget_.setClientGeneration(value); |
| /*for popup case need to make sure that the UI is refreshed based on |
| changes to data*/ |
| packSelf(); |
| } |
| |
| public String getClientEarProjectName() |
| { |
| return clientWidget_.getClientEarProjectName(); |
| } |
| |
| public String getClientProjectName() |
| { |
| return clientWidget_.getClientProjectName(); |
| } |
| |
| public int getClientGeneration() |
| { |
| return clientWidget_.getClientGeneration(); |
| } |
| |
| public ResourceContext getResourceContext() { |
| if (resourceContext_ == null) { |
| resourceContext_ = WebServicePlugin.getInstance() |
| .getResourceContext(); |
| } |
| return resourceContext_; |
| } |
| |
| public void setResourceContext(ResourceContext context) { |
| resourceContext_ = context; |
| } |
| |
| public IStructuredSelection getObjectSelection() |
| { |
| return objectSelection_; |
| } |
| |
| public void setObjectSelection(IStructuredSelection selection ) |
| { |
| objectSelection_ = selection; |
| } |
| |
| public WebServicesParser getWebServicesParser() |
| { |
| return parser_; |
| } |
| |
| public void setWebServicesParser(WebServicesParser parser) |
| { |
| parser_ = parser; |
| clientWidget_.setWebServicesParser(parser); |
| } |
| |
| public void internalize() { |
| |
| if (preferencesPage_) |
| return; |
| |
| if (objectSelectionWidget_ == null) |
| objectSelectionWidget_ = getSelectionWidget(); |
| |
| String displayable = null; |
| |
| if (objectSelectionWidget_ instanceof IObjectSelectionLaunchable) { |
| IObjectSelectionLaunchable launchable = (IObjectSelectionLaunchable) objectSelectionWidget_; |
| launchable.setInitialSelection(objectSelection_); |
| objectSelection_ = launchable.getObjectSelection(); |
| displayable = launchable.getObjectSelectionDisplayableString(); |
| } |
| else { |
| IObjectSelectionWidget selectionWidget = (IObjectSelectionWidget) objectSelectionWidget_; |
| selectionWidget.setInitialSelection(objectSelection_); |
| displayable = selectionWidget.getObjectSelectionDisplayableString(); |
| } |
| |
| if (displayable == null || displayable.length() == 0) |
| return; |
| |
| serviceImpl_.removeModifyListener(objectModifyListener_); |
| serviceImpl_.setText(displayable); |
| serviceImpl_.addModifyListener(objectModifyListener_); |
| } |
| |
| public IStatus getStatus() { |
| IStatus status = Status.OK_STATUS; |
| |
| IStatus missingFieldStatus = checkMissingFieldStatus(); |
| if (missingFieldStatus.getSeverity() == IStatus.ERROR) { |
| return missingFieldStatus; |
| } |
| |
| IStatus serviceImplValidationStatus = checkServiceImplTextStatus(); |
| if (serviceImplValidationStatus.getSeverity() == IStatus.ERROR) { |
| return serviceImplValidationStatus; |
| } |
| else if (serviceImplValidationStatus.getSeverity() == IStatus.WARNING){ |
| return serviceImplValidationStatus; |
| } |
| |
| IStatus possibleErrorStatus = checkErrorStatus(); |
| if (possibleErrorStatus.getSeverity() == IStatus.ERROR || possibleErrorStatus.getSeverity() == IStatus.WARNING) { |
| return possibleErrorStatus; |
| } |
| |
| IStatus possibleWarningStatus = checkWarningStatus(); |
| if (possibleWarningStatus.getSeverity() == IStatus.WARNING) { |
| return possibleWarningStatus; |
| } |
| |
| // If no warnings/errors were reported, clear validation state on |
| // service side and client side (if enabled) |
| validationState_ = ValidationUtils.VALIDATE_NONE; |
| if (clientWidget_.getGenerateProxy()) { |
| clientWidget_.setValidationState(ValidationUtils.VALIDATE_NONE); |
| } |
| |
| return status; |
| } |
| |
| /* |
| * call validation code in the object selection widget to ensure any |
| * modifications to the serviceImpl_ field are valid |
| */ |
| private IStatus checkServiceImplTextStatus() { |
| |
| String fieldText = serviceImpl_.getText().trim(); |
| |
| if (objectSelectionWidget_ == null) |
| { |
| objectSelectionWidget_ = getSelectionWidget(); |
| } |
| |
| IObjectSelectionLaunchable launchable = null; |
| if (objectSelectionWidget_ instanceof IObjectSelectionLaunchable) |
| { |
| launchable = (IObjectSelectionLaunchable)objectSelectionWidget_; |
| validObjectSelection_ = launchable.validate(fieldText); |
| } |
| else |
| { |
| IObjectSelectionWidget widget = (IObjectSelectionWidget)objectSelectionWidget_; |
| validObjectSelection_ = widget.validate(fieldText); |
| } |
| |
| if (!validObjectSelection_) |
| { |
| int scenario = getWebServiceScenario(); |
| |
| if (scenario == WebServiceScenario.BOTTOMUP){ |
| if (launchable != null){ |
| IStatus valStatus = launchable.validateSelection(new StructuredSelection(fieldText)); |
| if (valStatus.getSeverity() == IStatus.WARNING) |
| return StatusUtils.warningStatus(ConsumptionUIMessages.MSG_WARN_SERVICE_IMPL_NAMING_CONVENTION); |
| } |
| else |
| return StatusUtils.errorStatus(ConsumptionUIMessages.MSG_INVALID_SERVICE_IMPL); |
| } |
| else |
| return StatusUtils.errorStatus(ConsumptionUIMessages.MSG_INVALID_SERVICE_DEF); |
| } |
| |
| return Status.OK_STATUS; |
| } |
| |
| private int getWebServiceScenario() |
| { |
| int index = webserviceType_.getSelectionIndex(); |
| String typeId = labelIds_.getIds_()[index]; |
| return WebServiceRuntimeExtensionUtils2.getScenarioFromTypeId(typeId); |
| } |
| |
| private IStatus checkMissingFieldStatus() { |
| |
| // 1. Check for missing fields on service side |
| ValidationUtils valUtils = new ValidationUtils(); |
| String serviceImpl = serviceImpl_.getText().trim(); |
| String typeId = getServiceTypeRuntimeServer().getTypeId(); |
| String runtimeId = getServiceTypeRuntimeServer().getRuntimeId(); |
| String serverId = getServiceTypeRuntimeServer().getServerId(); |
| String projectName = getServiceProjectName(); |
| boolean needEar = getServiceNeedEAR(); |
| String earProjectName = getServiceEarProjectName(); |
| String projectTypeId = getServiceComponentType(); |
| |
| IStatus serviceMissingFieldStatus = valUtils.checkMissingFieldStatus(validationState_, typeId, serviceImpl, |
| runtimeId, serverId, projectName, needEar, earProjectName, projectTypeId, false); |
| if (serviceMissingFieldStatus.getSeverity() == IStatus.ERROR) { |
| return serviceMissingFieldStatus; |
| } |
| |
| // 2. Check for missing fields on the client side if it's visible. |
| if (clientWidget_.getGenerateProxy()) { |
| IStatus clientMissingFieldsStatus = clientWidget_.checkMissingFieldStatus(); |
| if (clientMissingFieldsStatus.getSeverity() == IStatus.ERROR) { |
| return clientMissingFieldsStatus; |
| } |
| |
| } |
| |
| return Status.OK_STATUS; |
| } |
| |
| private IStatus checkErrorStatus() { |
| |
| ValidationUtils valUtils = new ValidationUtils(); |
| |
| // 1. Check for errors on service side |
| String runtimeId = getServiceTypeRuntimeServer().getRuntimeId(); |
| String serverId = getServiceTypeRuntimeServer().getServerId(); |
| String serverInstanceId = getServiceTypeRuntimeServer().getServerInstanceId(); |
| String typeId = getServiceTypeRuntimeServer().getTypeId(); |
| String projectName = getServiceProjectName(); |
| boolean needEar = getServiceNeedEAR(); |
| String earProjectName = getServiceEarProjectName(); |
| String projectTypeId = getServiceComponentType(); |
| String initialProjectName = ""; |
| if (initialProject_ != null) { |
| initialProjectName = initialProject_.getName(); |
| } |
| IStatus serviceSideErrorStatus = valUtils.checkErrorStatus(validationState_, typeId, runtimeId, serverId, |
| serverInstanceId, projectName, initialProjectName, needEar, earProjectName, projectTypeId, false); |
| if (serviceSideErrorStatus.getSeverity() == IStatus.ERROR) { |
| return serviceSideErrorStatus; |
| } |
| |
| // 2. Check for errors on client side if it is visible |
| if (clientWidget_.getGenerateProxy()) { |
| IStatus clientSideErrorStatus = clientWidget_.checkErrorStatus(); |
| if (clientSideErrorStatus.getSeverity() == IStatus.ERROR) { |
| return clientSideErrorStatus; |
| } |
| |
| // 3. Check for errors that span service and client if client side |
| // is visible. |
| int clientValidationState = clientWidget_.getValidationState(); |
| if (validationState_ == ValidationUtils.VALIDATE_ALL |
| || validationState_ == ValidationUtils.VALIDATE_PROJECT_CHANGES |
| || clientValidationState == ValidationUtils.VALIDATE_ALL |
| || clientValidationState == ValidationUtils.VALIDATE_PROJECT_CHANGES) { |
| IWebServiceRuntimeChecker runtimeChecker = null; |
| |
| String serviceRuntimeId = WebServiceRuntimeExtensionUtils2.getServiceRuntimeId(getServiceTypeRuntimeServer(), projectName, projectTypeId); |
| runtimeChecker = WebServiceRuntimeExtensionUtils2.getServiceRuntimeChecker(serviceRuntimeId); |
| |
| if (runtimeChecker != null) { |
| return runtimeChecker.checkServiceClientCompatibility( |
| getServiceNeedEAR(), getServiceEarProjectName(), getServiceProjectName(), |
| clientWidget_.getClientNeedEAR(), clientWidget_.getClientEarProjectName(), |
| clientWidget_.getClientProjectName()); |
| } |
| } |
| } |
| |
| return Status.OK_STATUS; |
| } |
| |
| private IStatus checkWarningStatus() { |
| ValidationUtils valUtils = new ValidationUtils(); |
| // 1. Check for warnings on the service side |
| int scaleSetting = getServiceGeneration(); |
| String serverId = getServiceTypeRuntimeServer().getServerId(); |
| IStatus serviceWarningStatus = valUtils.checkWarningStatus(validationState_, scaleSetting, serverId, getServiceTypeRuntimeServer().getServerInstanceId(), false); |
| if (serviceWarningStatus.getSeverity() == IStatus.WARNING) { |
| return serviceWarningStatus; |
| } |
| |
| // 2. Check for warnings on the client side if it's enabled |
| if (clientWidget_.getGenerateProxy()) { |
| IStatus clientWarningStatus = clientWidget_.checkWarningStatus(); |
| if (clientWarningStatus.getSeverity() == IStatus.WARNING) { |
| return clientWarningStatus; |
| } |
| |
| } |
| |
| return Status.OK_STATUS; |
| } |
| |
| protected void initImageRegistry() |
| { |
| imageReg_ = new ImageRegistry(Display.getCurrent()); |
| |
| imageReg_.put(ICON_SCALE_BG_0, WebServiceConsumptionUIPlugin |
| .getImageDescriptor(ICON_SCALE_BG_0)); |
| imageReg_.put(ICON_SCALE_BG_1, WebServiceConsumptionUIPlugin |
| .getImageDescriptor(ICON_SCALE_BG_1)); |
| imageReg_.put(ICON_SCALE_BG_2, WebServiceConsumptionUIPlugin |
| .getImageDescriptor(ICON_SCALE_BG_2)); |
| imageReg_.put(ICON_SCALE_BG_3, WebServiceConsumptionUIPlugin |
| .getImageDescriptor(ICON_SCALE_BG_3)); |
| imageReg_.put(ICON_SCALE_BG_4, WebServiceConsumptionUIPlugin |
| .getImageDescriptor(ICON_SCALE_BG_4)); |
| imageReg_.put(ICON_SCALE_BG_5, WebServiceConsumptionUIPlugin |
| .getImageDescriptor(ICON_SCALE_BG_5)); |
| imageReg_.put(ICON_SCALE_BG_6, WebServiceConsumptionUIPlugin |
| .getImageDescriptor(ICON_SCALE_BG_6)); |
| |
| imageReg_.put(GRAPHIC_SERVICE_0, WebServiceCreationUIPlugin |
| .getImageDescriptor(GRAPHIC_SERVICE_0)); |
| imageReg_.put(GRAPHIC_SERVICE_1, WebServiceCreationUIPlugin |
| .getImageDescriptor(GRAPHIC_SERVICE_1)); |
| imageReg_.put(GRAPHIC_SERVICE_2, WebServiceCreationUIPlugin |
| .getImageDescriptor(GRAPHIC_SERVICE_2)); |
| imageReg_.put(GRAPHIC_SERVICE_3, WebServiceCreationUIPlugin |
| .getImageDescriptor(GRAPHIC_SERVICE_3)); |
| imageReg_.put(GRAPHIC_SERVICE_4, WebServiceCreationUIPlugin |
| .getImageDescriptor(GRAPHIC_SERVICE_4)); |
| imageReg_.put(GRAPHIC_SERVICE_5, WebServiceCreationUIPlugin |
| .getImageDescriptor(GRAPHIC_SERVICE_5)); |
| } |
| |
| private void setAdvancedOptions(boolean enabled) |
| { |
| monitorButton_.setEnabled(enabled); |
| publishButton_.setEnabled(enabled); |
| } |
| |
| public void setServiceProjectName(String name) |
| { |
| serviceProjectName_= name; |
| hLinkServiceProject_.setText(SERVICE_PROJECT_PREFIX + " " + serviceProjectName_); |
| hLinkServiceProject_.pack(true); |
| packSelf(); |
| } |
| |
| public void setInitialProject(IProject project) |
| { |
| initialProject_ = project; |
| } |
| |
| public void setServiceEarProjectName(String name) |
| { |
| serviceEarProjectName_ = name; |
| refreshEARLink(); |
| } |
| |
| public void refreshEARLink() |
| { |
| hLinkServiceEAR_.setVisible(needEar_); |
| if (needEar_) |
| { |
| hLinkServiceEAR_.setText(SERVICE_EAR_PREFIX + " " + serviceEarProjectName_); |
| hLinkServiceEAR_.pack(true); |
| packSelf(); |
| } |
| } |
| public void setServiceComponentType( String type ) |
| { |
| serviceComponentType_ = type; |
| } |
| |
| public void setClientProjectName(String name) |
| { |
| clientWidget_.setClientProjectName(name); |
| } |
| |
| public void setClientEarProjectName(String name) |
| { |
| clientWidget_.setClientEarProjectName(name); |
| } |
| |
| IProject project_; |
| |
| public String getServiceComponentType() |
| { |
| return serviceComponentType_; |
| } |
| |
| public void setClientComponentType(String type) |
| { |
| clientWidget_.setClientComponentType(type); |
| } |
| |
| public String getClientComponentType() |
| { |
| return clientWidget_.getClientComponentType(); |
| } |
| |
| public String getServiceProjectName() |
| { |
| return serviceProjectName_; |
| } |
| |
| public String getServiceEarProjectName() |
| { |
| return serviceEarProjectName_; |
| } |
| |
| public void setClientProject(IProject project) |
| { |
| clientWidget_.setProject(project); |
| } |
| |
| private IProject getClientProject() |
| { |
| return clientWidget_.getProject(); |
| } |
| |
| public void setProject(IProject project) |
| { |
| project_ = project; |
| } |
| |
| public IProject getProject() |
| { |
| return project_; |
| } |
| |
| public String getServiceRuntimeId() |
| { |
| // calculate the most appropriate serviceRuntimeId based on current settings. |
| return WebServiceRuntimeExtensionUtils2.getServiceRuntimeId(getServiceTypeRuntimeServer(), getServiceProjectName(), getServiceComponentType()); |
| } |
| |
| public String getClientRuntimeId() |
| { |
| return clientWidget_.getClientRuntimeId(); |
| } |
| |
| public void setServiceNeedEAR(boolean b) |
| { |
| needEar_ = b; |
| refreshEARLink(); |
| } |
| |
| public boolean getServiceNeedEAR() |
| { |
| return needEar_; |
| } |
| |
| public void setClientNeedEAR(boolean b) |
| { |
| clientWidget_.setClientNeedEAR(b); |
| } |
| |
| public boolean getClientNeedEAR() |
| { |
| return clientWidget_.getClientNeedEAR(); |
| } |
| |
| // looks through extensions and returns the appropriate selection widget |
| private Object getSelectionWidget() |
| { |
| String wst = getServiceTypeRuntimeServer().getTypeId(); |
| int scenario = WebServiceRuntimeExtensionUtils2.getScenarioFromTypeId(wst); |
| String implId = WebServiceRuntimeExtensionUtils2.getWebServiceImplIdFromTypeId(wst); |
| WebServiceImpl wsimpl = WebServiceRuntimeExtensionUtils2.getWebServiceImplById(implId); |
| Object result = null; |
| |
| |
| if (wsimpl != null) |
| { |
| String objectSelectionWidgetId = null; |
| if (scenario == WebServiceScenario.TOPDOWN) |
| { |
| objectSelectionWidgetId = "org.eclipse.jst.ws.internal.consumption.ui.widgets.object.WSDLSelectionWidget"; |
| } |
| else |
| { |
| objectSelectionWidgetId = wsimpl.getObjectSelectionWidget(); |
| } |
| |
| ObjectSelectionRegistry registry = ObjectSelectionRegistry.getInstance(); |
| boolean editable = registry.getExternalModify( objectSelectionWidgetId ); |
| |
| serviceImpl_.setEditable( editable ); |
| result = registry.getSelectionWidget( objectSelectionWidgetId ); |
| } |
| |
| return result; |
| } |
| |
| // for the purposes of disabling the service implementation controls from the preferences dialog |
| public void disableNonPreferenceWidgets() |
| { |
| if (serviceImpl_ != null) |
| serviceImpl_.setEnabled(false); |
| if (browseButton_ != null) |
| browseButton_.setEnabled(false); |
| if (hCompService_ != null) |
| { |
| hCompService_.setVisible(false); |
| } |
| clientWidget_.disableNonPreferenceWidgets(); |
| } |
| |
| private void setGraphics(int value) |
| { |
| String iconImage = ""; |
| String toplogyImage = ""; |
| switch (value) { |
| case 0: |
| iconImage=ICON_SCALE_BG_0; |
| toplogyImage=GRAPHIC_SERVICE_0; |
| break; |
| case 1: |
| iconImage=ICON_SCALE_BG_1; |
| toplogyImage=GRAPHIC_SERVICE_1; |
| break; |
| case 2: |
| iconImage=ICON_SCALE_BG_2; |
| toplogyImage=GRAPHIC_SERVICE_2; |
| break; |
| case 3: |
| iconImage=ICON_SCALE_BG_3; |
| toplogyImage=GRAPHIC_SERVICE_3; |
| break; |
| case 4: |
| iconImage=ICON_SCALE_BG_4; |
| toplogyImage=GRAPHIC_SERVICE_4; |
| break; |
| case 5: |
| case 6: |
| iconImage=ICON_SCALE_BG_5; |
| toplogyImage=GRAPHIC_SERVICE_5; |
| break; |
| default: |
| break; |
| } |
| serviceScale_.setBackgroundImage(imageReg_.get(iconImage)); |
| topologySpot_.setImage(imageReg_.get(toplogyImage)); |
| } |
| |
| private void refreshServerRuntimeSelection() |
| { |
| //new up ServerRuntimeSelectionWidgetDefaultingCommand |
| ServerRuntimeSelectionWidgetDefaultingCommand serverRTDefaultCmd = new ServerRuntimeSelectionWidgetDefaultingCommand(); |
| |
| //call setters of new defaulting command: |
| serverRTDefaultCmd.setInitialSelection(getObjectSelection()); |
| serverRTDefaultCmd.setInitialProject(getProject()); |
| serverRTDefaultCmd.setGenerateProxy(clientWidget_.getGenerateProxy()); |
| serverRTDefaultCmd.setServiceTypeRuntimeServer(getServiceTypeRuntimeServer()); |
| serverRTDefaultCmd.setWebServicesParser(getWebServicesParser()); |
| serverRTDefaultCmd.setClientInitialSelection(getObjectSelection()); |
| serverRTDefaultCmd.setClientInitialProject(getClientProject()); |
| serverRTDefaultCmd.setClientEarProjectName(clientWidget_.getClientEarProjectName()); |
| serverRTDefaultCmd.setClientTypeRuntimeServer(getClientTypeRuntimeServer()); |
| |
| serverRTDefaultCmd.execute(null, null); |
| |
| //perform mappings from the defaulting command to the project settings... |
| setServiceProjectName(serverRTDefaultCmd.getServiceProjectName()); |
| setServiceEarProjectName(serverRTDefaultCmd.getServiceEarProjectName()); |
| setServiceComponentType(serverRTDefaultCmd.getServiceComponentType()); |
| setClientProjectName(serverRTDefaultCmd.getClientProjectName()); |
| setClientEarProjectName(serverRTDefaultCmd.getClientEarProjectName()); |
| setServiceTypeRuntimeServer(serverRTDefaultCmd.getServiceTypeRuntimeServer()); |
| setClientTypeRuntimeServer(serverRTDefaultCmd.getClientTypeRuntimeServer()); |
| setServiceNeedEAR(serverRTDefaultCmd.getServiceNeedEAR()); |
| setClientNeedEAR(serverRTDefaultCmd.getClientNeedEAR()); |
| setClientComponentType(serverRTDefaultCmd.getClientComponentType()); |
| } |
| |
| /** |
| * Update client server and runtime based on service side |
| */ |
| private void refreshClientServerRuntimeSelection() |
| { |
| TypeRuntimeServer clientTypeRuntimeserver = getClientTypeRuntimeServer(); |
| clientTypeRuntimeserver.setRuntimeId(getServiceTypeRuntimeServer().getRuntimeId()); |
| clientTypeRuntimeserver.setServerId(getServiceTypeRuntimeServer().getServerId()); |
| clientTypeRuntimeserver.setServerInstanceId(getServiceTypeRuntimeServer().getServerInstanceId()); |
| setClientTypeRuntimeServer(clientTypeRuntimeserver); |
| } |
| |
| |
| private void callObjectTransformation(IStructuredSelection objectSelection, |
| IProject project, String componentName, boolean refreshRuntime) |
| { |
| ObjectSelectionOutputCommand objOutputCommand = new ObjectSelectionOutputCommand(); |
| objOutputCommand.setTypeRuntimeServer(getServiceTypeRuntimeServer()); |
| objOutputCommand.setObjectSelection(objectSelection); |
| objOutputCommand.setProject(project); |
| objOutputCommand.setComponentName(componentName); |
| |
| objOutputCommand.execute(null, null); |
| |
| setWebServicesParser(objOutputCommand.getWebServicesParser()); |
| setObjectSelection(objOutputCommand.getObjectSelection()); |
| setProject(objOutputCommand.getProject()); |
| |
| if (refreshRuntime || forceRefreshRuntime) |
| refreshServerRuntimeSelection(); |
| |
| forceRefreshRuntime = false; |
| } |
| |
| private class ScaleSelectionListener implements SelectionListener |
| { |
| public void widgetSelected(SelectionEvent e) { |
| |
| Scale scale = (Scale)e.widget; |
| int selection = scale.getSelection(); |
| |
| //TODO: change the hard coded integers here to the the ScenarioContext.WS_xxx when in less critical phase |
| switch (selection) { |
| case 0: |
| serviceScale_.setToolTipText(ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_TEST); |
| break; |
| case 1: |
| serviceScale_.setToolTipText(ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_RUN); |
| break; |
| case 2: |
| serviceScale_.setToolTipText(ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_INSTALL); |
| break; |
| case 3: |
| serviceScale_.setToolTipText(ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_DEPLOY); |
| break; |
| case 4: |
| serviceScale_.setToolTipText(ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_ASSEMBLE); |
| break; |
| case 5: |
| case 6: |
| serviceScale_.setSelection(ScenarioContext.WS_DEVELOP); //"no selection" is not allowed...must develop service @ minimum |
| serviceScale_.setToolTipText(ConsumptionUIMessages.TOOLTIP_WSWSCEN_SCALE_DEVELOP); |
| //reset local selection so that setters get correct value below |
| selection = ScenarioContext.WS_DEVELOP; |
| break; |
| default: |
| break; |
| } |
| |
| setDevelopService(selection <= ScenarioContext.WS_DEVELOP); |
| setAssembleService(selection <= ScenarioContext.WS_ASSEMBLE); |
| setDeployService(selection <= ScenarioContext.WS_DEPLOY); |
| |
| setTestService(new Boolean(selection <= ScenarioContext.WS_TEST)); |
| setInstallService(new Boolean(selection <= ScenarioContext.WS_INSTALL)); |
| setStartService(new Boolean(selection <= ScenarioContext.WS_START)); |
| setAdvancedOptions(selection <= ScenarioContext.WS_INSTALL); |
| clientWidget_.enableClientSlider(selection <= ScenarioContext.WS_START); |
| |
| setGraphics(selection); |
| |
| //Validate the page |
| validationState_ = (new ValidationUtils()).getNewValidationState(validationState_, ValidationUtils.VALIDATE_SCALE_CHANGES); |
| statusListener_.handleEvent(null); |
| |
| } |
| |
| public void widgetDefaultSelected(SelectionEvent e) { |
| widgetSelected(e); |
| } |
| } |
| |
| private class ServiceImplBrowseListener implements SelectionListener |
| { |
| public void widgetDefaultSelected(SelectionEvent e) { |
| // TODO Auto-generated method stub |
| } |
| |
| public void widgetSelected(SelectionEvent e) { |
| |
| if (objectSelectionWidget_ == null) |
| objectSelectionWidget_ = getSelectionWidget(); |
| |
| IStructuredSelection objectSelection = null; |
| IProject project = null; |
| String componentName=""; |
| int result=Dialog.CANCEL; |
| |
| if (objectSelectionWidget_ instanceof IObjectSelectionLaunchable) |
| { |
| IObjectSelectionLaunchable launchable = ((IObjectSelectionLaunchable)objectSelectionWidget_); |
| launchable.setInitialSelection(getObjectSelection()); |
| IWorkbench workbench = PlatformUI.getWorkbench(); |
| result = launchable.launch(workbench.getActiveWorkbenchWindow().getShell()); |
| if (result == Dialog.OK) |
| { |
| serviceImpl_.removeModifyListener(objectModifyListener_); |
| serviceImpl_.setText(launchable.getObjectSelectionDisplayableString()); |
| serviceImpl_.addModifyListener(objectModifyListener_); |
| objectSelection = launchable.getObjectSelection(); |
| project = launchable.getProject(); |
| componentName= launchable.getComponentName(); |
| } |
| } |
| else |
| { |
| browseDialog_.setTypeRuntimeServer(getServiceTypeRuntimeServer()); |
| browseDialog_.setInitialSelection(getObjectSelection()); |
| result = browseDialog_.open(); |
| if (result == Dialog.OK) |
| { |
| serviceImpl_.removeModifyListener(objectModifyListener_); |
| serviceImpl_.setText(browseDialog_.getDisplayableSelectionString()); |
| serviceImpl_.addModifyListener(objectModifyListener_); |
| objectSelection = browseDialog_.getObjectSelection(); |
| project = browseDialog_.getProject(); |
| componentName= browseDialog_.getComponentName(); |
| } |
| } |
| |
| // call ObjectSelectionOutputCommand to carry out any transformation on the objectSelection |
| if (result == Dialog.OK) |
| { |
| callObjectTransformation(objectSelection, project, componentName, getWebServiceScenario() != WebServiceScenario.TOPDOWN); |
| validationState_ = ValidationUtils.VALIDATE_ALL; |
| statusListener_.handleEvent(null); // validate the page |
| } |
| } |
| } |
| |
| |
| } |
| |