Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'core/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/WSDLSelectionConditionCommand.java')
-rw-r--r--core/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/WSDLSelectionConditionCommand.java135
1 files changed, 135 insertions, 0 deletions
diff --git a/core/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/WSDLSelectionConditionCommand.java b/core/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/WSDLSelectionConditionCommand.java
new file mode 100644
index 000000000..bb6049aa9
--- /dev/null
+++ b/core/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/WSDLSelectionConditionCommand.java
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.ws.internal.consumption.ui.widgets;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.ws.internal.consumption.ui.ConsumptionUIMessages;
+import org.eclipse.jst.ws.internal.consumption.ui.wsil.DialogWWWAuthentication;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.command.internal.env.core.common.Condition;
+import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+import org.eclipse.wst.ws.internal.parser.discovery.WebServicesParserExt;
+import org.eclipse.wst.ws.internal.parser.wsil.WWWAuthenticationException;
+import org.eclipse.wst.ws.internal.parser.wsil.WebServiceEntity;
+import org.eclipse.wst.ws.internal.parser.wsil.WebServicesParser;
+
+
+public class WSDLSelectionConditionCommand extends AbstractDataModelOperation implements Condition
+{
+ private WebServicesParser webServicesParser;
+ private String webServiceURI;
+ private String httpBasicAuthUsername;
+ private String httpBasicAuthPassword;
+ private boolean needWSDLSelectionTreeWidget;
+
+ public WSDLSelectionConditionCommand()
+ {
+ }
+
+ public void setWebServicesParser(WebServicesParser webServicesParser)
+ {
+ this.webServicesParser = webServicesParser;
+ }
+
+ public WebServicesParser getWebServicesParser()
+ {
+ if (webServicesParser == null)
+ webServicesParser = new WebServicesParserExt();
+ return webServicesParser;
+ }
+
+ public IStatus execute( IProgressMonitor monitor, IAdaptable adaptable )
+ {
+ needWSDLSelectionTreeWidget = false;
+ WebServicesParser parser = getWebServicesParser();
+ parser.setURI(webServiceURI);
+ try
+ {
+ parser.parse(WebServicesParser.PARSE_WSIL | WebServicesParser.PARSE_DISCO | WebServicesParser.PARSE_LINKS);
+ }
+ catch (WWWAuthenticationException wwwae)
+ {
+ DialogWWWAuthentication dialog = new DialogWWWAuthentication(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
+ dialog.handleWWWAuthentication(wwwae);
+ String username = dialog.getUsername();
+ String password = dialog.getPassword();
+ httpBasicAuthUsername = username;
+ httpBasicAuthPassword = password;
+ if (username != null && password != null)
+ {
+ parser.setHTTPBasicAuthUsername(username);
+ parser.setHTTPBasicAuthPassword(password);
+ try
+ {
+ parser.parse(WebServicesParser.PARSE_WSIL | WebServicesParser.PARSE_DISCO | WebServicesParser.PARSE_LINKS);
+ }
+ catch (Throwable t)
+ {
+ return StatusUtils.errorStatus( NLS.bind(ConsumptionUIMessages.MSG_ERROR_URI_NOT_RESOLVABLE, new Object[] {webServiceURI}), t);
+ }
+ finally
+ {
+ parser.setHTTPBasicAuthUsername(null);
+ parser.setHTTPBasicAuthPassword(null);
+ }
+ }
+ }
+ catch (Throwable t)
+ {
+ return StatusUtils.errorStatus( NLS.bind(ConsumptionUIMessages.MSG_ERROR_URI_NOT_RESOLVABLE, new Object[] {webServiceURI}), t);
+ }
+ WebServiceEntity wsEntity = parser.getWebServiceEntityByURI(webServiceURI);
+ if (wsEntity != null)
+ {
+ int type = wsEntity.getType();
+ if (type != WebServiceEntity.TYPE_WSDL)
+ needWSDLSelectionTreeWidget = true;
+ }
+ return Status.OK_STATUS;
+ }
+
+ public boolean evaluate()
+ {
+ return needWSDLSelectionTreeWidget;
+ }
+
+ public String getWebServiceURI()
+ {
+ return webServiceURI;
+ }
+
+ public void setWebServiceURI(String webServiceURI)
+ {
+ this.webServiceURI = webServiceURI;
+ }
+
+ public String getWsdlURI()
+ {
+ return getWebServiceURI();
+ }
+/**
+ * @return Returns the httpBasicAuthPassword.
+ */
+public String getHttpBasicAuthPassword() {
+ return httpBasicAuthPassword;
+}
+/**
+ * @return Returns the httpBasicAuthUsername.
+ */
+public String getHttpBasicAuthUsername() {
+ return httpBasicAuthUsername;
+}
+}

Back to the top