Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateAction.java')
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateAction.java170
1 files changed, 170 insertions, 0 deletions
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateAction.java
new file mode 100644
index 000000000..2bfbb9958
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateAction.java
@@ -0,0 +1,170 @@
+/*******************************************************************************
+ * Copyright (c) 2004 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.wst.ws.internal.explorer.platform.uddi.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.MultipartFormDataParserTransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.datatype.tmodel.TModel;
+
+import java.util.*;
+
+public abstract class UpdateAction extends UDDIPropertiesFormAction
+{
+ protected RegistryNode regNode_;
+ private boolean requiresAuthentication_;
+ public UpdateAction(Controller controller,boolean requiresAuthentication)
+ {
+ super(controller);
+ regNode_ = getRegistryNode();
+ requiresAuthentication_ = requiresAuthentication;
+ }
+
+ protected abstract boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException;
+
+ protected final boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ // Setup for MultipartFormDataParserTransformer
+ propertyTable_.put(ActionInputs.MULTIPART_FORM_DATA_PARSER, parser);
+
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ FormTool formTool = getSelectedFormTool();
+ FormToolPropertiesInterface formToolPI = formTool;
+ formToolPI.clearErrors();
+ boolean inputsValid = processOthers(parser,formToolPI);
+ for (int i=0;i<removedProperties_.size();i++)
+ formToolPI.removeProperty(removedProperties_.elementAt(i));
+ formToolPI.updatePropertyTable(propertyTable_);
+
+ String publishURL = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+
+ boolean validateAuthentication = !regElement.isLoggedIn() & requiresAuthentication_;
+
+ if (publishURL != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ }
+
+ if (validateAuthentication && !Validator.validateString(publishURL))
+ {
+ inputsValid = false;
+ formTool.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_PUBLISH_URL"));
+ }
+
+ if (userId != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userId);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userId);
+ }
+
+ if (validateAuthentication && !Validator.validateString(userId))
+ {
+ inputsValid = false;
+ formTool.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_USERID"));
+ }
+
+ if (password != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD,password);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD,password);
+ }
+
+ return inputsValid;
+ }
+
+ public abstract boolean refreshFromRegistry();
+
+ protected final void refreshNode(BusinessEntity be)
+ {
+ Node node = getSelectedNavigatorNode();
+ Node parentNode = node.getParent();
+ TreeElement element = node.getTreeElement();
+ element.disconnectAll();
+ BusinessElement newBusinessElement = new BusinessElement(be,regNode_.getTreeElement().getModel());
+ connectElements(parentNode,newBusinessElement);
+ }
+
+ protected final void refreshNode(BusinessService bs)
+ {
+ Node node = getSelectedNavigatorNode();
+ Node parentNode = node.getParent();
+ TreeElement element = node.getTreeElement();
+ element.disconnectAll();
+ ServiceElement newServiceElement = new ServiceElement(bs,regNode_.getTreeElement().getModel());
+ connectElements(parentNode,newServiceElement);
+ }
+
+ protected final void refreshNode(TModel tModel)
+ {
+ Node node = getSelectedNavigatorNode();
+ Node parentNode = node.getParent();
+ TreeElement element = node.getTreeElement();
+ element.disconnectAll();
+ ServiceInterfaceElement newServiceInterfaceElement = new ServiceInterfaceElement(tModel,regNode_.getTreeElement().getModel());
+ connectElements(parentNode,newServiceInterfaceElement);
+ }
+
+ private final void connectElements(Node parentNode,TreeElement newElement)
+ {
+ TreeElement parentElement = parentNode.getTreeElement();
+ String rel = null;
+ if (parentNode instanceof PublishedItemsNode)
+ rel = UDDIModelConstants.REL_PUBLISHED_ITEMS;
+ else
+ {
+ // QueryNode
+ rel = UDDIModelConstants.REL_QUERY_RESULTS;
+ }
+ parentElement.connect(newElement,rel,ModelConstants.REL_OWNER);
+ Node newNode = parentNode.getChildNode(newElement);
+ int newNodeId = newNode.getNodeId();
+ NodeManager nodeManager = parentNode.getNodeManager();
+ nodeManager.setSelectedNodeId(newNodeId);
+ ToolManager toolManager = newNode.getToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ addToHistory(ActionInputs.PERSPECTIVE_UDDI,selectedTool.getSelectToolActionHref(true));
+ }
+
+ protected final void reindexListElementVector(Vector v)
+ {
+ for (int i=0;i<v.size();i++)
+ {
+ ListElement listElement = (ListElement)v.elementAt(i);
+ listElement.setViewId(i);
+ // targetViewId determines whether or not a successfully validated list element remains in edit state.
+ }
+ }
+
+ public ITransformer[] getTransformers()
+ {
+ ITransformer[] parentTransformers = super.getTransformers();
+ ITransformer[] transformers = new ITransformer[parentTransformers.length + 1];
+ System.arraycopy(parentTransformers, 0, transformers, 0, parentTransformers.length);
+ transformers[transformers.length - 1] = new MultipartFormDataParserTransformer(controller_);
+ return transformers;
+ }
+} \ No newline at end of file

Back to the top